水题乱做1
BZOJ 暂时关了,那就不刷 BZOJ 了
【CF 325E】The Red Button 如果只向 2x 走,会形成若干个环,于是我们可以通过向 2x+1 走将环串在一起
【CF 339E】Three Swaps 枚举每个端点,爆搜翻转哪个区间即可,注意是要输出不要输反
【CC】RICHSTR 如果这个区间是昂贵的那么肯定有一个长度为 3 的区间是昂贵的,维护前缀和,直接 O(1) 判断
【CC】SANDWICH 第一问很好算,第二问可以表示成一个组合数形式,然后就是 exlucas 板子了,嘴巴一分钟,写题一晚上,不过至少学抄会了一遍板子,以后再也不写这个蛋疼的 exlucas 了
【CC】POLYEVAL 可以多项式多点求值,也有一个简单的做法,就是通过一次 ntt 求出原根的次方的函数值,然后搞搞,这个 ntt 的 wn 好像和平常的不一样,无法理解,有点玄学.upd:好像按照原来的写法也是对的,就是算答案的地方有点不同,就是第一种通过玄学操作使得 ntt 后第 i 项是 g^i 的函数值,而正常写法是 ntt 后第 i 项是 w(n,i) 的函数值
【TCO13 Round 1B 1000】EllysReversals 把相邻的两个捆在一起,然后 sort,数相同的个数,看下奇偶性就好了
【TCO13 Round 1C 1000】TheKnights 每个格子是独立的,大力分类讨论
【TCO13 Round 2A 300】TheLargestString 直接 dp, f(i,j) 表示到第 i 为字符串长度为 j 的最大字符串
【TCO13 Round 2A 600】TheMagicMatrix 感觉好难啊,根本无法独立写出来,终于抄学会了高斯消元,之前都是高斯约旦消元的,听说高斯约旦消元对于自由元什么的很难处理,这题的话就是把 10 拆成 2 和 5 分开算答案,算出自由元的个数当作指数然后乘一起就好了,由于 m<=10,所以 n>10 直接判掉,这样就缩小了 n 的范围
【TCO13 Round 2A 1000】ThePowers 深深的感到自己的菜,大佬的题解都看了一上午都不懂,后来看到一个讲的比较好的博客看懂了,挺好一道题目,要让 x1y1=x2y2, 只有当 x1 和 x2 都是同一个数 r 的幂次时才可能满足,于是分组,第 i 组是 i 的幂次构成的集合,每个组的贡献显然只跟这个组的大小有关,然后大于根号的组大小要么是 1,就是不能表示成其它数的幂次,要么是 0,就是被之前的表示过了,然后考虑算一个组的贡献,设大小为 t,那么就是求 x<=t, y<=B 有多少个不同的 xy,我们把 [1,B] 分成 t 段,第 i 段是区间 [(i-1)B+1,iB], 对于第 i 段,显然有 i<=x<=t,然后这段任何一个 x 的倍数都是合法的,然后暴力容斥一下
【TCO13 Round 2B 250】FruitTrees f(i) 表示两个水果间距为 i 的最小间距,这个可以暴力算,然后枚举相对位置,取最优秀的
【TCO13 Round 2B 500】ScotlandYard f(i,j) 表示 i 和 j 至少要多少步才能出现不同的路径,判掉环,记搜即可
【TCO13 Round 2B 1000】LitPanels 有趣的状压题,为了避免重复计数,我们可以枚举一个长 a 宽 b 的矩形,然后求 (最上一行),(最下一行),(最左一行),(最右一行) 都至少有一个亮格子,(不在左上右下 x * y 的格子) 和 (不在左上右下的格子) 至少有一个没有亮格子,然后把括号里的条件都状压了,然后算合法的方案数
【TCO13 Round 2C 250】DancingFoxes 求最短路,然后模拟下就好了
【TCO13 Round 2C 550】TheMountain n^4 做法很好想,我们把大的以枚举的最高点为中心拆成四个小的,然后预处理出答案合并即可
【TCO13 Round 2C 1000】WellTimedSearch 转换题意,把猜测看成查找过程,然后我们就是要找一个二叉树,使得深度在 [l,r] 的点尽量多,枚举第 l 层的点数,贪心搞搞,有点细节
【TCO13 Round 3A 250】YetAnotherANDProblem 考虑一个数可以被 >=3 个 and 出来,那么它肯定能在某个时刻之后一直出现,然后对于 K=1 特判一下即可
【TCO13 Round 3A 550】Block3Checkers 有趣的题目,显然 3 个 A 把边界分成了 3 段,把图转 8 联通,然后把到障碍的路径看为 0 把非障碍的路径看为 1,这样,我们的目标就是找到一个点,这个点可以到 3 个边界且代价最小,每个边界跑一遍 spfa 就好了
【TCO13 Round 3A 1000】TrickyInequality 题解看不懂,于是就抄题解代码过了,大致思路就是表示出答案,发现是个关于前 n 个数的和的多项式,然后矩乘优化 dp?
【TCO13 Round 3B 250】SimilarSequences 由于 n 超级小,瞎搞搞就好了
【TCO13 Round 3B 450】AntlerSwapping 考虑状压,要么从子集合并,要么是自己的贡献,自己的贡献按照 size-1 算即可,因为如果有更好的方案肯定会从子集合并上来,然后判是否有解可以把元素 sort 一下判
最近不想刷 BZOJ 了,就看看之前的多校吧
【HDU 5288】OO’s Sequence 直接搞,对于一个 i,求出 li 和 ri 表示左右第一个 ai mod aj=0 的 j,然后随便算一下就好了
【HDU 5289】Assignment 开个 st 表,枚举左端点,二分右端点
【HDU 5290】Bombing plan dp 一下,f(i,j) 表示 i 为根的子树还可以额外控制距离为 j 的点的选点的最少数量,j 为负数说明还有 -j+1 个深度没有被控制
【HDU 5291】Candy Distribution 考虑 dp,f(i,j) 表示前 i 堆糖果,两个人现在的糖果差,发现系数是 1 1 2 2 3 3 ... n-1 n-1 n n n n-1 n-1 n-1 ... 3 3 2 2 1 1 的形式,然后分奇数和偶数前缀和讨论可以从 f(i,j) 快速算出 f(i,j+1),然后就对了
【HDU 5292】Pocket Cube 对于一个二阶的 cube,黄白是相对面,显然如果可以操作交换两个块,即重复三遍 RUR'U',然后我们的目的就是看每个块,显然都是角块,通过拧能不能把黄白面调到上面或下面,显然因为是个合法的 cube,所以是可以的,记录每个角块要拧多少次 0 1 2,如果最后是 3 的倍数那么就是 YES,否则就是 NO
【HDU 5293】Tree chain problem 按照 lca 的深度从大到小排序,先算链上的和 sum,然后看下 w 如果比 sum 大,就加上 w-sum,然后给 lca 加 w
【HDU 5294】Tricks Device naive 的最短路和网络流二合一
多校刷不动了,先随便看看
【POJ 2186】Popular Cows tarjan 裸题
【POJ 2125】Destroying The Graph 根本不会最小割啊,只能看题解了
还是看下 TC 吧
【TCO13 Round 3B 1000】ToastJumping 首先可以 O(sqrt(d)) 求出凸包,然后放大 k 次后凸包上的点 (x,y) 会变成 (kx,ky),然后二分一下答案,注意边界
【TCO13 Semifinal 1 300】RabbitsAndCakes 发现如果 R<=C 或者 R=C+d(C) 就可以,然后就好算了
【TCO13 Semifinal 1 550】TheGameDAG 抄题解的
【TCO13 Semifinal 1 950】GameWithTree 不是很理解,每个点是独立的,然后一个点的 sg 值是 2^maxdeep-1,然后和 nim 游戏差不多?
【TCO13 Semifinal 2 250】考虑容斥,f(i) 表示 i 这个集合的限制都满足由多少个数,然后求 f(i) 也用一个容斥,总复杂度是 O(3^n*n) 的
【TCO13 Semifinal 2 550】JumpingOnTheGrid f(i,j,k) 表示 S 在 k 时刻到点 (i,j) 的剩下的最多能量,g(i,j,k) 表示 (i,j) 在 k 时刻到 T 的最少能量,然后随便算一下
【TCO13 Semifinal 2 950】OneBlack 考虑有用的点,是个平面的拓扑图,然后我们要找一个极小点割,直接转对偶图然后求路径数即可
【TCO13 Wildcard Round 250】TheFourSquares 枚举中间的分割线,然后乱搞
【TCO13 Wildcard Round 450】ModuloCounters 不会,抄题解,听说只要满足两条限制就好了,相邻的人数大于等于总人数,每个房间的人数小于等于总人数
【AtCoder Grand Contest 041】Domino Quality 构造,标算是可以在 n<=7 构造出每行每列都是 3 的,然后如果 n>7 的话,就把对角线上的提取出来,放一个 n<=7 每行每列都是 3 的,然后其它放 4*4 每行每列都是 3 的,我的做法是可以构造出 4*4 5*5 4*5 5*4 每行每列都是 3 的,然后,把数字表示成 4a+5b 的形式,然后左上角都放 4*4 的,右下角都放 5*5 的,然后其它的位置放 4*5 或者 5*4 的,这种方法要特判一些不能表示成 4a+5b 形式的数字,比如 7 和 11 这两个最烦了
【CF 1270H】Number of Components 有点神仙的,考虑如果一个存在一个 i 是的前缀的最小值大于后缀的最大值,那么会对答案有 1 的贡献,我们用一个值域线段树维护 x 能否成为某个前缀的最小值且大于他的后缀最大值,显然,一个值 x 的贡献要么 0 要么 1,然后考虑修改,只会对相邻的有影响
【CF 1270F】Awesome Substrings 按 k 讨论,分成小于根号和大于根号的
【CF 1270I】Xor on Figures 神仙题,根本不会,考虑定义 f(x,y) 表示以 (x,y) 会被影响的格子的异或和,首先可以证明如果所有的 f(x,y) 都是 0,那么所有 a(x,y) 都是 0,然后考虑对一个位置进行操作,令 ci=xi-x1,di=yi-y1,那么会被影响的只有点 (x+2ci,y+2di),可以考虑对于一个位置如果他能被表示成 (x+ci+cj,y+di+dj) 那么就会被异或上一个 x,然是同时它也能被表示为 (x+cj+ci,y+dj+di),所以异或一下就没了,因此只有 i=j 时才会有贡献,然后我们把大块分成了 4 份,即奇偶,偶奇,偶偶,奇奇,我们要把分开的部分进行相同的操作即可,最后统计有多少个 1 就是答案
【UOJ 310 UNR 2】黎明前的巧克力 对 FWT 的理解不够深刻啊,结果应该是个 \(2x^{a[i]}+1\) 的 xor 卷积,对于一个式子,发现每一项只有 -1 或者 3,那么卷积的每一项就是若干个 -1 和若干个 3 的乘积,FWT 的乘积不好求,但是 FWT 的和好求,FWT 的和就等于和的 FWT,对于每一项,可以通过 FWT 的和的这一项可以推出 FWT 的积的这一项,因为这项只有若干个 -1 和若干个 3,设 -1 有 x 个,那么 3(n-x)-x=a[i],即 a'[i]=(3n-a[i])/4,推出了 FWT 的乘积之后 UFWT 一下的第 0 项就是答案了
【SRM 776 DIV2 1000】StringRings 好神的期望啊,考虑存在一条红绿的,他的绿端匹配到了一个红红的,那么相当于把这个红红的给减少了一个,如果匹配到了一个红绿的,那么相当于减少了一个红绿的,还有一种就是匹配到了自己,那么会给答案加 1,还有一种就是没有红绿的,那么这个贡献很好算,这里不说了
【CF 482E】ELCA LCT 维护子树信息,照着题解抄了一遍
【CF 528E】Triangles 3000 傻逼的计算几何,有一个算三角形面积的方法,S=|1/2(OA*OB+OB*OC+OC*OA)|,利用这个式子,就可以算面积了
【CF 377D】Developing Game 考虑把一条限制转化为一个矩形 (li-vi)(vi-ri),给这个矩形里的点 +1,那么最大的点就是答案,于是直接扫描线
【CF 377E】Cookie Clicker 应该算是斜率优化吧,不开 long long 见祖宗,垃圾题目,样例怎么写都能过
【CF 543D】Road Improvement 直接换根 dp,这个故事告诉我们不要过于乘法逆元的时候要考虑 0 的情况
共 50 题
本文来自博客园,作者:xay5421,转载请注明原文链接:https://www.cnblogs.com/xay5421/p/water1.html