链接:http://acm.hdu.edu.cn/showproblem.php?pid=3501
求一个数n的所有小于它并且与它不互质的数的和。
Keep going
链接:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=825
这场出的三题,有两道和标算不太一样啊。。。其中一道题还是因为数据弱暴力过的,感觉这样下去不太行啊。。。
今天晚上又被问起01背包和完全背包的遍历顺序了,我决定写一篇博文,这样再有人问我就可以直接把这篇文章发给他了。
我要不要先以我的方式来介绍一下这两个问题?首先我们知道01背包和完全背包的状态转移方程:
01背包:$f(i,j)=max{f(i-1,j), f(i-1,j-w_i)+v_i}$
完全背包:$f(i,j)=max{f(i-1,j),f(i-1,j-kw_i)+kv_i}$
简单解释一下,以01背包为例,我们定义$f(i,j)$为扫到第$i$个物品为止,背包容量为$j$时的最大价值。我们依次从第一个物品开始,决定要不要往这个背包里放,如果放的话,我们一定会从另一个状态转移过来,这个状态即扫到上一个物品、同时容量为$j-w_i$时的状态,为什么不是比$j-w_i$更小的一个状态?因为这个方程满足最优子结构:保证$f(i-1,j-w_i)$一定由上一个最优状态转移来,那么这个状态必然是最优的。完全背包也是如此,只不过朴素的做法需要多枚举一维第$i$个物品放的个数。
链接:https://www.nowcoder.com/acm/contest/145/C
一个长度为$2^n$的01串,每次允许相邻两个数字进行与、或、异或操作,最终希望结果是1,问有多少种不同的操作路径。
链接:http://codeforces.com/contest/348/problem/D
两只乌龟在棋盘上从(1,1)出发到(n,m),其中有的地方有障碍物,两只乌龟希望找到有多少对路径,使得他们到(n,m)的路上不相交。