
trick
文章平均质量分 52
仰望星空的蚂蚁
梁东饪猛虎,汴水烹蛟龙
展开
-
【学习笔记】「JOISC 2022 Day3」洒水器
怎么发现这个不重不漏的标记方法的?原创 2023-05-03 19:54:05 · 904 阅读 · 0 评论 -
【学习笔记】[北大集训 2021] 魔塔 OL
比较经典的“分块”题目原创 2023-05-02 19:28:19 · 1040 阅读 · 0 评论 -
【学习笔记】Triangles
F????原创 2023-02-01 15:51:29 · 363 阅读 · 0 评论 -
【学习笔记】AT_tokiomarine2020_e O(rand)
看来我是完全不懂嘛。原创 2023-02-01 10:07:41 · 298 阅读 · 0 评论 -
【学习笔记】群论基础
抄自quack的ppt。原创 2023-01-31 12:28:36 · 794 阅读 · 0 评论 -
【学习笔记】[AGC036D] Negative Cycle
西江月·证明即得易见平凡,仿照上例显然。留作习题答案略,读者自证不难。 反之亦然同理,推论自然成立,略去过程QED,由上可知证毕。原创 2023-01-31 08:39:21 · 382 阅读 · 0 评论 -
【学习笔记】[AGC038E] Gachapon
西江月·证明即得易见平凡,仿照上例显然。留作习题答案略,读者自证不难。 反之亦然同理,推论自然成立,略去过程QED,由上可知证毕。原创 2023-01-29 16:32:35 · 269 阅读 · 0 评论 -
【学习笔记】[AGC036F] Square Constraints
西江月·证明即得易见平凡,仿照上例显然。留作习题答案略,读者自证不难。 反之亦然同理,推论自然成立,略去过程QED,由上可知证毕。原创 2023-01-29 11:37:05 · 346 阅读 · 0 评论 -
【学习笔记】[AGC040E] Prefix Suffix Addition
明明是很简单的观察,自己却发现不了。我太菜了!!!原创 2023-01-27 17:22:04 · 467 阅读 · 0 评论 -
【学习笔记】CF1225G To Make 1
细节比较多。原创 2023-01-27 11:20:51 · 645 阅读 · 0 评论 -
【学习笔记】[ARC154E] Reverse and Inversion
已经缺乏深邃的观察力了。原创 2023-01-27 09:48:01 · 676 阅读 · 1 评论 -
【学习笔记】[WC2018]通道
码农题,难以评价。原创 2022-12-31 16:52:42 · 678 阅读 · 0 评论 -
【学习笔记】整除裴蜀扩欧 + 同余剩余系欧拉函数欧拉定理逆元
数论基本都忘完了慌得一批 qwq原创 2022-07-11 20:11:20 · 190 阅读 · 0 评论 -
【学习笔记】倍增 + 二分
暑期 DAY7 自闭的一天原创 2022-06-29 18:34:40 · 375 阅读 · 0 评论 -
CF356D Bags and Coins & CF1239E Turtle
两道用bitset优化 01 背包的问题。原创 2022-05-19 20:25:19 · 196 阅读 · 0 评论 -
题解 CF468C Hack it
这题是比较难的一道题目。当然还是有套路的。先考虑 [1,10^x] 的答案。具体是多少我们并不关心。然后考虑 [2,10^x+1] 的答案。会发现比原来多 1 。那么最多 mod 次就能刚好整除 ,取 x=20 是绰绰有余的。注意用 __int128 。...原创 2022-05-19 20:10:39 · 207 阅读 · 0 评论 -
CF97B Superset
平面分治哈哈哈哈这个trick怎么在哪里见过。原创 2022-05-12 16:39:34 · 101 阅读 · 0 评论 -
[ICPC2014 WF] Baggage
拿到这种题,首先不要慌张 。这道题有 很明显 的规律性 : BABABABA …那么这道题 再难也不难 。手玩。手玩的时候要有清晰的目标,因为手玩的目的是让我们直观地感受规律,发现规律。毫无目的的手玩只是在浪费时间。尤其是这种规律性强的题目,手玩的结果往往具有普遍性,可以推而广之。当题目比较复杂时,手玩很有可能出错 。 这个时候要结合暴力程序进行验证。当然这都不是最核心的。本题最核心的是 递归构造 。而且这个构造 比较复杂,不那么明显 ,特别是这种带有 最小步数 限制的构造题目,往往考验创造原创 2022-05-04 21:39:09 · 309 阅读 · 0 评论 -
[JSOI2009] 等差数列
难度虚高。看到修改 + 区间查询 , 不难想到 线段树 。首先我们可以考虑维护 差分序列 而不是原序列。那么一个等差数列长这个样子 : x y y y …那么想到充分利用首项,考虑从后往前贪心,在一堆相同的后缀前面再塞一个不同的数。那么怎么表示一个区间的状态呢 ? 我们发现只有两种情况。前缀剩了 y y y …不剩剩余状态设计我们还要考虑是否挖掉右端点 (因为要抵消),需要用不同的 dp 值来存。#include<bits/stdc++.h>#define ll long原创 2022-04-23 22:06:19 · 238 阅读 · 0 评论 -
【题解】[SDOI2012] 吊灯
。。。结论:如果连通块大小为 k 时能够成立,当且仅当有 n/k 个节点满足 k | 子树大小考虑一种合法的划分方案,我们可以直观地想象出它们之间恰好有 n/k 个点满足 k | 子树大小。反之,如果我们有这么 n/k 个点的话,将这 n/k 个点作为 “关键点” ,分出来的 n/k 个连通块,每个连通块大小恰好为 k 。时间复杂度 O(Tn) 。...原创 2022-04-20 22:18:45 · 164 阅读 · 0 评论 -
[HNOI2012] 与非(位运算的桥梁)
与非(nand)是非常强大的位运算,可以表示出所有其他位运算:not A = A nand AA and B = not (A nand B)A or B = (not A) nand (not B)A xor B = (A and not B) or (not A and B)相当于我们可以进行任意位运算。然后我们考虑位与位之间的限制。如果这 n 个数中每个数第 i 位和第 j 位都完全相同,那么最终运算出来的第 i 位和第 j 位一定相同 。...原创 2022-04-13 22:22:58 · 514 阅读 · 0 评论 -
【题解】[ZJOI2009] 对称的正方形
官方题解写得像 shit首先看到 对称 ,不难想到二维 hash。那么我们判断左右和上下翻转后的矩形是不是和原来的完全相同。枚举中心位置,然后二分。#include<bits/stdc++.h>#define ull unsigned long longusing namespace std;const int N=1005;const int P=13333331;const int Q=1333333331;//sol: 二维 hash int n,m;int a[N原创 2022-04-09 19:56:37 · 451 阅读 · 0 评论 -
【题解】[CQOI2008] 传感器网络/二分图匹配最小字典序
我是个调了一下午的蒟蒻待会来讲一下这个算法的原理。理论上,这个做法可以处理所有 二分图匹配最小字典序 问题。#include<bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;const int N=55*55;//判断是否存在匹配包含 (u,v) //看是否存在环//若存在环,将路径全部取反//**然后删掉 (u,v) 这条边**//适用于完美匹配 -> 拆点 + 建虚点 int n,match[N],原创 2022-04-09 17:24:19 · 422 阅读 · 0 评论 -
【题解】[POI2008] ROB-Robinson
好难啊~~~嗯,因为这个船是不规则的,所以比较难以认知。同时因为它可以上下左右移动,所以情况比较复杂。但要求船全部合法比较麻烦,可以只要求边界合法。比如说我从上往下走时,只要最下面的边界合法即可,因为其他点都是和原来的船体重合的。可以用 bitset 来维护。因为有 4 个方向比较烦,所以考虑对地图进行旋转,因此要维护 4 个 地图 。地图旋转公式?(推这个很烦)记船的 最大长度 为 b ,最大宽度 为 a 。向下 (x,y)→(x,y)(x,y)\to (x,y)(x,y)→(x,y)原创 2022-04-06 22:16:52 · 409 阅读 · 0 评论 -
关于树上的三种标号方式
括号序列原理:对原树进行一次 dfs 遍历,到一个节点就加入一个 左括号 ,再加一个表示节点编号的 辅助点 ,回溯时再加入一个 右括号 。比如:构建void dfs(int u,int topf) { val[++cnt]=0; c[cnt]=1; val[++cnt]=-1; //这个地方插的是节点编号 id[u]=cnt; for(auto v:g[u]) { if(v!=topf) { dfs(v,u); } } val[++cnt]=1; c[cnt]=1;原创 2022-04-03 10:17:47 · 890 阅读 · 0 评论 -
【题解】[COCI2020-2021#2] Svjetlo
solution:神仙状态。考点:树形dp + 思维。路径是可以重复的,简单地树形 dp 可能难以处理,考虑路径的拼接。设 dp[x][i][j]dp[x][i][j]dp[x][i][j] 表示第 x 个点的子树内(除了自己)的奇偶性已经满足,i 记录第 x 个点的奇偶性是否满足,且子树内(包括自己)的路径端点数有 j 个的最短路径长度,其中 i∈{0,1},j∈{0,1,2} 。状态转移方程系数:dp[x][i][j]=min(dp[0][i^1][j]+dp[y][init[y]][0]原创 2021-08-16 13:08:45 · 268 阅读 · 0 评论 -
【题解】[雅礼集训] Arg
[雅礼集训] Argdp套dp好题。考虑做lis的两种方法:1.设f[i]表示做到i的最长子序列长度2.设f[i]表示长度为i的上升子序列最后那个数最小是多少第一种方式不好设状态,我们考虑第二种显然,如果知道f里有哪些数字,就可以还原f那么我们设一个状态 f[S][F]f[S][F]f[S][F] 表示现在原来的序列中已经用了S这些数字,f数组中的数为F的方案数考虑转移,显然有2种方式:1.向S中添加一个不在A中的元素,这种情况直接转就可以了2.向S中添加一个在A中的元素,这个时候要考虑原创 2021-05-23 13:05:35 · 148 阅读 · 0 评论 -
【trick】树上路径长度查询->LCA深度查询->到根节点路径权值和查询
树链剖分eg.求 dis(x,y)dis(x,y)dis(x,y)dis(x,y)=dis(x)+dis(y)−2dis(lca(x,y))dis(x,y)=dis(x)+dis(y)-2dis(lca(x,y))dis(x,y)=dis(x)+dis(y)−2dis(lca(x,y))一般来讲,如果题目只是叫我们求距离,我们可以不用把 lca(x,y)lca(x,y)lca(x,y) 求出来再带入运算。可以将 (1,x)(1,x)(1,x) 的路径权值加一,再求 (1,y)(1,y)(1,y) 中原创 2021-05-02 22:58:23 · 289 阅读 · 0 评论 -
【trick】meet in the middle
meet in the middle每个点有三种情况:选入左边集合,选入右边集合,以及不选。考虑折半搜索。对答案进行去重即可。CF525E Anya and Cubes每个数组有三种情况:被选,被选且贴了标签,没被选两边状态没有重复的。折半搜索即可。时间复杂度 O(n∗2n)O(n*\sqrt{2}^n)O(n∗2n)Vertex Covers选择模型点覆盖也是选一个点或者不选,所以归类为选择模型把这个图分成两半L和R,对每一半都搜索出点覆盖的方案数,然后合并问题:原创 2021-05-01 10:28:15 · 133 阅读 · 0 评论