自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(289)
  • 收藏
  • 关注

原创 jzoj5478. 【NOIP2017提高组】列队

题意一个n*m的矩阵,每个位置上有一个编号,每次取出一个编号(a,b),将(a,k) k>b左移一位,(z,m) z>a上移一位。 (左上角1,1),然后将取出的编号放在(n,m). n,m<=3e5 询问数q<=3e5分析发现每一次修改都只是修改个别点的位置,其他点的相对位置是不变的 考虑n颗动态开点的线段树(1..m+预留的q个位置),还有一颗额外维护一下最后一列(1..n+q)。 每一

2017-11-18 15:11:20 933

原创 [A f*cking game]NOIP2017提高组复赛 翻车记

第二次提高组Day 0八点到酒店,感觉尚可(WIFI差评) 很早就睡了11:30Day1不给试机很干,还不发水更干还好我早有准备 T1 一看,咦好熟悉,套个结论ab-a-b。。 然而不会证? 先拍完再看后面的题? 拍了10分钟没什么毛病就带着愧疚跳了T2 第一眼卧槽又叫我写解释器 f**k 再看一眼 不对啊 什么sb模拟 先跳T3 求不大于最短路长d+k的路径条数,k<=50 什么

2017-11-13 19:46:59 2749

原创 [复习]整体二分求区间第K大

Problem给定一个长度为n的序列与m个(l,r,k)询问区间[l,r]中第k大。整体二分考虑单个询问如何解决,我们可以二分答案然后统计比他大的数的个数。那么时间复杂度就是n log m.但多个询问如何解决? 我们可以整体地二分答案区间[l,r]。 然后将询问集合分割,分到[l,mid]与[mid+1,r]的子分治过程中处理。 现在要做的就是如何快速计算每个询问的区间中有多少个大于mid的数。先

2017-11-08 20:34:28 847

原创 jzoj5433 【NOIP2017提高A组集训10.28】图

题面有一个n个点A+B条边的无向连通图,有一变量x,每条边的权值都是一个关于x的简单多项式,其中有A条边的权值是k+x,另外B条边的权值是k-x,如果只保留权值形如k+x的边,那么这个图仍是一个连通图,如果只保留权值形如k-x的边,这个图也依然是一个连通图。 给出q组询问,每组询问给出x的值,问此时这个无向连通图的最小生成树权值是多少。 对于100%的数据,1<=n,q<=100000 , n-

2017-11-01 20:14:58 359

原创 jzoj5408 【NOIP2017提高A组集训10.21】Dark (巧设状态的DP)

题面LichKing 希望收集邪恶的黑暗力量,并依靠它称霸世界。 世间的黑暗力量被描述成一个长度为N 的非负整数序列{Ai},每次它可以选择这个序列中的两个相邻的正整数,让他们的值同时减一并获得一点邪恶力量,直到不存在满足条件的数。 然而你不希望他能够得逞,所以你会使得他收集的能量尽可能少。 分析发现当前状态可以划分为f[i][j][0/1]表示当前剩余j个,上个是否用完,这

2017-10-21 15:44:41 405

原创 jzoj5402 【NOIP2017提高A组模拟10.8】God Knows

分析考虑一个简单的dp,设f[i]表示现在1..i的连线全部被删除,最后一个选的是i的代价。转移有些特别,从j=[1,i)中选出一条不与i-p[i]相交的并且(i,j)中没有不与这两条相交的,就可以f[i]=f[j]+c[i]. 想一想答案是什么? 使得(i,n]中所有连线都与i-p[i]相交,则此f[i]可以作为答案。 也就是(i,n]中所有p[j]小于p[i]的这个dp是O(n^2)的,我

2017-10-20 19:43:16 596

原创 jzoj5399 【NOIP2017提高A组模拟10.7】Confess

题意给定n+1(n<=6e3且n为偶数)个大小为n的集合,集合里的数都在[1,2n]内。 请求出任意一对交集大小大于n/2的集合。分析毛都没看出来,所以就打了50分的bitset. 我们考虑一下他交集大小的期望,也就是任意两对交集大小的平均数。 设有元素i的集合有ci个,任意一对ci都有1的贡献。 E=∑C(ci,2)C(n+1,2)E=\sum\frac{C(ci,2)}{C(n+1,2)

2017-10-07 16:03:31 373

原创 拉格朗日插值法(求自然数幂和)

背景求∑ni=1ik\sum_{i=1}^{n} i^k,给定n分析设g(x)=∑xi=1ikg(x)=\sum_{i=1}^{x} i^k。考虑k=1与k=2时的公式,不难得出每个g(x)实际上都是一个k+1次多项式。(这是猜想,具体证明看http://blog.csdn.net/jokerwyt/article/details/54141757,那个递推式就是k+1次的)那

2017-10-06 16:10:11 2125

原创 jzoj5394 【NOIP2017提高A组模拟10.5】Ping

题面 分析很容易看出模型:有若干条路径,选最少的点使得每条路径上都有点。并给出方案。 考虑一条链,其实就抽象成数轴上的线段。显然是贪心。(然而我最后五分钟才想起来!?把线段按右端点从小到大排序,考虑右端点最左的一条线段,其他线段要么与他没有交集,要么从右边有交。那么这条线段取点一定是取右端点能覆盖更多的线段。 把覆盖掉的线段删除,重复上述步骤,直到覆盖完毕。 还能得出一个结论: 只选右端点。

2017-10-05 20:26:42 454

原创 启发式合并/dsu on tree 姿势

Dsu on Tree一场比赛有两道,好tm巧啊Problem 1这种方法其实就是通过性质优化的暴力。遍历时轻边优先。 首先肯定是拆位了,然后可以用trie维护一下某颗子树内的点的串,很容易统计答案。 (具体要看题解了) 但是暴力加/删点会T,就要用dot了。 发现计算完一个儿子的答案之后,整颗子树都被添加到了trie中。但如果要继续做其他儿子所以要清空trie. 有一颗子树是可以不用清空

2017-09-16 16:34:00 415

原创 jzoj5342 赤壁情 (序列插入型dp,笛卡尔树新奇姿势dp)

题面很玄幻的一题dp. 现在有一块一块的子串,他们的相对顺序是已知的但最终一定不相邻 (也就是说中间至少有一个数)考虑从小到大插入数字,每一个数字有3种基本转移 1. 在某个空隙新建一块, 2. 并入某块(放最左或最右)。 3. 合并相邻两块贡献系数好算,比如说并入一块那么系数就是0,假如新开系数就是-2 (因为可以知道旁边是比他大的还是比他小的)但是有一个问题,边界怎么办? 所以要开两个特

2017-09-04 20:12:11 993

原创 jzoj5341. 【NOIP2017模拟9.2A组】密州盛宴

题意分析只保留后n个1,其他变为0就可以了。(不然下面会有其他情况)观察可以发现,将1视为-1,0视为1 (下文同),当一个序列最小的前缀和小于-1时就无法完成。那么问题就变成了怎么移动使得前缀和变大。考虑最小的前缀和x,我们移动y个1到队首使得x变为-1,这最大移动步数就是x的移动步数y(每移动一个都可以视为中间全部往后移动1,因为贡献是max所以忽略)。在有解的情况下,每一个前缀和他后面肯定有足

2017-09-04 19:21:32 439

原创 杜教筛如何推式子/堆柿子

对于求数论函数f的1..n前缀和,可以找另一个函数g,配成狄利克雷卷积。 ∑ni=1(f∗g)(i)\sum_{i=1}^{n}(f*g)(i) =∑ni=1∑j|if(i)g(ij)= \sum_{i=1}^{n}\sum_{j|i}f(i)g(\frac i j) 交换主体 =∑nj=1∑j|if(j)g(ij)=\sum_{j=1}^n \sum_{j|i} f(j)g(\frac

2017-09-01 20:05:49 355

原创 jzoj5336 【NOIP2017提高A组模拟8.24】提米树 (dfs序dp,奇异姿势dp)

题面分析剪枝的意思就是你可以任意选点作为叶子。(前提是他子树不选) 比赛的时候有一种60分的n^2 log n做法,就是在dfs序上直接dp. 但是正解比较奇怪,先画颗树出来看看,就会发现根到真·叶子的路径上有且只有一个被选为叶子。于是我们考虑设一种玄学的dp。 令f[i]f[i]为在dfs序上,当前最后一个叶子选的是i的最大价值。 想想能更新i的点有哪些。 由于要保证每条到叶子的路径上都有选

2017-08-24 20:35:59 746

原创 jzoj5335 【NOIP2017提高A组模拟8.24】早苗 (递推优化矩乘)

题面 分析很吼的一题。 看到1e16那肯定是矩阵乘法 考虑设状态f[i][j]f[i][j]表示1..i,现在有恰好连续j个颜色不一样的。 如何转移? 首先是到j+1的,只要他后面有j个不同,那么都有(m-j)种放法转移到f[i+1][j+1]f[i+1][j+1] 然后是重复的,假设在第x个位置与当前放的有重复,那么重复的方案是多少呢? 考虑每一种确定的方案,他都有恰好一种放法能

2017-08-24 20:05:21 683

原创 jzoj5331 【NOIP2017提高A组模拟8.23】壕游戏

题面 分析这题面tmd太有迷惑性了,比赛的时候完全没有想到费用流。 考虑到k只有200,尝试费用流(思想类似可撤销贪心? ) 一次一次增广,每次spfa能跑过去。 每走过一条边,给他的边更新一下贡献。Demo#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int N=1e3+

2017-08-23 18:43:35 292

原创 【集训】jzoj 2017.8.22 noip模拟赛A 总结

这几天的比赛的节奏都很乱,看题都超时了,打题也打打停停。一开始看第一题,咦这题是要干啥,想了10分钟,先换一题。 第二题哇送了70分,先看第三题吧。 (这里应该继续想想正解) 第三题…想了10分钟,一脸懵逼,smg? 好像有30分还是50分暴力? 接近8:40重新想第一题,终于把题目模型看懂了,就是要求可达点数目。 如果是DAG的话… 唔好像很简单? 直接打吧,九点不到开始打。 差不多9:2

2017-08-22 20:47:29 264

原创 jzoj5330 【NOIP2017提高A组模拟8.22】密码

题面分析首先n!n!中p的指数是∑∞i=0⌊npi⌋\sum_{i=0}^{\infty}\lfloor\frac n {p^i}\rfloor(有一个p的有多少个,两个的,三个的…) 那么对于CmnC_n^m就是在p进制下理解这个式子,发现任意第i项,后面一大堆不是0就是1. 当什么情况下是1 ? 就是p进制下m+(n-m)是否有进位。如果有进位,那么现在就没有取到这个进位(下取整就类似二进制

2017-08-22 19:30:38 514

原创 jzoj5317 【清华集训2017模拟8.19】func (寻找性质)

题意 n<=1e6分析做比赛的时候啥也没看出来.. 求f(x)=nf(x)=n的所有x,我们先将函数的定义式分析一下。 f(2i)=f(i)f(2i)=f(i) f(2i+1)=f(i)+f(i+1)f(2i+1)=f(i)+f(i+1) 两个相邻的f也是由两个相邻的f推来的。那么我们不如枚举f(x−1)=if(x-1)=i,然后发现可以确定唯一的xx。需要注意的是相邻f(x)互质 (归纳

2017-08-20 22:57:52 325

原创 jzoj5316 【清华集训2017模拟8.19】merge

题意两个1..n的排列,每次选一个将队首入栈,求有多少种不同的入栈序列。分析设fi,jf_{i,j}没跑了,考虑如何去重。 转移f[i][j]的时候,假设i,j前面有一段长度为k的相同串。 我们可以发现,将A序列看作左括号,B序列看作右括号,指针从i-k,j-k开始的每一种合法括号序列都可以被对称操作从而获得一种重复。 (这能覆盖所有重复的情况) 因此我们枚举上一次指针的位置i-k,j-k,然

2017-08-20 20:21:16 303

原创 关于卡特兰数的一些小理解

第k个卡特兰数记作CkCkC_k。 开始几项是 1,1,2,5,14,42…..实际意义有n对括号的合法括号序列匹配方案数1..n顺次入栈,出栈序列方案数。边数为n+2凸多边形三角划分方案数n个节点的二叉树种数。公式Cn=Cn2n&nbsp;−&nbsp;Cn+12nCn=C2nn&nbsp;−&nbsp;C2nn+1C_n=C_{2n}^{n}~-~C_{2...

2017-08-19 20:05:11 4036

原创 jzoj5290 【NOIP2017提高组A组模拟8.17】行程的交集 (树上路径交,dfs序+树状数组维护姿势)

题面豪哥生活在一个n个点的树形城市里面,每一天都要走来走去。虽然走的是比较的多,但是豪哥在这个城市里面的朋友并不是很多。 当某一天,猴哥给他展现了一下大佬风范之后,豪哥决定要获得一些交往机会来提升交往能力。豪哥现在已经物色上了一条友,打算和它(豪哥并不让吃瓜群众知道性别)交往。豪哥现在spy了一下这个人的所有行程起点和终点,豪哥打算从终点开始走到起点与其相遇。但是豪哥是想找话题的,他想知道以

2017-08-17 16:29:25 1076

原创 仙人掌缩环求最短路Demo

DEMOby alan_cty#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)#define rep(i,a) for(int i=last[a];

2017-08-16 18:21:24 451

原创 jzoj5272 神奇的重复序列 (寻找性质)

题面分析魔幻的题目。 对于两个起点x,y,设间隔p=y-x,容易看出若i = j (mod p)i~=~j~(mod~p),那么s[i]与s[j]的值应该相等。也就是p个一循环。这是很关键的性质 然而我并没有发现???! 现在考虑所有%p相等的位置,当然是都改成出现次数最多的最优。 那么我们枚举p,维护一个f[x][c]表示模数为x的位置c的出现次数。 我们还需要求个s[x]与mx[x],

2017-08-14 22:41:40 305 1

原创 jzoj5271 神奇的救火现场 (寻找性质dp)

题面分析注意到最优序列一定是形似水-车 或 车-水的括号序,即不存在交叉的匹配对。 而且一对括号中间也是完整的括号序列,且不会有多余的,即水-车中间没有 没有匹配的水,车-水中间没有没有匹配的车。这样的话不难发现每一个地方它在最优序列中的匹配是唯一的,可以用栈搞出来。 然后就变成了设f[i]f[i]表示搞完1..i的所有点,他匹配的最小代价。 对于每一个水,我们用前面和他匹配的车转移,对于车同

2017-08-14 22:28:56 699 2

原创 jzoj5259 线性规划问题 (巧妙设状态的dp)

题意 n<=1e3,p<=1e4n<=1e3,p<=1e4 保证ai<=bi分析暴力做法很简单,设fi,j,kf_{i,j,k}表示suma=j,sumb=k的最小的c就可以了,转移显然.观察题目给的约束,j,kj,k分别在P的两边。 我们简化状态,设fi,xf_{i,x}表示i,j分别在j两边的最小c值。 如何转移? 考虑x的意义j<=x<=kj<=x<=k 因为是取min,所以重复

2017-08-11 16:20:13 302

原创 jzoj5249 【NOIP2017提高A组模拟8.10】文本编辑器 (序列修改类问题,数据结构)

题面分析splay的话是过不了最后一个点的。 显而易见的我们可以考虑链表+tag,但是细节很多。 因为翻转只翻转两个光标中间的地方,我们考虑将中间的放到一个队列里,然后左右两边分别开一个栈存。 翻转的话就调换一下队列的head与tail,并且将正方向取反。 +正方向就相当于在序列上的后一个位置。 想一想,这样设计的话别的操作不需要特殊考虑,和没翻转的情况一样做就行。 还需要考虑l,r光标

2017-08-10 17:31:24 397

原创 【集训】jzoj 2017.8.10 noip模拟赛A 总结

今天大佬们都来做a组了。但是题反而水了? 第一题比较简单,第一眼看不会做,但观察发现: 当x=x0时直线在该点下方的都有贡献。 满足二分性质直接二分就好。主要是要抓住题目的连线方法的独特性。这题拍了。第二题一开始看错题了,没注意到路径单向。发现之后就很好想了,先dp设了二维状态,以为能切(又是这样)然后蹲个坑冷静后发现这是O(n2)O(n^2)的复杂度。 但也有80分,而且第三题还有冗长的90分等

2017-08-10 17:13:44 279

原创 jzoj5220 【GDOI2018模拟7.10】C (双序列dp)

题意给定字符串A,B,求长度为A,B的最长公共子序列长度 的X串子序列在Y中有出现过的个数。 n<=1000 注意理解题意: 首先是X串的子序列(只要取的位置不同就是不同的子序列),然后长度为两者最长公共子序列的长度,然后有在Y串中出现过,这样就是1的贡献。 并不等价于最长公共子序列的对数!分析先求出f[i][j]表示最长公共子序列的长度。 再设g[i][j]表示只考虑a[1..i],b[1

2017-08-09 21:59:55 404

原创 jzoj5043 【NOI2017模拟4.4】保持平衡 (可撤销贪心)

题意博爱路上种起了一棵棵的大树,但是有一些地方的树超过了负荷,有一些地方的树的数量又不够。 我们不妨把博爱路看做一条数轴,数轴有n个点,从1到n编号,第i个位置原来现在有ai棵树,这个位置的需求是bi棵树。ai,bi都是0到10的整数。由于你需要是这个位置的树的数量保持平衡,所以你需要移除或者搬一些树过来。 我们怎么使树的数量平衡呢? 首先,你可以从某个位置i移动一棵树到位置j,这时,你需要的

2017-08-09 19:39:06 417

原创 jzoj5245 【NOIP2017模拟8.8A组】Competing Souls

题意有n个数a[i],现在有个指针i一直1..n,1..n的循环移动,每次指针移动到i时,a[i]可以在last+1..m中选一个数x,last是上一个被选的数,满足x<=a[i]。并给ans+=x,a[i]-=x. 最后指针必须要指向n,即必须要做完整的循环。 现在给出a[i],求出最大的ans. 30%:M≤20 另有10%:N=2 100%:1≤T≤5 2≤N≤500,0

2017-08-08 16:49:08 322

原创 jzoj4417 【HNOI2016模拟4.1】神奇的字符串 (映射,权值线段树)

题意分析一开始看到的时候一脸黑人问号 注意到条件(n,a)=1(n,a)=1,这意味着∀c[i]≠c[j]\forall c[i] \not= c[j]. 转换一下问题,我们用数据结构统计s[i]s[i]对每一个开头c[i]c[i]的贡献。因为题目询问是不同的个数,所以s[i]=1s[i]=1如果有贡献,那么它一定对应c[j]=0(j不一定是开头)c[j]=0(j不一定是开头) 于是我们按照f

2017-07-16 16:38:23 583

原创 jzoj4447 【HNOI2016模拟4.14】A (维护凸壳,分段函数)

题面 分析分开每个点求,显然一条最短路能作用很久。同一条最短路作用的部分我们是可以直接计算的。 先求出长度为k的最短路 随着时间增长,每一条路的长度都可以表示为一个一次函数 y=w+Lenxy=w+Lenx。 于是问题就变成了一次函数求凸壳。首先我们将所有直线按w从小到大排序,然后考虑一开始两条直线,按顺序记作l1,l2l1,l2。 现在要插入一条直线l3l3,Case0 若l3l3比

2017-07-15 19:40:11 563

原创 【集训】jzoj 2017.7.15 noip模拟赛A 总结

7.15的比赛要注意: 0. 摆好蒟蒻心态,不要有心理落差. 1. 先打暴力再打正解,有助于思考与查错。(日常) 2. 首次思考时间控制在1h, 每一题都要保证至少思考20分钟。(第三题基本连题意都没研究出来,何谈思考) 3. 记得多根据数据范围与问题想一下学过的算法。 4. 不要被自己的思路带跑,当想了十几分钟没什么想法的时候,考虑回溯。吐槽一下这个背景故事,太容易

2017-07-15 16:28:24 307

原创 jzoj100048 【NOIP2017提高A组模拟7.14】紧急撤离 (网格图,分治,bitSet)

题意给出一个n*m <=500*500的网格图,有一些点有障碍。从一个点只能向下,向右走,询问q<=6∗105q<=6*10^5:(a,b)是否能到达(c,d)。分析询问这么多,如果不是并查集的话一定是预处理了。 考虑直接做,对于每一个询问要nm的时间来暴力。 优化? 枚举一个中间点,然后向两边寻找。 如何配对询问? 将询问用边集数组之类的打到点上。再用O(q)时间询问。 这样我们就切

2017-07-14 20:19:44 723

原创 【集训】jzoj 2017.7.14 noip模拟赛A 总结

7.14的比赛要注意: 0. 摆好蒟蒻心态,不要自以为是。 1. 先打暴力再打正解,有助于思考与查错。 2. 首次思考时间控制在1h, 每一题都要保证至少思考20分钟。 不能在最后没事干了才想没想过的题目 2.1. 先把所有题都看一遍再思考,把握一下时间。 3. 记得多根据数据范围与问题想一下学过的算法。第一题十分简单,有两种做法。 如果一个区间[l,r]他已经存满

2017-07-14 19:33:22 294

原创 【集训】jzoj 2017.7.13 noip模拟赛A 总结

今天A组难度直达D组 7.13(7.12要去被虐)的比赛要注意: 0. 摆好蒟蒻心态,不要自以为是。 1. 先打暴力再打正解,有助于思考与查错。 (每一题都先打了暴力) 2. 首次思考时间控制在1h, 每一题都要保证至少思考20分钟。 (第三题最后大半小时才思考,应该先思考好) 3. 记得多根据数据范围与问题想一下学过的算法。(今天第二题就是这么切的)第一题 神tm原

2017-07-13 15:42:32 327

原创 jzoj3712 【NOI2014模拟6.30】石中剑的考验

题意给出一个元素不重复,长为n<=15的序列的最长上升子序列之一。 求有多少个序列满足有这个最长上升子序列。分析这tm也是一题玄学题。因为n=15,考虑状压,dp. 一个序列只要满足两个条件就是合法序列: 1)最长上升子序列长度为k,2)子序列存在于原序列中。第二个好求,直接状压。问题是第一个。 因为我们要求最长上升子序列的长度,所以状态里要带一个dp时的f数组 这样超时。 想一想求最长上

2017-07-11 17:11:38 330

原创 【集训】jzoj 2017.7.11 noip模拟赛A 总结

7.11的比赛要注意: 0. 摆好蒟蒻心态,不要自以为是。 1. 至少打完三题暴力再死磕一题! 2. 首次思考时间控制在1h, 每一题都要保证至少思考20分钟,不要把容易拿的分丢掉了。 打完所有有(暴力)分的题之后再来继续想。(第二题的15~35分暴力没有打) 3. 记得多根据数据范围与问题想一下学过的算法。第一题第一眼看就是递推dp之类的东西。不过细节好像很多,而且还卡时

2017-07-11 17:01:21 356

原创 【集训】jzoj 2017.7.10 noip模拟赛A 总结

今天的比赛题目比较难,没有一个人切下一题。 7.10的比赛要注意: 0. 摆好蒟蒻心态,不要自以为是。 1. 至少打完三题暴力再死磕一题! (最后一题暴力没打,原因是不会?) 2. 首次思考时间控制在1h, 每一题都要保证至少思考20分钟,不要把容易拿的分丢掉了。 打完所有有(暴力)分的题之后再来继续想。 (最后一题只想了10分钟,原因是没想法) 3. 记得多根据数据范围

2017-07-10 15:10:38 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除