分类: 未分类

544 篇文章

P1637 三元上升子序列
链接:Miku 对于这个题,我们对于每一个数i,分别求出所有比它小的,在它前面的和 比它大的,在它后面的,然后把这两个乘起来,然后再把这些积加起来就可以了 然而这样直接做复杂度太高了,我们要优化,仿照树状数组求逆序对的方法,我们就可以在可以接受的时间内求出并且解决问题了 #include<iostream> #include<cs…
CF703D Mishka and Interesting sum
链接:Miku 这道题虽说是要偶数个数的数的异或和,但是这就是等于区间奇数个数的数的异或和异或上数的种类的异或和 然后奇数这部分可以用前缀异或和来解决,至于种类的问题,就和HH的项链方法一样了 #include<iostream> #include<cstdio> #include<algorithm> #inc…
P1972 [SDOI2009]HH的项链
链接:Miku %%%ljx巨佬会莫队 这道题可以用树状数组过 首先,把所有询问按照右端点从小到大排序,这个很容易想到,然后非常容易想到,建立一个数组f, 如果数字a在i出现了,就再f[i]=1,然后统计一下区间和就可以了,当然,用树状数组优化 然而考虑一下这样的问题:区间不包含这个数了,这个数重复了 这个问题解决方法就是建立一个数组fl,记录这个…
P1058 立体图
链接:Miku 蒟蒻在线%lmk,ljx,lpy,yyq大佬们 Good Night Good luck 这是一道巨大的模拟题,我的做法是创建一块大画布,然后从后往前覆盖即可,具体实现,离不开代码 #include<iostream> #include<cstdio> using namespace std; int m,n…
vm
装一个linux虚拟机检查是不是链接问题 如果不是连接问题,重下iso 永远不要关虚拟机  
P1441 砝码称重
链接:Miku 这一个问题考虑为两种问题 1:剩下的砝码有什么情况? 2:能拼出多少种? 对于1:没有办法,只能爆搜所有情况 对于2:用一个改良的01背包就可以解决 #include<iostream> #include<cstdio> #include<cstring> using namespace std;…
P1156 垃圾陷阱
链接:Miku 这是一道背包,但是对于放东西有条件限制 首先思考,对于每一个物品,除非放不了,否则就要放,不放上就吃掉,肯定不能扔那不管 我们定义dp[i][j]为第i个物品,高度为j的时候能活的最长时间,那么整个转移过程就是 for(int i=1;i<=g;++i){ for(int j=0;j<=d;++j){ if(dp[i-1…
P3983 赛斯石(赛后强化版)
链接:Miku 题目描述一脸懵逼 这道题本质上是两个完全背包而已。首先,对于每个船,他所能装的最大货物价值是一定的, 我们可以跑完全背包求出每艘船能装的最大价值 然后考虑需求,虽然说题目是把一块大石头分割成小石头,不过我们倒着想,把许多小石头拼成一个大石头不也是一样吗?并且如果石头的体积大于1,那么我们最后还是要分成小的,那么其实只有10个物品,十…
P2214 [USACO14MAR]哞哞哞Mooo Moo
链接:Miku 这道题还是个背包 首先看一下声音的组成,对于每一个农场的声音,它是由两部分组成的 :上一个农场的声音-1(如果有的话)+这个农场的声音(如果有的话) ,并且声音也之和上个农场的总声音有关(注意,总声音,上个)和这个农场,所以我们可以递推出每一个农场的声音。 那么每一个声音代表多少牛呢?这是一个完全背包问题。我们设dp[i]为声音为i…
P2918 [USACO08NOV]买干草Buying Hay
链接:Miku 这就是一个完全背包的板子题 我们把重量当作重量,开销当作价值,那么这个题就是个求价值最小的完全背包 然而题目上说了是不少于,也就是说最优解不一定恰好就是买h磅的时候,怎么办呢? 只要多余h就行了的话,我们就在h+x的范围内找一个最小值不就可以了? 1 #include<iostream> 2 #include<cs…