标签:
1001 Souvenir
本题是一个简单的数学题. 如果套装优惠的话就尽量买套装, 否则单件买. 注意一下如果一直用套装的话可能在最后的零头不如单买好, 即$(n \text{ mod } m) \cdot p < q$.
1002 Hidden String
这个题怎么暴力怎么搞就好了. 可以枚举最长匹配前缀, 和最长匹配后缀, 中间暴力for.
1003 Sequence
这个题看上去是一个贪心, 但是这个贪心显然是错的.
事实上这道题目很简单, 先判断1个是否可以, 然后判断2个是否可以. 之后找到最小的$k (k > 2)$, 使得$(m - k) \mod 6 = 0$即可.
证明如下:
$3n(n-1)+1 = 6(n*(n-1)/2)+1$, 注意到$n*(n-1)/2$是三角形数, 任意一个自然数最多只需要3个三角形数即可表示. 枚举需要$k$个, 那么显然$m=6(k\text{个三角形数的和})+k$, 由于$k \ge 3$, 只要$m-k$是6的倍数就一定是有解的.
事实上, 打个表应该也能发现规律.
1004 Bipartite Graph
首先二分图可以分成两类点$X$和$Y$, 完全二分图的边数就是$|X| \cdot |Y|$.我们的目的是$\max \{|X| \cdot |Y|\}$, 并且$|X| + |Y| = n$.
把原图黑白染色, 每个联通块有$a_i$个黑点, $b_i$个白点, 于是就是要确定$a_i$属于$X$还是属于$Y$. 然后我们考虑dp, $dp_{i,x}$表示用了前$i$个联通块, $|X|=x$是否可行. dp方程很容易确定, $dp_{i,x} = dp_{i-1,x-a[i]} \text{ or } dp_{i-1,x-b[i]}$.
直接暴力是$O(n^2)$的, 可以考虑用bitset优化, 这样就可以过了. 实际上由于数据很难造, 一些稍加优化的$n^2$也可以过的
1005 Happy King
标签:
原文地址:http://www.cnblogs.com/cheater/p/4678474.html