摘要: 来源 A - Alice and Bob (sg函数打表) 暴力打表,时间复杂度为O(n^3logN)。可以发现后手胜的状态数非常少:如果某堆石头数量是i,另一堆石头最多只有一种数量满足后手胜。 反证法:假设 (i, p) 和 (i, q) 都是后手必胜,且 q > p。那么在状态 (i, q) 时 阅读全文
posted @ 2021-07-17 22:48 limil 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 题目 source 题解 对于数组B,每增加1个数,相当于数组A增加2个数。设B中上一个数为x,新加的数为y,如果y>x,那么A增加的两个均大于等于x;如果y<x,那么两个均小于等于x;如果y=x,那么一个大于等于x一个小于等于x。在链表上维护一个指针cur,它始终指向每一步的x。如果y>x,y位于 阅读全文
posted @ 2021-07-17 10:23 limil 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 题目 source 题解 直接计算似乎十分困难,那么可以单独考虑每个数x的贡献。$B_x$为最后$x$存在于队列中的方案数,那么答案就是$\sum{x\times B_x}$。 对于每条类型2的指令I,假设它的值为X,它的方案数可以用dp计算得到。令dp[i][j]代表在第i条指令时队列内比X小的数 阅读全文
posted @ 2021-07-17 10:08 limil 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题目 source 题解 问题转化:1可以隔着一个1和0交换位置,等价于将两个连续的1看作一个整体,这个“11”可以与相邻的任意元素交换位置。 统计字符串中有多少组“11”(每个1至多属于1组),于是字符串等价于由“11”,“1”,“0”组成。假设“11”个数是n,“0”的个数为m,不同的情况数等价 阅读全文
posted @ 2021-07-17 09:57 limil 阅读(44) 评论(0) 推荐(0) 编辑