Loading

摘要: 发现很多时候可以从打表中找SG函数的规律。 此题如果没有分割这个操作其实就是简单是异或一下就好了(其实就是SG函数) 多的这个操作想到与考虑后继状态 sg(x + y ) 。我们知道sg(x + y ) 可以从 sg(x) ^ sg(y) 求出。于是可以尝试先打表出sg函数。 int vis[105 阅读全文
posted @ 2020-08-19 21:58 MQFLLY 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 动态往序列末尾加数字,每次添加完求序列内所有子区间的RMQ(最小值)之和,强制在线求法,求线性做法。 1.考虑某位置上的数x作为区间最小值出现的次数,一旦插入了一个比x大的数,x的贡献就不再变化。 2.当插入一个数时,只有从末尾往前单调递增的数的贡献才会变化,容易想到用一个单调栈维护。 首先,如果这 阅读全文
posted @ 2020-08-19 20:07 MQFLLY 阅读(190) 评论(0) 推荐(0) 编辑
摘要: a[i] 表示可以选择数i的个数。 对于每一组询问a,求出能够组合出的被4整除的最大的数。 显然是贪心构造,被4整除就等价于末尾两位被4整除。 需要注意的点有: 前导0,单个数字 这里通过string自带的比较性质写了一个cmp函数。 void solve() { memset(val, 0, si 阅读全文
posted @ 2020-08-19 19:48 MQFLLY 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 给一个n * m 的草地,初始时刻没有草,每单位时刻每块会长草。 在t时刻,将在第 x 行或者第 y 列锄草。 问最终共锄了多少草。 暴力方法: 标记pre[maxn][maxn],表示这个点上次的锄草时间,每次锄草都遍历当前行/列,并且标记pre。在线更新res 复杂度k*n 优化方法: 标记l[ 阅读全文
posted @ 2020-08-19 19:44 MQFLLY 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 最初有能量n,且能力上限为n。 每天可以选择消耗x获得水元素,也可以不获得。 每天结束时会自动回复y能量。 问第m天时最多获得多少水元素。 x + y < n 1.若y >= x 。则每天都能恢复,直接输出m 2.若y < x。则每天恢复都会产生贡献。输出 (n + y * (m - 1)) / x 阅读全文
posted @ 2020-08-19 19:39 MQFLLY 阅读(281) 评论(0) 推荐(0) 编辑