摘要:
一共就2种状态的转移当我们将状态从x转移到Y的时候 可以选择 换队员 或者不换队员 但是有一点要注意 如果要换队员只能是最新的 也就是刚结束的比赛而且 不管换不换 比赛场次总是增加了一场 我们总是从(x-1)---->x 这也是符合逻辑的 一定要先进行第(x-1)场的比赛 才能进行第x场的比赛dp[... 阅读全文
摘要:
其实 北京站的 dp都没想象中的难..but .. ..dp[x,y]表示前x个数xor值==y的方案数有多少种转移的时候 首先可以将上层的完全赋值到这层 就是假设 a[i] 不参与xor异或然后 a[i]与上层值进行异或 需要2次遍历所有的方案数我一度担心要tle 但是 n很小 才40.我一开始没... 阅读全文
摘要:
这2题放一起吧 反正都是同一场的.B题 虽然是被自己想复杂了 用了树状数组。。当时自己还没离散化出来 还是用了超神的离散化 ‘不知道自己的哪边错了 ffffffk 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int ... 阅读全文
摘要:
..........dp[x,y]表示 [ x , y ]这段区间所获得的价值dp[x , y] = max( dp[x,k-1] + dp[k+1,y] + a[k] + b[x-1] + b[y+1] ) x 2 using namespace std; 3 4 int main() { 5... 阅读全文
摘要:
很多时候 平常觉得很熟悉的一样东西穿上了一件外衣 我们就不认识了 其实 还是 我们不够熟悉。这题的原型 就是给你一串由01组成的序列 可以随机修改某个固定位置的值 然后就是要让我们求出从某个 x的左端点开始的最长连续1的数量我们将这题 转换过来 就是对应坐标位置 假如2个值相同则为1 否则为0 然后... 阅读全文
摘要:
这个方法其实 蛮常用的一般给你3个集合 然后让你满足某个等式 a[x]+b[y] = c[z]我们通常都是枚举一个集合 然后用两个指针分别指向另外2个集合中的一头一尾 然后进行大小比较来 指针移动当然 这也是和 二分一样建立在 有序的基础之上进行的这题 用这个方法解决 就可以了当然 二分也可以 1 ... 阅读全文
摘要:
其实 概率dp最后得到的期望 你是 顺序递推 还是 逆序递推 就是取决于你对于 dp[x]这个数组是如何去定义的这边 逆序递推的 思想 可以去看下 传送 感觉这篇博客下方的评论 讲得还可以至于顺序递推的 可以参照下 porker给我的这个公式dp[x]就是表示 抽完x这个状态下所有的卡片 所需... 阅读全文
摘要:
状态转移方程不难想 我没想到另外还要开个数组 记录上一次的最优状态 wtf主要是另外还要开个temp数组 这样可以减少一层for循环.dp[x,y]在前x分钟我睡觉花掉了y分钟的时间 ( x>=y )dp[x,y] = dp[x-1,y-1]假如我在x这个时间点正在睡觉 那么我得到价值就是 x-1这... 阅读全文
摘要:
还是太弱啊 终测 C D都挂了 =_=...porker写的C关于取模的运用 对于以后的题目 都有很好的 移植性 感觉主要是运用了 (a+b)%p = ( a%p+b%p)%p这个性质贴下 3题代码 当时比赛的时候 可能有点难看 懒的改了 1 #include 2 #include 3 #inc... 阅读全文
摘要:
算基础的 线段树的区间更新题吧题意 也很好理解只是要注意下 输出颜色的时候 递增顺序来输出 1 #include 2 using namespace std; 3 4 const int size = 1000010; 5 int ans; 6 struct node 7 { ... 阅读全文