【HDU4802】模拟一下即可。

【HDU4803】贪心,超级卡精度。题意是给一个机器,只有两个按钮,上面的按钮表示数量,下面的表示总价(只显示整数部分)。开始的时候数量和总价都是1,单价为1,然后进行一些操作,让数量变成x,总价变成y,求得是最小操作次数。如果按数量键,表示增加一个物品,单价不变,数量+1,那么总价=总价/数量*(数量+1),并且显示新的数量。如果按总价键,单价=(总价+1)/数量,那么总价=总价+1,并且显示总价的整数部分。如何解决呢?仔细想想,求最小操作次数 可以换成  求最小合法单价的操作次数,因为最终得到了x数量,y的总价,对于一个单价tp,如果tp*x的整数部分==y那么这个单价就是可以的。而最小操作次数一定是 得到最小合法单价的操作次数。对于两种操作,按数量键并不会影响单价,按总价键会增加单价,而且增加单价的幅度是随着操作次数增多而下降的,按下数量键会是这个幅度下降的更多。这样,一共要按下x-1次数量键,每次按数量键前尽量多的按总价键(保证该单价下的x个数量物品不会超过y元),最后会得到一个不超过目标单价(y/x)的最大单价z,该单价下的总价值为z*n如果z*n<y则还需要按下若干次总价键。

【HDU4804】轮廓线dp,留坑。

【HDU4811】组合数学,想法。有n个数,从中选k个数共有C(n,k)种选择将每种选择出的k个数异或得到的数相加输出。解题方法:将每个数分解为二进制。考虑这个二进制的为1的位置能否保留。k个数异或当这k个数的二进制同一位为1的个数为奇数是这个1可以保留。因此可以枚举每一位为1的的位置处1的个数的奇数。则此时所得的结果即为C[bit[j]][i]*C[n-bit[j]][k-i]*(2^j);即从二进制第j为1的个数为bit[j]中选出i个数再从剩下的不为1的个数中选k-i个数再乘以该该位的权值即可。

【HDU4812】有三种颜色的气球,把它们排成一排放在桌子上。第一个气球不得分。把一个气球放在末尾得到的分数是它以前气球的颜色种数把一个气球放在中间得到的分数是它前边气球的颜色种数+后边的气球颜色种数。解题方法:可以发现最后是求0 + 1 + 2 + 3 + 4 + mx ,mx 最大可以到6,就是这个等差数列求和了对不对。