- 博客(123)
- 收藏
- 关注
转载 Outsider(HNOI2019)
这不是一篇退役记,因为NOIP2018之后就写完了。 Day-1 清明时节雨纷纷。 最后的时光,应该是怎么样的呢? 是像水滴一样,悄无声息地从指缝中溜走 还是如火焰一般,燃烧着最后的留恋? 晚上一直在关注WF。 虽然它和过去的、现在的、未来的我好像没有什么交集,但我仍看得心潮澎湃。 Day0 上午补觉。 中午,13个人,最后的午餐。一如几个月前,橘子洲头的豪情满怀。 下午晚上敲代码板子...
2019-04-05 00:04:00
315
转载 洛谷P4689 [Ynoi2016]这是我自己的发明(莫队,树的dfn序,map,容斥原理)
洛谷题目传送门 具体思路看别的题解吧。这里只提两个可能对常数和代码长度有优化的处理方法。 I 把一个询问拆成\(9\)个甚至\(16\)个莫队询问实在是有点珂怕。 发现询问的一边要么是一个区间,要么是\([1,n]\)挖去一个区间。 记\(pre_i=f_{[1,i],[1,n]}\),这个可以一遍预处理求出来。 简单容斥一下: \[f_{[l,r],[1,L)\cup(R,n]}=f_...
2019-04-03 00:11:00
382
转载 Ubuntu下编写终端界面交互式C++小程序的一些Trick(小技巧,gnome-terminal)
类getch()功能的实现 I 只要在Windows下用过C/C++就会很熟悉conio.h库中的一个函数getch(),它可以绕过终端输入缓冲区直接从键盘读取一个字符,并且不在界面上显示。 但如果想直接在Linux环境下用是不行的,因为没有conio.h库的支持。 博主翻了网上的一些资料,在这里给出一个比较简明的实现,使用起来与Windows下没什么差异。 #include<cs...
2019-03-31 23:10:00
798
转载 贪心相关/模拟网络流、费用流细节梳理/模板(贪心,模拟费用流,栈)
去不了WC的蒟蒻只能orz laofu qaq 参考 %YCB% 题单 【Done】牛客挑战赛7F Masha与老鼠 【Todo】洛谷P2514 HAOI2010工厂选址 【Done】洛谷P3826 NOI2017蔬菜 【Todo】洛谷AT3687 Farm Village 【Todo】洛谷CF280D k-Maximum Subsequence Sum 【Todo】BZOJ2034 最...
2019-03-26 15:47:00
763
转载 洛谷P3602 Koishi Loves Segments(贪心,multiset)
洛谷题目传送门 贪心小水题。 把线段按左端点从小到大排序,限制点也是从小到大排序,然后一起扫一遍。 对于每一个限制点实时维护覆盖它的所有线段,如果超过限制,则贪心地把右端点最大的线段永远删去,不计入答案。显然这样做对后面的决策更有利。 以右端点为键值,需要资瓷动态插入,删除最小值、最大值,multiset就行了。 代码很短,常数应该比较大,但不知为何暂时混了个rk1。 #include&...
2019-03-21 19:08:00
215
转载 洛谷CF809C Find a car(数位DP)
洛谷题目传送门 通过瞪眼法发现,\(a_{i,j}=(i-1)\text{ xor }(j-1)+1\)。 二维差分一下,我们只要能求\(\sum\limits_{i=0}^x\sum\limits_{j=0}^y[i\text{ xor }j\le k]\)就好了。 比较套路的数位DP。 从高位往低位做,设\(f[t][0/1][0/1][0/1]\)表示到第\(t\)位,\(i,j,...
2019-03-17 17:17:00
260
转载 洛谷P5069 [Ynoi2015]纵使日薄西山(树状数组,set)
洛谷题目传送门 一血祭 向dllxl致敬! 算是YNOI中比较清新的吧,毕竟代码只有1.25k。 首先我们对着题意模拟,寻找一些思路。 每次选了一个最大的数后,它和它周围两个数都要减一。这样无论如何,我们都选不到旁边那两个数,只有第一次选的那个数会对答案产生它的大小的贡献。 于是就可以写出一个\(O(nm\log n)\)的暴力用来对拍了 #include<bits/stdc++....
2019-03-08 13:39:00
308
转载 洛谷AT2046 Namori(思维,基环树,树形DP)
洛谷题目传送门 神仙思维题还是要写点东西才好。 树 每次操作把相邻且同色的点反色,直接这样思考会发现状态有很强的后效性,没办法考虑转移。 因为树是二分图,所以我们转化模型:在树的奇数层的所有点上都有一枚棋子,每次可以将棋子移向相邻的空位,目标状态是树的偶数层的所有点上都有棋子。 这样的互换总次数有没有一个下界呢? 我们求出\(a_i\)表示点\(i\)子树中棋子数量与空位数量之差(可以是...
2019-03-04 14:41:00
216
转载 无聊的时候氵一些小套路
快一个月不更博的时候氵一篇博客 分治 https://www.cnblogs.com/flashhu/p/9874012.html 图论 边数小于点数的无向连通图是一棵树nmdwsmduliuyyb 所有简单环都是奇环的图是仙人掌。 竞赛图缩点之后是一条链。 (边权都是\(1\))任意两点间最大流不超过\(x\)的图可以划分为不超过\(x\)个生成森林。 看到平面图(包括网格图)的时候想...
2019-03-01 18:49:00
202
转载 洛谷AT2342 Train Service Planning(思维,动态规划,珂朵莉树)
洛谷题目传送门 神仙思维题还是要写点东西才好。 建立数学模型 这种很抽象的东西没有式子描述一下显然是下不了手的。 因为任何位置都以\(k\)为周期,所以我们只用关心一个周期,也就是以下数都在膜\(k\)意义下。 设\(a_i\)表示\(i\)号区间长度; 对于上行列车(\(0\rightarrow n\))设\(p_0\)表示出发时刻,\(p_i(i\ge1)\)表示在\(i\)站停靠时...
2019-02-11 12:08:00
216
转载 图论杂项细节梳理&模板(虚树,圆方树,仙人掌,欧拉路径,还有。。。)
orzYCB 虚树 %自为风月马前卒巨佬% 用于优化一类树形DP问题。 当状态转移只和树中的某些关键点有关的时候,我们把这些点和它们两两之间的LCA弄出来,以点的祖孙关系连成一棵新的树,这就是虚树。 容易证明,如果关键点数量为\(m\),则虚树点数不超过\(2m\)。 虚树的构建 dfs原树,对点进行dfn标号,并将关键点按dfn从小到大排序。 搞个栈,栈内的点满足:都在从栈顶的点到原树...
2019-02-02 16:16:00
398
转载 各种反演细节梳理&模板
炫酷反演魔术课件byVFK stO FDF Orz(证明全有%%%) 莫比乌斯反演 \(F(n)=\sum\limits_{d|n}f(d)\Rightarrow f(n)=\sum\limits_{d|n}\mu(\frac n d)F(d)\) \(F(n)=\sum\limits_{n|d}f(d)\Rightarrow f(n)=\sum\limits_{n|d}\mu(\fra...
2019-01-26 16:46:00
343
转载 珂朵莉树模板(珂朵莉树)
orz yzhang 学会了一个叫做mutable的关键字 关键操作:Split,将指定位置的区间拆开 洛谷CF896C Willem, Chtholly and Seniorious #include<bits/stdc++.h> #define LL long long #define I inline #define R register int using names...
2019-01-19 16:48:00
205
转载 洛谷CF1071E Rain Protection(计算几何,闵可夫斯基和,凸包,二分答案)
洛谷题目传送门 CF题目传送门 对于这题,我无力吐槽。 虽然式子还是不难想,做法也随便口胡,但是一些鬼畜边界情况就是判不对。 首先显然二分答案。 对于每一个雨滴,它出现的时刻我们的绳子必须落在它上面。把绳子的上下端点用二元组\((a,b)\)表示,因为三个点\((a,0)(x_i,y_i)(b,h)\)共线,我们可以推出 \[(b-a,h)×(x_i-a,y_i)=0\\(h-y_i)a...
2019-01-16 21:51:00
330
转载 洛谷P3222 [HNOI2012]射箭(计算几何,半平面交,双端队列)
洛谷题目传送门 设抛物线方程为\(y=ax^2+bx(a<0,b>0)\),我们想要求出一组\(a,b\)使得它尽可能满足更多的要求。这个显然可以二分答案。 如何check当前的\(mid\)是否合法呢?每一个限制条件形如\(y_{i_1}\le ax_i^2+bx_i\le y_{i_2}\),也就是\(\frac{y_{i_1}}{x_i}\le x_ia+b\le \f...
2019-01-15 00:17:00
228
转载 计算几何细节梳理&模板
点击%XZY巨佬 向量的板子 #include<bits/stdc++.h> #define I inline using namespace std; typedef double DB; struct Vec{ DB x,y; I Vec(){x=y=0;} I Vec(DB a){x=a;y=0;} I Vec(DB a,DB b){x=...
2019-01-12 09:23:00
272
转载 洛谷P4581 [BJOI2014]想法(玄学算法,拓扑排序)
洛谷题目传送门 萝卜大毒瘤 题意可以简化成这样:给一个DAG,求每个点能够从多少个入度为\(0\)的点到达(记为\(k\))。 一个随机做法:给每个入度为\(0\)的点随机一个权值,在DAG上求出每个点能够返回到的入度为\(0\)的点的最小权值,那么这个权值的期望是\(\frac{\text{随机值域}}{k+1}\)。多选几套随机权值(蒟蒻选了一百次),跑出来的平均值即可输出。 实在是...
2019-01-05 23:05:00
205
转载 数论细节梳理&模板
初阶 扩展欧拉 \(k\ge\varphi(m)\)时,\(b^k\equiv b^{k\%\varphi(m)+\varphi(m)}(\bmod m\)) 扩展CRT 推式子合并同余方程。 https://www.cnblogs.com/flashhu/p/9346078.html 扩展BSGS 根号大暴力,就是细节很多。 https://www.cnblogs.com/flashh...
2018-12-28 14:33:00
210
转载 多项式细节梳理&模板(多项式)
基础 很久以前的多项式总结 现在的码风又变了。。。 FFT和NTT的板子 typedef complex<double> C; const double PI=acos(-1); void FFT(C*a,R op){ for(R i=0;i<N;++i) if(i<r[i])swap(a[i],a[r[i]]); for(R i=...
2018-12-19 21:03:00
304
转载 UOJ277【清华集训2016】定向越野(计算几何,最短路)
UOJ题目传送门 显然最优的路径只会经过若干条两个圆的公切线和若干段圆弧 为了方便,把起点终点看成两个半径为\(0\)的圆也行。 最烦的就是算两个圆的公切线了,一共有四条 对于靠外面的两条,我们把切线、半径和两圆心之间的线段连起来,会构成一个直角梯形。 我们可以求出两圆心连线的倾斜角,进而求出这两条切线的倾斜角,然后切线的直线方程就可以写出来了。 对于靠里面的两条,同样把切线、半径和两圆...
2018-12-02 17:51:00
387
转载 字符串数据结构模板/题单(后缀数组,后缀自动机,LCP,后缀平衡树,回文自动机)...
模板 后缀数组 #include<bits/stdc++.h> #define R register int using namespace std; const int N=1e6+9; int sa[N],rk[N],hei[N],x[N],y[N],c[N]; char s[N]; void Rsort(R n,R m){ for(R i=1;i<=n;+...
2018-11-29 17:22:00
226
转载 最小表示法模板(洛谷P1368 工艺)(最小表示法)
洛谷题目传送门 最小表示是指一个字符串通过循环位移变换(第一个移到最后一个)所能得到的字典序最小的字符串。 因为是环状的,所以肯定要先转化为序列,把原串倍长。 设决策点为一个表示法的开头。比较两个决策点\(i,j\),找到它们的LCP(假设长度为\(k\))。 假设\(s_{i+k}>s_{j+k}\),那么显然决策\(s_{i...i+k}\)是分别不优于决策\(s_{j...j...
2018-11-10 22:49:00
252
转载 NOIP2018退役记(记事)
希望还是要有的,万一退役了呢? Day1 听说300是大众分? 不会T2,不会T3,再别OI。 Day2 听说200是大众分? T1FST掉,不会T2,不会T3,再别OI。 茶馆小人书 那些让我们聊以慰藉的现实 是什么? 当我每次回忆起 与十来个500多分的昔日战友 在一个机房里奋斗的时光 我就会知道什么是现实了。 yyb是我们的红太阳 zsy是我们的蓝月亮 ycb精通板刷BZOJ xz...
2018-11-10 19:39:00
312
转载 洛谷P3953 逛公园(NOIP2017)(最短/长路,拓扑排序,动态规划)
洛谷题目传送门 又是一年联赛季。NOIP2017至此收官了。 这个其实是比较套路的图论DP了,但是细节有点恶心。 先求出\(1\)到所有点的最短路\(d1\),和所有点到\(n\)的最短路\(dn\)。 设\(f_{i,j}\)表示\(i\)号点,所有与\(d1\)差距不超过\(j\)的路径条数。转移的时候肯定是从小到大枚举\(j\),再枚举边转移。显然每条边都有一个\(\Delta\)...
2018-11-06 00:51:00
216
转载 作为一个蒟蒻谈一点考试经验(总结)
NOIP退役预定? 闲话 我们为什么要回忆往事呢? 刚刚准备练一下手感,就去看【NOIP2016】天天爱跑步。想了一下。 “感觉在链上差分一下,开个桶统计就好了吧,原来是道傻逼题。” 默念出这句话的时候,心里颤了一下。 2016年,我初三,因为15年PJ踩线一等拿到了就去TG玩玩。看到这题,想起来教练前几天不是讲了个dijkstra求最短路么?就先跑一遍,把路径找出来,再一秒一秒地...
2018-11-03 07:54:00
203
转载 各种分治的套路汇总(分治)
咕咕咕。。。 NOIP退役预定? 最近膜你赛的分治题总是不会,窝太弱了qwq 基础应用 快速幂?(某些多组询问的矩阵乘法题,预处理出矩阵\(2^j\)的幂,然后每次取出合并,可以优化时间复杂度) 归并排序? 翻转排序?(NOIAC32 Sort) 序列分治 关于最值分治是序列分治中最常见的,要求的东西一般都长成这样:\(\sum\limits_{l=1}^n\sum\limits_{r=...
2018-10-29 23:16:00
221
转载 Codeforces Round #517 Div. 2/Div. 1
\(n\)天没更博了,因为被膜你赛的毒瘤题虐哭了。。。 既然打了这次CF还是纪念一下。 看看NOIP之前,接下来几场的时间都不好。这应该是最后一场CF了,差\(4\)分上紫也是一个遗憾吧。 A 给一个矩形,每次从外面剥掉一圈,按剥去次序的奇偶分开,问最前\(k\)个奇数圈的总面积。 普及组题,直接模拟。 #include<bits/stdc++.h> #define LL l...
2018-10-23 11:58:00
194
转载 洛谷P4155 [SCOI2015]国旗计划(贪心,树形结构,基数排序)
洛谷题目传送门 \(O(n)\)算法来啦! 复杂度优化的思路是建立在倍增思路的基础上的,看看楼上几位巨佬的描述吧。 首先数组倍长是一样的。倍增法对于快速找到\(j\)满足\(l_j+m\le r_i\)进行了优化。然后菊开队长说可以建个树优化,可是他没讲清楚就把这个神仙东西扔给了我这个蒟蒻。。。一个晚上终于把这个模性建出来了。 在倍长的序列上,我们对于每一个\(i\)找到最小的\(j\)...
2018-10-08 16:39:00
391
转载 基数排序模板(基数排序,C++模板)
算法的理论学习可右转Creeper_LKF大佬的洛谷日报 一个优化算法理论时间复杂度的实例点这里 另一个实例点这里 时间复杂度\(O(n)\),算常数的话要乘位长。 蒟蒻参考了Creeper_LKF大佬的模板,并在通用性上面稍微提升了一点。可以兼容所有存储整数的基本类型,以及在此基础上构建的结构体类型(多关键字排序时,优先级高的关键字默认需要在结构体中靠后)。 函数原型 template...
2018-10-07 22:44:00
711
转载 k短路模板(洛谷P2483 [SDOI2010]魔法猪学院)(k短路,最短路,左偏树,priority_queue)...
你谷数据够强了,以前的A*应该差不多死掉了。 所以,小伙伴们快来一起把YL顶上去把!戳这里! 俞鼎力的课件 需要掌握的内容: Dijkstra构建最短路径树。 可持久化堆(使用左偏树,因其有二叉树结构且能动态合并。构建方法类似可持久化线段树)。 #include<bits/stdc++.h> #define RG register #define R RG int using...
2018-10-04 22:38:00
249
转载 洛谷P4907【CYH-01】小奔的国庆练习赛 :$A$换$B$ $problem$(DFS,剪枝)
洛谷题目传送门 顺便提一下题意有一个地方不太清楚,就是如果输出No还要输出最少需要添加多少张牌才能满足要求。蒟蒻考完以后发现四个点Too short on line 2。。。 比较需要技巧的搜索 既然是同一个花色要连续,那就枚举每一个花色在哪一段区间连续并选中四个区间,累计每个点数的选中次数。 最后来一个\(O(13)\)的\(\text{check}\),首先每个点数选中次数要不少于已...
2018-10-03 19:52:00
278
转载 BSGS及扩展BSGS总结(BSGS,map)
蒟蒻哪里有什么总结,只能点击%YL% 还有这位ZigZagK大佬的blog \(\mbox{BSGS}\) 模板题:洛谷P3846 [TJOI2007]可爱的质数 给定\(a,b\)和模数\(\mbox{YL}\),求\(a^x\equiv b(\bmod\mbox{YL})\)中\(x\)的最小非负整数解。保证\(\gcd(a,\mbox{YL})=1\)。 设\(k=\lceil\s...
2018-10-02 19:08:00
186
转载 FWT模板(洛谷P4717 【模板】快速沃尔什变换)(FWT)
洛谷题目传送门 只是一个经过了蛇皮压行的模板。。。 总结?%%%yyb%%% #include<bits/stdc++.h> #define LL long long #define RG register #define R RG int #define G if(++ip==ie)fread(ip=buf,1,S,stdin) #define For ...
2018-09-30 17:53:00
191
转载 洛谷CF264D Colorful Stones(子序列匹配,思维)
洛谷题目传送门 神仙思维题。 对于两个字符串的匹配问题,似乎之前蒟蒻写的HAOI2010最长公共子序列题解中提到的建网格图模型是一种套路? 给一个稍微强一点的样例(把字母换成了ABC) AABCB BACBA 它所对应的网格图如下(横轴代表\(s\),纵轴代表\(t\),显示的点表示可达状态) 我们首先可以大致确定,所有的可达状态在一个不规则图形的界内 (红色线条)。第\(i\)行(或...
2018-09-28 15:35:00
278
转载 洛谷SP22343 NORMA2 - Norma(分治,前缀和)
洛谷题目传送门 这题推式子恶心。。。。。 考虑分治,每次统计跨过\(mid\)的所有区间的答案和。\(i\)从\(mid-1\)到\(l\)枚举,统计以\(i\)为左端点的所有区间。 我们先维护好\([i,mid]\)区间内最小值\(mn\)和最大值\(mx\)。我们可以想到,对于某一个左端点,它的右端点\(j\)在一定的范围内,最小值和最大值都不会变。这里就看到一些可以重复利用并快速计...
2018-09-27 19:11:00
165
转载 分数规划模板(洛谷P4377 [USACO18OPEN]Talent Show)(分数规划,二分答案,背包)...
分数规划是这样一个东西: 给定若干元素,每个元素有两个属性值\(a_i,b_i\),在满足题目要求的某些限制下选择若干元素并求出\(\frac{\sum a}{\sum b}\)的最大值。 如果没有限制的话,肯定是贪心的选。 假设当前选择了一个解\(x_0\),却并不是\(\frac{\sum a}{\sum b}\)的最大值,我们有 \[\frac{\sum a}{\sum b}>...
2018-09-26 15:37:00
235
转载 洛谷P4891 序列(势能线段树)
洛谷题目传送门 闲话 考场上一眼看出这是个毒瘤线段树准备杠题,发现实在太难调了,被各路神犇虐哭qwq 考后看到各种优雅的暴力AC。。。。。。宝宝心里苦qwq 思路分析 题面里面是一堆乱七八糟的限制和性质,这时候需要冷静想想有没有可利用的地方。蒟蒻一开始往势能线段树上面想了想。 定义一个全局势能函数,为所有\(C_i<B_i\)的位置个数。注意两个操作的修改都不会小于原来的数。 一个...
2018-09-24 23:00:00
315
转载 BZOJ4695 最假女选手(势能线段树)
BZOJ题目传送门 终于体会到初步掌握势能分析思想的重要性了。 一开始看题,感觉套路还是很一般啊qwq。直接在线段树上维护最大值和最小值,每次递归更新的时候,如果不能完全覆盖就暴力递归下去。挺好写的欸 鉴于上次写冒险常数太大的经历,蒟蒻这次来个码风奇特的指针线段树 #include<bits/stdc++.h> #define RG register #define R RG...
2018-09-23 14:22:00
334
转载 BZOJ5312 冒险(势能线段树)
BZOJ题目传送门 表示蒟蒻并不能一眼看出来这是个势能线段树。 不过仔细想想也并非难以理解,感性理解一下,在一个区间里又与又或,那么本来不相同的位也会渐渐相同,线段树每个叶子节点最多修改\(\log a\)次(\(a\)为值域)。 那么,我们做区间修改的时候,进行判断:如果这一次修改对区间里所有数的影响都是一样的,那么直接在当前位置放懒标记。 如何判断呢?又是一个位运算技巧:维护区间与和...
2018-09-21 15:01:00
236
转载 洛谷P3959 宝藏(NOIP2017)(状压DP,子集DP)
洛谷题目传送门 Dalao的题解多数是什么模拟退火、DFS剪枝、\(O(3^nn^2)\)的状压DP之类。蒟蒻尝试着把状压改进了一下使复杂度降到\(O(3^nn)\)。 考虑到每条边的贡献跟它所在的层有关,所以如果我们能够将一层的边一起加进去,计算就会方便许多。于是想办法把这个转移过程状压一下。 设\(f_{i,j}\)为当前已选点集为\(i\),下一层加入的点集为\(j\)时,新加入的...
2018-09-19 11:50:00
185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅