- 博客(163)
- 收藏
- 关注

原创 陈年老贴 ----- vijos1144守皇宫43分求指点 --------- 顺便加一个 Hello World 吧 QAQ
Hello World!我是一名杭州学车中学OIER。ID Timsei。本人水平较低,比赛只会打打暴力.(从下面的博客就可以看出QAQ)QQ: 810600709 加 友链/好友找这个号就行。 //都不忍心说水了QAQOwO#include<bits/stdc++.h>using namespace std;struct node{int son[18...
2017-02-18 15:17:09
764
2
原创 WC2019数树
首先由于我们很难直接求解边集之交为S的树的个数,所以考虑容斥,转化成至少交S,这里需要推一波式子,然后利用组合意义,转化成一个连通块内给一个点染色,就可以O(n) DP了。这类题能够转化成包含的好算一定要尝试着去凑一下,很有可能可以出奇迹。然后再推一推就可以推出一个多项式exp的式子啦,感觉还是很妙妙的QAQ。prufer序列那一部分可以用生成函数的exp来推。...
2019-02-21 22:06:45
913
1
原创 维护点分树
总的来说,维护点分树需要记录以下这些东西:该点在点分树上的每一级父亲。它在每一级父亲那里的深度。它和它父亲之间的cut点。如果要维护数据结构,需要该求解的答案可减,并且需要对于每一个点分中心记录一个该点分中心为中心的数据结构,以及以该割点为点分中心的数据结构,查询时相减即可。可以用来维护一系列求解路径长度的问题。口胡口胡。BZOJ 地震 裸题。BZOJ 幻想乡战略游戏就是求带...
2019-02-20 20:29:10
487
原创 codeforces #327 #333 Div1 总结
两场相对比较简单的codeforces策略上都反应了一些问题。#327 总的来说在A、B两题上花的时间太多了。 A题我认为我花这么久的原因在于我代码写的不够简洁。B题少要考虑边界情况,像这个题,我没有考虑起点和终点重合的情况导致WA。 每次用到除法的地方要特别谨慎。C题这一类题要想清楚了再写。 思路不清晰随便fst。D 思博题。E 这个题很强。首先AC自动机匹配的方法很灵活,感觉可以拓展...
2018-12-13 22:34:00
396
原创 BJOI染色
我还是自己脑补了很久才理解。首先二分图全部相同即可。然后可以不停地剔除那些du为1的点,这些点对答案没有任何影响。然后我们发现我们对于一个环我们可以用三个点来直接把剩下的部分染上相间的颜色。一个推广是如果两个偶环有公共部分,且这两个环的每个环自己独有的部分长度至少为2的话,我们一定可以构造出一个合法解来cha掉。单独考虑每一个边双。这个结论的推论就是一个点如果度数超过3 那么一定可以找...
2018-12-11 21:28:42
627
原创 Topcoder TCO R2A Div1
A 题 范围要看清楚,不能够想当然。B题 第一次fst是因为没有考虑直接把一个环首尾相接。C题 构造题。不会捉。主要的难点在于三角形的三边关系需要满足。我们考虑如何满足这个限制。首先wxh 的做法是,既然我们很难处理,那么我们就递归左右两边。左边已经帮我处理好了这样的情况。我们尽量最终的序列分成均匀的6段。s1,s2,s3的构造方案已经被给出,将s2,s3平移至s3, s4然...
2018-12-01 11:13:50
278
原创 九省联考总贴
秘密袭击单独写了。详情见另一个博客。#include &amp;lt;bits/stdc++.h&amp;gt;using namespace std;typedef unsigned int ui;const int N = 2e3 + 5;const int M = N * 2;const ui mod = 64123;const int MAX = 1e5 + 5;struct ...
2018-11-30 07:30:30
551
原创 2018.11.30 多项式
题目大意: 求n个点的二分图,将其所有边都黑白染色后不同的图的数量,两个图不同当且仅当x-y 这条边只在一个图中出现或者两张图中颜色不同。n 1e5多项式模板题。首先我们考虑联通二分图的生成函数G容易知道答案F = e^G.联通二部图的数量的生成函数 H=e ^ (2G) 所以我们只需要计算出H然后多项式开根就是答案。H 的 n 次项显然是 sigma i = 1 - n C(n, i...
2018-11-29 08:01:13
343
原创 LOJ#2473. 「九省联考 2018」秘密袭击(线段树合并+拉格朗日插值)
一个非常强的题。也许比较套路但是都比较生疏。主要使用两个思想。首先是把求第k大的权转化成枚举i 从1 - W 计算 最终的第k大 大于等于 i 的和。然后就可以 转化成一个DP。f[i][j][k] represents the subtree of the node i and we are considering the value of the kth node is not le...
2018-11-27 22:32:54
374
原创 HAOI2018
背包看出gcd的小trick之后就可以直接跑莫比乌斯反演了。以后这一类要查找一个数的因子的位置的题,可以用杜教筛记忆化的方法分两个数组记录。 做莫比乌斯DP的时候可以直接暴枚哪些质因乘积这样可以减少复杂度。 不过想要简洁的话预处理mu...
2018-11-19 22:24:37
312
原创 codeforces 1055
比赛的时候 C 题卡了有一段时间。 原因是边界情况,当b是a的倍数的时候不能够倍长。 以后当要做一个事情的时候要思考这个事情成立的条件。 避免心态崩了的情况。D题没有调出来, 主要原因是我只考虑了那些应该被更改的字符串被改正确了。 却没有保证剩下的字符串不被修改。 下次要忽略某些干扰条件的时候,要考虑这些干扰条件何时成立,何时会对 结果有影响。F题是Trie树卡空间,这个东西分层搞或者建出Tr...
2018-11-18 21:32:47
449
原创 codeforces778
C 求一个Trie 树 缩掉每种深度的一层之后 的 大小。 n 3e5这个题我直接像线段树合并那样暴力的合并过掉了。不知道复杂度为什么是对的。D 一个 1 * 2 密铺的矩形 每次可以选择一个仅包含两个 12的 正方形,旋转90度,问是否能用 少于 4 * n * m 达到目标状态。n,m 50这个题又是构造题的典型套路,把所有的目标局面和初始局面都转化成一个好弄的特定局面,这题里这个局...
2018-10-20 21:12:25
774
原创 codeforces 1054
D 题意不说了 转化成抑或前缀和然后相当于每一位能够取反求最少相同的对数、E 这个题自己想出来的。300*300 的矩阵 每个位置一个 01串,每次可以选择用一行或者同一列的两个格子把一个格子里的字符串的末尾元素删去插入到另一个格子里字符串的头部。问是否能从 初始局面变化到 目标局面。用不超过 4 * 字符串总长次操作。总字符串长度 1e5第三次遇见这一类构造题了,终于切出来了。 具体...
2018-10-20 20:56:52
385
原创 codeforces 1063
D 这个题 有点胖胖。题意是 有一个环 n 1e11 个小朋友 k 1e11 颗糖分给他们,这n个小朋友排成一个圈, 每个人要求得到1个或 2个 糖果, 如果不足全拿完,已知现在从l开始发糖,顺时针一直发发到r号人结束,求 最多有多少人要2颗糖。考试的时候一直在想如何二分答案。后来发现枚举圈数非常的方便,以后这种左右摇摆有边界的题直接周围稍微for 一点 只要不TLE。这类题目先列出方...
2018-10-15 22:30:42
306
原创 AGC 028
C 一道和以前做过的一道codeforces类似的题,但不大一样。题意: 每个点两个权值L ,R, 要求把这些数排成一个环,相邻两点ab间的(处于逆时针方向的数为a)的代价为 min(L[a], R[b]), 求能构造的最小的环。n 100000这个题自己做出来的。首先考虑 如果说能分解成多个环的话,我们一定可以构造一个方案使得权值和为所有L,R从小到大排序的前n个数的权值和。那么我们...
2018-10-15 22:23:47
558
原创 codeforces做题 记录
1033 G 题意是 给 n堆 石子 Alice 和 Bob 游戏 Alice 每次可以在一堆中取出a枚石子,Bob可以在一堆中取出b枚石子,求对于a 属于 [1,m] b 属于[1,m] 有多少对 &lt;a,b&gt; 满足 1)Alice必胜 2)Bob必胜3)先手必胜 4) 后手必胜这一类 博弈题 考虑 每堆对于 (a+b)的余数即可, 像这种 双方在对手操作后总可以再进行一步操作达到...
2018-10-14 13:28:31
1155
原创 nowcoder提高组四 灭虫
题意:3000个在数轴上的点,对于每个点可以选择这个点向左延伸li长度的线段,或者这个点向右延伸ri长度的线段,问选择的方法使得最终覆盖的数轴长度最长,输入均在int以内。一个非常巧妙的DP题。首先这一类题目有重复的线段长度统计(或者是树上的可以相交的路径方案统计)或者其他内容有一个比较自然的做法:就是把每一段线段保留一段前缀或者后缀,将限制转化为最大值,然后要保证所有的线段不相交。这个题...
2018-10-07 21:55:36
297
原创 Topcoder SRM 100 场计划
SRM 550 Div1 250 按题意模拟,注意判断边界是否被访问时,以后的路径不能算上 SRM 550 Div1 500 一道找规律题,打个表 SRM 550 Div1 1000 矩阵快速幂题,每个位置是该位置需要多少次才能转到目标态,先让他转到目标态的贡献减去之后,剩下就只剩下自己转圈的贡献了,我们发现这样的贡献在每个位置都相同,就可以算出最大旋转次数. 然后状态就是 有多少个需要两步到...
2018-10-04 19:39:24
450
原创 codeforces VK CUP 2016 R3 VP
A,B 太水 C 题 具有单调性可以二分做,也可以推一波式子用凸包,能写第一种尽量写,不容易错。 D 题 大分类讨论题,要注意的有 删除在所有操作之前,注意用set去重,最后一起加回来。 中间部分对称的东西尽量对称写,能在首尾写的写在首尾。 重复以及对称变量用一个变量存起来。 E 题 这个题提供了一个好的思路:当我们一堆东西取max的时候利用min小于等于什么来DP,或min-max容斥有...
2018-07-11 22:24:51
389
原创 LCT模板题2 最长链
树是任意两点间仅有一条路径的联通图,树上的一条链定义为两个点之间的路径。在本题中定义一条链的长度为链上所有点的权值和。现有一棵带点权树,要对它进行一些操作,请你在第一次操作前和每一次操作后输出这棵树的最长链。这题非常不错的虚边维护儿子信息的LCT,并且,利用LCT splay 维护的是链的性质,可以动态的利用最大子段和的方式进行合并,主要思想就是维护以x节点为根的子树所表示的链的从头开始的最大...
2018-03-07 22:04:15
706
原创 博弈图BFS
从必败态开始BFS,每次把必败态的前趋标记为必胜态,把必胜态的前趋度数-1,当一个点度为0时,变为必败点,这样只有必胜点和必败点会被BFS出来。
2018-02-28 13:02:48
827
原创 挑战NPC 一般图最大匹配
题意:n个球,放进m个盒子,每个盒子最多放三个球,每个球可以放的盒子是一个集合,半空的盒子是指盒子内的球个数<= 1的盒子。求半空的盒子数目的最大值。一般图最大匹配。 把每个盒子分成三个,三个间两两连边,每个点向他所能到的盒子的三个分点连边,跑最大匹配,最后的答案就是,maxmatch - n。 这个证明比较容易,但是非常难想,我还需要研究一下这之间的思维过程。学了一下带花树算法...
2018-02-24 16:33:20
494
原创 UOJ275组合数问题
一道数位DP题,仔细看题分析一下就知道是求什么。 数位DP的新套路,可以将lim也记录进答案保证复杂度#include <bits/stdc++.h>using namespace std;#define int long longconst int mod = 1e9 + 7;const int N = 222;const int CMAX = 1e5 + 5;...
2018-02-19 22:11:37
608
原创 UOJ Ernd
斜率优化 优化DP ,单调栈维护凸包即可 坐标轴旋转变成二维数点的套路%:pragma GCC optimize(2)#include <bits/stdc++.h>using namespace std;const int N = 5e5 + 5;struct Point { int x , y , id; friend bool operator ...
2018-02-19 22:05:41
387
原创 清华集训魔法小程序
多维前缀和的逆运算,只需要对于每一位减除其在这一位上的前缀接收点的答案就可以了。 我们考虑要减去至少有一位不一样的,那我们考虑最后一位是哪一位,然后减除贡献之后多余的贡献就不要计算了。代码:#include <bits/stdc++.h>using namespace std;const int N = 1111111;#define int long long...
2018-02-16 22:21:17
369
原创 点分治小结
终于理解了点分治。 不过感觉这东西的拓展一定很高深。 BZOJ3697 套路:一个个子树枚举,单独考虑根出发的贡献。 点分治的本质就是合并相同的信息来优化复杂度。 XJOI 第K大 给定一棵带权值的树,求每个点出发的第k小距离。 可以在dfs序上分块,维护全局第k大然后一遍dfs。 点分 常见的在点分树上统计离一个点不超过x的点有几个。 在点分树往上跳然后去重。code
2018-01-24 22:32:03
577
原创 2182: [Spoj1479]The GbAaY Kingdom最小直径生成树
等价于求图的绝对中心 这个东西是好几条折线组成的一个东西,我们用单调栈去维护它.显然设现在枚举的边为(u,v ,w) 该点为p 则有 dis[p][i] = min(dis[u][i] + k , dis[v][i] + w - k); k = dis[u][p]; 选取一个k使得对于所有dis[p][i]的最大值最小.显然如果说dis[u][i] > dis[u][j] 并且 dis[v][i
2017-12-19 18:50:11
408
原创 第二次被mo意义续
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-11-07 18:16:53
350
原创 坑堆
坑.. 1.学一学计算几何半平面交+旋转卡壳 2.做silver50道 , gold至50道 3.AGC刷至15场 4.BZOJ争取在今年年底前刷到500题
2017-11-03 21:38:10
297
原创 BFS妙题1632: [Usaco2007 Feb]Lilypad Pond
1632: [Usaco2007 Feb]Lilypad PondTime Limit: 5 Sec Memory Limit: 64 MB Submit: 737 Solved: 245 [Submit][Status][Discuss] DescriptionFarmer John 建造了一个美丽的池塘,用于让他的牛们审美和锻炼。这个长方形的池子被分割成了 M 行和 N 列( 1 ≤
2017-11-02 11:42:01
423
原创 1576: [Usaco2009 Jan]安全路经Travel
第一次看到用最短路树来解题,一下针对这种某些边不能选,次优值之类的最短路除了A*之外的套路. 往往可以求全局,在线可以用LCT来维护#include <bits/stdc++.h>using namespace std;const int N = 2e5 + 5;const int M = N * 2;int fir[N] , ne[M] , to[M] , cnt, dis[N] , hu[
2017-11-01 22:08:59
321
原创 XJOI泡泡糖
给你一幅行数不超过5的总点数不超过1e5+5e4的网格图,每个点的点权在l到r之间(r<=10000),每条有边权,每条边的贡献为这条边的边权乘上这条边两端的点权的绝对值之差,最小化所有边的边权之和题解写的很好,就不在赘述. 这题可以用状压,贪心,最小割,维护分段函数,线段树,线性规划分别得到不同的部分分. 最后对于决策确定,有维护修改和整体划分两种,值得借鉴考虑.最小割方案间的性质调代码要先想
2017-11-01 07:51:34
433
原创 Atcoder 刷题记录
AGC001 D 回文串构造题,转化:欧拉路径 + 回文串特殊性质(错位和长度奇偶性) 思维题 AGC001E BBQhard 组合数转化成方格路径问题建模 AGC001F WideSwap 拓扑序转化(排列对应的trick)+优化建图(没懂)
2017-10-28 22:05:03
1224
原创 splay 动态维护dfs序
Gty的游戏 调程经验: 1.splay 写的时候小心,加入时注意splay到根 2.连接儿子时,别忘记连接父亲的边. 3.调试时可以先封装好,输入特定信息调试 4.splay维护序列是提取右端点的左儿子 知识点:1.欧拉序维护:栈. 2.这种题,就想到套路博弈论,阶梯博弈的技巧骗分程序并列时间rank1.%:pragma GCC opti
2017-10-26 20:17:03
491
原创 考试技巧篇
contest 63 时间分配 上来就做第一题,导致调太久,后面两道题没做,上来要先看完题再制定对策.contest 62 题目观察 有的题一看像是打表,就果断打
2017-10-25 17:46:31
538
原创 XJOI一句话复习题解
距NOIP还有18天,一天复习5个contest, 计划复习完 Contest 62 今天刚做,所以就…嘿嘿嘿 T1 考虑一下实际意义,每次数一条斜率上点数,覆盖所有斜率,所以是n*m,cxt莫比乌斯反演. T2 dfs序优化DP,暴力可过 T3 暴力可过,是一道决策单调性的问题,状态比较新颖,下次遇到中位数题,试试以中间点为状态的Dpcontest 7 T1 大模拟 sub
2017-10-24 19:06:16
669
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人