
NOIP
文章平均质量分 51
linkfqy
A link to FQY.
展开
-
【思路题】BZOJ4721 [NOIP2016]蚯蚓
题面在这里这是一道很有意思的小题……解法比较巧妙先不考虑蚯蚓变长。首先,通过观察可以发现: 每次被切的蚯蚓的长度一定是递减的 因为蚯蚓只可能变短 那么每次切开得到的两条蚯蚓也是递减的于是,建立三个队列,分别表示: 没有切过的蚯蚓、切开时长度为[px]的蚯蚓、切开时长度为x-[px]的蚯蚓 每次切开时,将左右两半分别放入两个队列的队尾 显然这三个队列都是递减的,取最大值就很简单了现在蚯蚓可原创 2017-05-20 21:35:30 · 735 阅读 · 1 评论 -
【二分+LCA差分乱搞】BZOJ4326(UOJ150) NOIP2015 运输计划
题面在这里还可以双倍经验其实就是要让用时最长的那条边最短容易想到二分答案。将所有长度大于答案的路径取交集,显然只能在这些边中选择一条来建造虫洞当然是选择最长的那条边然后差分乱搞一下就得到边集了非常方便,不用打树链剖分示例程序:原创 2017-10-11 19:52:11 · 890 阅读 · 0 评论 -
【乱搞】BZOJ3751(UOJ#20)[NOIP2014]解方程
题面在这里还可以双倍经验本题其实利用了这样一个显然的事实: f(x)=0⇒f(x) mod p=0f(x)=0 \Rightarrow f(x)\space mod \space p=0 但是反过来不一定成立那么多取几个质数,如果对于所有的质数都成立就假装成立好了示例程序:原创 2017-10-12 21:08:09 · 774 阅读 · 0 评论 -
【最大生成树+倍增】NOIP 2013 货车运输
题面在这里考虑每次都应该走尽可能大的路对于任意两个联通块也是如此,可以只保留边权最大的那条边来连接这两个联通块那么就是最大生成树了每次询问就是在树上询问最小的边权,倍增一发就好了示例程序:原创 2017-10-17 15:55:40 · 734 阅读 · 0 评论 -
【LCA+打标记】BZOJ4719(UOJ#261) [Noip2016]天天爱跑步
题面在这里还可以双倍经验不得不说真是一道好题啊……对于路径x→yx\rightarrow y,可以拆分为x→lcax\rightarrow lca和lca→ylca\rightarrow y同时注意到,对于点i在一条往上走的路径x→yx\rightarrow y上:deepi+wi=deepxdeep_i+w_i=deep_x反之: deepi−wi=deepy−distx,ydeep_i-原创 2017-10-18 15:34:06 · 856 阅读 · 0 评论 -
【DP】UOJ#149 【NOIP2015】子串
题面在这里其实就是DPfi,j,kf_{i,j,k}表示A串处理到i,B串到j,分了k个块发现状态数已经很大了,想办法O(1)O(1)转移那么就fi,j,k,0/1f_{i,j,k,0/1}表示i是否在块里然后就很好转移了示例程序:原创 2017-10-18 18:38:13 · 578 阅读 · 0 评论 -
【DP】UOJ#17 【NOIP2014】飞扬的小鸟
题面在这里很显然是一个DP……fi,jf_{i,j}表示到(i,j)(i,j)这个位置的最小步数 fi,j=Min{fi−1,j−k⋅xi−1+1,fi−1,j+yi−1}f_{i,j}=Min\{f_{i-1,j-k\cdot x_{i-1}}+1,f_{i-1,j+y_{i-1}} \}但是转移需要O(m)O(m),显然不行发现fi,jf_{i,j}有很大一部分的状态都可以由fi,j−xi原创 2017-10-18 21:44:41 · 659 阅读 · 0 评论 -
【DFS乱搞】UOJ#16 【NOIP2014】联合权值
题面在这里没什么技巧,就是一个DFS乱搞的题目距离为2的点只有2种:互为兄弟节点,深度相差2所以维护fif_i表示i的儿子的w之和gig_i表示i的儿子中最大的w然后就很好统计答案了示例程序:原创 2017-10-19 13:46:41 · 628 阅读 · 0 评论 -
【遍历】UOJ#19 【NOIP2014】寻找道路
题面在这里直接先处理出那些点不能走,然后乱搞就好了示例程序:原创 2017-10-19 14:51:08 · 541 阅读 · 0 评论 -
【Tarjan】UOJ#146 【NOIP2015】信息传递
题面在这里Tarjan刷最小环……示例程序:原创 2017-10-19 15:32:06 · 662 阅读 · 0 评论 -
【期望DP+最短路】BZOJ4720 [NOIP2016]换教室
题面在这里一道简单的期望DP题……定义f[i][j][0/1]f[i][j][0/1]表示: 前i节课,已经用了j次申请机会,第i节课申请/不申请 那么显然,根据期望的线性性,可以得到:f[i][j][0]=Min(f[i−1][j][0]+w(c[i−1],c[i]),f[i−1][j][1]+k[i−1]∗w(d[i−1],c[i])+(1−k[i−1])∗w(c[i−1],c[i]))f[原创 2017-05-17 20:46:16 · 516 阅读 · 1 评论 -
【状压DP】UOJ#265 【NOIP2016】愤怒的小鸟
题面在这里其实就是一个简单的状压DP如果你直接O(2n⋅n3)O(2^n\cdot n^3)暴搞肯定是不行的那么就预处理一下gi,jg_{i,j}表示经过i,j两头猪的抛物线经过的猪然后……就好了示例程序:原创 2017-10-25 20:39:32 · 964 阅读 · 0 评论