
OI
Moon1125666900
这个作者很懒,什么都没留下…
展开
-
知识点杂记
1、多边形内任选一点的期望位置为重心。https://ac.nowcoder.com/acm/contest/8409/K原创 2020-11-12 22:38:34 · 259 阅读 · 0 评论 -
8.22模拟赛
T1 二分答案k,计算利用容斥计算1~k有多少个满足题意。T2 一开始300范围,一眼Floyd,发现还要枚举不能到达的点,还要有一重N,得到O(N4N^4)的优秀算法。愉快T掉。 然而可以这么想,中间节点y=1~n2\frac{n}{2},k为n2+1 n\frac{n}{2}+1~n时,得到的矩阵是一样的,所以可以先令k循环n2+1 \frac{n}{2}+1~~ n ~n,然后递归做左边,右原创 2017-08-22 21:47:22 · 288 阅读 · 0 评论 -
NOIP2017多校联测&提高组模拟26-A
T1 概率DP,随便做。 T2 比赛时看错题,以为起重机可以叠加来搬货物,然而并不可以QAQ。于是写了个30的zz状压,发现居然还有分…… 正解是贪心or网络流直接上。我还是太菜了QAQT3 首先发现对于叶子节点,它和相邻点形成一个团。找到一个叶子节点后,找到其父亲作为根,判断的方法是看该‘父亲’和孙子节点是否有交,没有则不合法。找到根后dfs即可。原创 2017-11-10 07:17:32 · 317 阅读 · 0 评论 -
最小费用最大流
学习了一下最小费用最大流,发现其实就是在原来每条边的定义加上一个单位流量的费用,so寻找增广路时采用贪心的思想,每次找费用和最小的路径即可。 废话少说,上代码://POJ2135#include <cstdio>#include <algorithm>#include <cstring>#include <queue>#define maxn 1005#define maxm 1000原创 2017-02-09 16:59:26 · 823 阅读 · 0 评论 -
网络流Dinic
很久前学过增广路算法,今天学习了它的优化Dinic,原理是在dfs前先将残量网络用bfs进行分层,dfs时只往下一层搜索,详细见代码…… POJ3281 拆点+建图+网络流 把每头牛拆成两个点,建立超级源点S和汇点T,S->菜->牛->牛’->饮料->汇点。注意不要建重边!!!#include <cstdio>#include <queue>#include <algorithm>#in原创 2017-02-08 23:32:36 · 401 阅读 · 0 评论 -
各类模板
头文件、define 线性筛 树链剖分 莫比乌斯函数/反演&&杜教筛 FFT 后缀数组 log2log2log^2版 后缀数组 logloglog版快速幂:LL qsm(LL a,LL b){ LL tmp=1; while (b) { if (b&1) tmp=tmp*a%mod; a=a*a%...原创 2017-07-19 21:21:53 · 518 阅读 · 0 评论 -
NOIP2017提高组模拟22-雅礼国庆10.5
T1 题意:有m(<=1e4)层边,每层有k(<=10)个点,第一层只有一个点S,最后一层只有一个点T。然后整个图是一个DAG,可以一次取反相邻两层的边,问有多少种方案使得最后的S到T的路径数为偶数,有模数。题解:用f【i】【j】表示做到第i层,路径数的奇偶性情况为j,如果是偶数为0,奇数为1。最后把状态中1 的个数为偶数的累加即可。 代码:http://paste.ubuntu.com/258原创 2017-11-03 20:39:11 · 505 阅读 · 0 评论 -
NOIP2017 酱油记
D0 到了酒店,看了会片&&肝sgs D1 T1看到题直接打表找规律。打完表从前几项找到了规律,然而发现后面的不符合规律,检查了一下,发现是打表写错了……背包时越界没有判,改了后结论就没问题了。 T2一看题,这不是zz模拟嘛……考虑各种奇奇gaygay的情况后,打了1h+,一测大样例,GG。又调了30min+。 然后看了看T3,想到DP状态。然而不会写Q原创 2017-11-16 10:59:30 · 380 阅读 · 0 评论 -
Problem 1049: Lost My Music【可持久化栈+倍增】
首先要求的式子是一个斜率的相反数,其实就是求斜率的最大值,那么我们只需维护一个下凸包即可, 考虑到直接用栈来存,如果是在一条链上的话可以保证每个数只会被插入弹出一次,直接做,暴力退栈就行了。 然而在树上暴力退的话会被卡成O(N2N^2)…… 所以对于每个点存一个倍增数组,记录其在凸壳里的祖先,然后乱搞即可…… 代码://#include <bits/stdc++.h>#include <c原创 2017-11-30 11:25:37 · 492 阅读 · 0 评论 -
bzoj十一月份月赛 Problem A: 组题
题意:对于一个长度为n的数列,求一个长度>=k的子段,是的平均值最大。首先我想到的是对于i,相当于在1~i-k中找一个最大斜率。于是维护一个斜率的单调栈即可。然后查找时二分一下即可。不过这样写起来挺cd的,本蒟蒻码了1.8K,于是还跳了不少时间,最后WA了一发,全开longlong后A了…… 代码: http://paste.ubuntu.com/26139760/ 然而二分答案更好写(zzk原创 2017-12-08 22:39:21 · 366 阅读 · 0 评论 -
POJ1741点分治
点分治入门题…… 因为对于一个点,只有两种情况,路径经过当前点OR不经过…… 第二种情况等价于递归求解…… 设dep[i]为第i个点到当前重心的深度, 对于经过的情况,即不在一颗子树(或只在一颗)的合法路径,即对于满足dep[i]+dep[j]<=K的i、j的总方案数,减去满足路径有重合(如下图有色路径)的方案数。 #include <cstdio>#include <cstring>原创 2017-04-08 11:58:57 · 346 阅读 · 0 评论 -
NOIP2017多校联测&提高组模拟25-A
T1 写写画画可以发现其实原式相当于a*b……至于证明,相当于从原点向1~n,1~m的矩阵,画一堆直线,然后gcd==1的表示直线第一个点,min【ni,mj\frac{n}{i},\frac{m}{j}】则表示穿过的点数。所以相当于遍历了整个矩阵。T2 在dfs序上DP,相当于对于一个个区间,要么选左端点,要么选右边区间的值,搜一遍即可。T3貌似是DP加单调队列优化。原创 2017-11-10 07:06:10 · 308 阅读 · 0 评论 -
Atcoder 刷题(划水)记录
http://agc016.contest.atcoder.jp/tasks/agc016_b 题意:有N只猫,每只猫带着某种颜色的帽子,给出每只猫能看到(即其他N-1只猫)的颜色种数a【i】,问是否可以构造出合法序列。题解:本蒟蒻想了挺久的,显然a【i】的顺序没有什么卵用,排个序。会有一个显然的结论: 当max-min>1时直接输出No。max==min 则N==a[1]+1或N>=a原创 2017-10-23 21:12:01 · 1407 阅读 · 0 评论 -
8.21模拟赛
T1 由题意所给式子可以得出在Min、Max之间的值一定可以取到。T2 DP 设Min[i][j]为以i为根节点取j个点的最少黑点个数,Max反之,显然有Min~Max之间的黑点都可以取到。简单推一推即可。T3 将所给字符串建个AC自动机,然后满足一个字符串的子串是某个字符串的前缀,即一直跳fail,打个标记,对于两个字符串跳两次,两个标记同时满足即可。原创 2017-08-22 09:40:16 · 284 阅读 · 0 评论 -
7.13 模拟赛
T1 一棵树,随机选两个不同的点x,y,添加一条边,使环经过x,y,问环的长度期望值是多少。分别预处理出x子树内部外部到x的距离和,然后对于询问x,y分是否存在祖先关系即可。T2 图里有n个主机,每个主机都有且仅一条出边(单向)连向另一台主机,而且每一条边都有一个权值(只能是1、2)。给定一个值x,从某一台主机出发,沿着出边走,走到某一台主机上,问能否使整条路径(至少包含一条边)的权值和等于x。读原创 2017-07-19 20:15:48 · 344 阅读 · 0 评论 -
7.17 模拟赛
T1 O(n)乱搞,算出每个点向左向右延伸的最大长度,取个min即是当前点的答案。最后扫一次取个max即可。T2 数据暴水,暴力(玄学)居然都过了……貌似正解是取个最小公倍数,取个膜,就能保证时间复杂度。T3 正解是三分,然而可以用快排+乱搞水过,因为中位数小于0就可以直接加到0,总体绝对值和一定变小。原创 2017-07-17 21:54:47 · 364 阅读 · 0 评论 -
7.12 模拟赛
T1 题意:在一个 n *m 矩阵中,每一个元素都是非负整数,给出两个整数 P 和 S,对于若干个矩形区域,然后把区域内所有≥P 的元素个数与他们的和相乘得到权值q,q之和与 S 之差的绝对值小于某一个值 D,胜利,反之失败。已知将要选择的矩形区域,在 S 和 D 一定的情况下,他能否胜利,以及q之和与 S 之差的绝对值最小是多少。 先对P进行二分,再对于每个矩阵[1,1,i,j][1,1,i,j原创 2017-07-13 08:12:31 · 420 阅读 · 0 评论 -
7.11 模拟赛
T1 在一个n*m的棋盘上,求每一行每一列都至少有一个棋子的总方案数。输出答案对1000000007取模用f[i][j]表示做到第i行,j列至少有一个棋子。 则枚举上一行k列至少有一个棋子, f[i][j]=∑j−1k=1(f[i−1][k]∗2k∗Cj−kn−k)+f[i−1][j]∗(2k−1)\sum_{k=1}^{j-1}(f[i-1][k]*2^{k}*C_{n-k}^{j-k})原创 2017-07-12 08:43:14 · 710 阅读 · 0 评论 -
2017.7.4 模拟赛
T1 水题,然而I64d和lld T2 sb物理题……各种积分乱搞。最后得到一个十分简单的式子。 T3 一开始想都没想直接上树套树,然后就炸了…… 正解是扫描线,先离线对车按纵坐标排序,矩阵按右端点的纵坐标排序,每次新加入一个车,则对该行的权值进行更新,判断一个矩形合法,即在当前行列进行区间查询最小值tmp,如大于当前左边界则合法。横着竖着分别做一遍即可。 如图所示,显然应该用红色车代替蓝色原创 2017-07-04 21:21:28 · 266 阅读 · 0 评论 -
2017.7.5 模拟赛
T1 给定一个序列,包含非负整数,0可以“变”为任意数。求最长上升子序列。 首先,对于常规的nlogn算法,用一个单调栈st维护长度为k的最长上升子序列的最小末尾取值。每次做到第i位,如大于栈顶,则直接插入栈,否则在栈中二分查找第一个>=>=a[i]的元素,然后替换掉。 考虑0的情况,相当于可以在任意栈内位置j,在st[j]后插个st[j]+1,即栈中每个数往右移一位,再+1. 如图所示,原创 2017-07-06 21:18:35 · 369 阅读 · 0 评论 -
2016.7.6 模拟赛
T1 sb模拟 T2 求树上三点不是一条链的情况。 等价于任意三个子树大小乘积。 T3 http://www.gdfzoj.com/oj/contest/153/problems/3 给出一个矩阵,可以沿着格子线折叠,新得到的格子为重叠起来的格子和。问可以得到的最大价值。 对于行dfs出可行折叠方案,列DP每种方案最大值。注意选的相邻行列的奇偶性要不同。 一开始读错题QAQ……原创 2017-07-06 21:34:53 · 301 阅读 · 0 评论 -
NOIP2017多校联测&提高组模拟23--A组
T1 题意:题解:筛出1e6以内的质数,再用枚举每个质数i,把【l,r】间的i的倍数都除掉i, 时间为O(n2+n3+...\frac{n}{2}+\frac{n}{3}+...)~O(NlogN) (N为区间长度) 代码:http://paste.ubuntu.com/25906707/T2 、 题意:对于四个点组成的环,起点重点均为2,给定下限K,要求路径至少为K且最小 题解:对于原创 2017-11-07 15:47:21 · 400 阅读 · 0 评论 -
NOIP2017多校联测&提高组模拟24-A
T1 :随便坐 T2:重点是求出三元环,O(N364\frac{N^3}{64}) T3:BFS,建图时注意一下,对于每个权值挂个链表,每次枚举子集后打标记。原创 2017-11-07 16:04:25 · 369 阅读 · 0 评论 -
GFOJ510树上路径
Problem 510: 树上路径 Time Limit: 3000 ms Memory Limit: 512000 KBProblem Description 练一练点分…… dep表示点到重心距离,mx_mx表示点到重心最大值,对于mx_mx排序后乱搞…… 表示拍了很久发现犯了个**错误……#include <cstdio>#include <algorithm>#define原创 2017-04-16 18:43:18 · 423 阅读 · 0 评论 -
【ARC090 F】Strange Nim(SG函数)
题面: A 和 B 在玩取石子游戏,他们轮流操作,每次选择其中一堆石子,取走一部分 有 n 堆石子,每堆一开始有 Ai 个 每堆石子在不同时刻能取的石头个数是不一样的 具体来说,当第 i 堆石子有 x 个的时候,最多在这堆石子中取走 ⌊xKi⌋⌊xKi⌋⌊\frac{x}{Ki}⌋ 个, 最少取走一个 1<=n<=200 1 <= Ai, Ki <= 1e9...原创 2018-03-30 10:03:34 · 431 阅读 · 0 评论 -
后缀数组 炒鸡好写版
运用STL自带的sort排序,双关键字压成一个long long,常数很小的Nlog2NNlog^2N//#include <bits/stdc++.h>#include <cstdio>#include <algorithm>#include <iostream>#include <cstring>#include <limits>#include <map>#include <ve原创 2018-04-28 08:19:33 · 191 阅读 · 0 评论 -
splay练习
splay基本操作: lr(x) maintain(x): 维护x信息 rotate(x) 将x旋转至父亲节点 pushdown(x) 下传标记 remove(x,y) 清除x至y的标记 splay(x,y) 将x旋转至y下(splay之前要remove一下) k_th(x) 将第x个数旋...原创 2017-06-22 20:19:11 · 611 阅读 · 0 评论 -
【GFOJ】2018省选训练12 & 多校联测
开始了刷题…… T1 题面:给出长度为 m的上升序列A, 请你求出有多少种1……n的排列, 满足A是它的一个LIS. (1<=m<=n<=15) 一开始想到过状压求LIS过程中的单调栈,然而没往下想,去手玩推式子了……然而没推出来…… 题解:【状压+3进制】 设F【S,S0】,S,S0为n位二进制,S表示当前已经加了哪些元素,S0表示当前单调栈中的元素,那么枚举最后一个加...原创 2018-05-19 16:45:27 · 335 阅读 · 0 评论 -
BSGS&&扩展BSGS
BSGS算法用于解决已知 a,b,P的情况下,(a、P互质) 求最小的非负整数x满足ax≡b(mod P)ax≡b(mod P)a^x≡b(mod P) 具体操作百度一大把,这里简略说一下,就是令m=P−−√P\sqrt{P} 设x=i*m+j,枚举i然后左右同乘yi∗myi∗my^{i*m}的逆元,转化为求aj≡z′(mod P)aj≡z′(mod P)a^j≡z'(mod P)是否...原创 2018-06-03 12:17:43 · 560 阅读 · 0 评论 -
笛卡尔树
具体介绍可以参见这篇Blog https://www.cnblogs.com/pushing-my-way/archive/2012/08/24/2653709.html相关题目: bzoj2616 题解:将图形从下至上划分为若干个矩形,呈现一个树形的结构。然后问题就转化为树上的DP了~ 详细参见:https://blog.youkuaiyun.com/qq_39972971/article/de...原创 2018-06-24 18:27:24 · 467 阅读 · 0 评论 -
牛客练习赛21 D
将满足题意的(i,j),(p,q)预处理出来,然后向质因子连边跑网络流即可。 被坑了一下午,这样写常数巨大。改成define就过了…… 题面:https://www.nowcoder.com/acm/contest/130/D 代码://include <bits/stdc++.h>#pragma GCC optimize(2)#include <cstdio&...原创 2018-07-01 17:18:49 · 283 阅读 · 0 评论 -
Wannafly挑战赛18 E-极差
题面:https://www.nowcoder.com/acm/contest/129/E 把要求的式子展开,转化为求三个序列对应区间内最大值乘积。 然后这显然可以分治~~~ 写的时候注意一边取开区间,后面判的时候就是闭区间了!!! 代码://include <bits/stdc++.h>#include <cstdio>#include <algor...原创 2018-07-01 17:22:58 · 373 阅读 · 0 评论 -
CDQ分治&&整体二分
CDQ分治本质就是分两半,分别计算两边区间的贡献,然后再考虑跨区间的贡献。 具体教程网上一搜一大把…… 题单: 51nod 1376 :https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1376 考虑用 f【i】记录以i结尾的最长上升子序列的长度&&个数,然后每次切两半,先计算【l,mid】的答案,...原创 2018-07-01 18:34:46 · 248 阅读 · 0 评论 -
暑期划水小结
【7.14】【7.15】【7.16】 【7.14】T1 给出汉诺塔中间结果的某一步,求是否合法,如合法输出还有多少步完成。 T2 【7.15】T2 等价于求位置i左边位置k满足【k,i】是回文串的k之和,建出回文自动机后,每个节点计算出fail树内长度和,以及子树深度,直接算即可。T3 鬼畜的网络流,最大权闭合子图,S向正权点连边,...原创 2018-07-18 16:13:40 · 562 阅读 · 0 评论 -
FFT模板
用了个小优化,卷积时把实部虚部初值赋为两个要卷的多项式,最后得到答案虚部/2即为所求。//#include <bits/stdc++.h>#include <cmath>#include <cstdio>#include <algorithm>#include <iostream>#include <cstring>#include <limits>#include <map>#in原创 2018-04-28 08:10:35 · 213 阅读 · 0 评论 -
Prufer序列
详见M大神的Blog http://www.matrix67.com/blog/archives/682 主要记住这个公式: 每个点的度数为Di时树的个数 (n−2)![(D1−1)!(D2−1)!..(Dn−1)!]\frac{(n-2)!} { [ (D1-1)!(D2-1)!..(Dn-1)! ]} 如果一些点没有限制,...原创 2018-05-06 00:18:08 · 355 阅读 · 0 评论 -
GDOI2018酱油记
Day0 上午看了看板子,本来说的是一点半出发,结果司机两点半才来,打了一中午的sgs…… 下午到了后就是发考试大礼包(内含考生证、GDOI2018衣服、讲义等),然后吃饭,爽快战斗…… 12点前就睡了……Day1 T1 有点水啊,认真算了好几遍复杂度,发现没太大问题后就上了。期望:100 T2 这一定是贪心!!!然而想了很久都...原创 2018-05-04 22:47:51 · 241 阅读 · 0 评论 -
ARC095 题解
T1 :对于N个数,求出除了第i个数(1<=i<=n)之外的所有数的平均数,直接排序分类讨论即可。T2 :对于N个数,求任意两数的组合数的最大值,首先最大数肯定要取,然后扫一遍取最接近一半的即可,比赛时忘记考虑可以从小的一边接近一半,WA了3发才发现……T3 :对于一个N*M(1<=N,M<=12)的字符矩阵,可以交换任意两行,任意两列,问能否最后得到一个矩阵关于两...原创 2018-04-15 11:45:14 · 331 阅读 · 0 评论 -
血的教训
变量名尽量取好一点,不要与头文件里重合,比如 time。 NOIP2017 D1T2 CE -100 读题读5 遍!!! NOIP2017 D2T1 WA -100(实际得分90……) 线性筛记得判爆掉!!!i*p[j]&amp;amp;amp;amp;amp;amp;amp;lt;=mx FFT 复数不要写错,定义减法时写错调了一晚上……树剖 单点修改是change(pos【x】,y) 记得加pos!!! 看清过...原创 2017-11-16 11:18:48 · 319 阅读 · 0 评论 -
【题解】【CF958】Helvetic Coding Contest 2018 online mirror (teams allowed, unrated)
比赛时由于手速太慢,水的一批…… 赛后改了一波题…… A1 给定两个10*10的矩阵,问是否可以通过上下、左右对称以及旋转的方式重合。 直接爆搜即可 A2 字符串HashB1 求叶子节点 B2 在树上选K个点,求对于K(1~N)个点之间的简单路径上的点数最大值。 1特判,2直径,其他考虑贪心,从直径的一端开始搜,剖一下重链,每次取最长即可。C1水题略 C2 N个数切成K段,定...原创 2018-04-20 23:14:00 · 485 阅读 · 0 评论