2016年10月24日
摘要: 双线程dp f [ i ] [ j ] [ k ] [ l ] 表示 走到 (i,j),返回时走到(k,l)时的(总)最大价值 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=52; 5 int 阅读全文
posted @ 2016-10-24 21:29 Absolutezero 阅读(170) 评论(0) 推荐(0)
摘要: 01背包,但至少取一种 f [ j ] 表示当点数之差为 j 时的最小反转次数,0<=j<=m (点数最大值之和) 我们可以不考虑每一块骨牌点差,仅考虑每次减去上面的(和翻转到上面的)数所得到的 j 则:f [ j ] = min ( f [ j - a [ i ] ] , f [ j - b [ 阅读全文
posted @ 2016-10-24 20:44 Absolutezero 阅读(295) 评论(0) 推荐(0)
摘要: 本题二分显然 关键是怎么O(n)check 我们很容易想到应该从右往左打起 我们设对于二分出的伤害值为 p,射到从左到右第s个怪物身上的子弹数为kk[s]。对于p-(i-j)*(i-j)我们将它拆开,变成-j^2+2ij-i^2+p。对于第j个怪,它受到的溅射伤害应为-(kk[j+1]+...+kk 阅读全文
posted @ 2016-10-24 16:44 Absolutezero 阅读(260) 评论(0) 推荐(0)