自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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

空空如也

空空如也

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

TA关注的人

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