随笔分类 -  noip模拟赛

摘要:分析:因为每一组编号都是连续的嘛,所以能分成一组的尽量分,每次加边后dfs判断一下1和n是否连通.有向图的判连通没有什么很快的方法,特别注意,并查集是错的!这个算法可以得到60分. 事实上每一次都不需要从点1开始dfs,因为之前很多点都遍历到了,再从1开始会重复.如果新加的一条边的起点没有被访问过, 阅读全文
posted @ 2017-11-02 14:14 zbtrs 阅读(296) 评论(0) 推荐(0)
摘要:分析:感觉像是贪心,再看数据范围这么大,肯定是贪心没错.但是要怎么贪呢?主要的思想是让每次往上加的数尽量多,肯定要先把0分裂,如果能正好一起跳到最终状态就好.举个例子:5,3,2,1,最大值比次大值大2,所以肯定有一个0先跳两下,另外一个0分裂,等到第一个0跳了两下后再接着跳,这样手推感觉有点复杂, 阅读全文
posted @ 2017-11-02 13:54 zbtrs 阅读(193) 评论(0) 推荐(0)
摘要:分析:一个贪心的想法是每次找到根的点权和最大的点进行操作,关键是怎么维护.每次找最大值,修改后会对这条链上每个点的子树上的点造成影响,可以用线段树来维护.找最大值就是区间求最大值嘛,对子树进行操作利用dfs序维护一下就好了.记录一下最大值的位置,每次从这个位置向上跳并对它的子树进行修改直到当前点的点 阅读全文
posted @ 2017-11-01 18:31 zbtrs 阅读(246) 评论(0) 推荐(0)
摘要:分析:举个例子就能发现:偶数位上的数都必须是0,奇数位上的数可以取0~k-1,这就是一个标准的数位dp了. 这编译器......数组越界了竟然不报错. 阅读全文
posted @ 2017-11-01 16:37 zbtrs 阅读(172) 评论(0) 推荐(0)
摘要:分析:每个连通块都是独立的,对一个连通块进行分析.如果边数>点数,显然是不可能的,因为每条边要分配给一个点,至少有一个点分配了两次以上.如果边数=点数,就形成了环,有两种方案,顺时针一个环,逆时针一个环.如果边数=点数-1,形成了链,将n个点分配n-1条边,答案为C(n,n-1),也就是n,统计一下 阅读全文
posted @ 2017-11-01 15:02 zbtrs 阅读(176) 评论(0) 推荐(0)
摘要:分析:这道题和以前做过的模拟赛题很像:传送门. 对于前30%的数据可以直接暴力求,k=1的数据利用线段树求区间最大值,没有修改操作可以用主席树.100%的数据主席树是肯定用不了的,观察到K非常小,可以用线段树来暴力维护. 线段树记录每个区间内的第k小值(1≤k≤10),其它的操作没啥变化,就是pus 阅读全文
posted @ 2017-11-01 13:19 zbtrs 阅读(180) 评论(0) 推荐(0)
摘要:分析:博弈论. 单个博弈通用的解法是dp,设f[i][j][0]为如果在(i,j)Yuri先走能否获胜,f[i][j][1]为Chito能否获胜,对应的就是必胜态和必败态的转移.如果f[i-1][j][1],f[i-1][j-1][1],f[i][j-1][1]都为1,那么f[i][j][0]为0, 阅读全文
posted @ 2017-11-01 11:03 zbtrs 阅读(209) 评论(0) 推荐(0)
摘要:分析:好神的一道题啊.对每棵树建个图跑一下floyd可以有40分,想要打出正解就得对树有比较深的认识了. 每次新生成一棵树都是由两棵树i,j拼成的,答案为原来两棵树的答案和+i中每个点到j中每个点的距离和.显然这个距离和不能直接算,涉及到求整体的值,通常考虑每条边的贡献.设i,j两棵树的连接点为p, 阅读全文
posted @ 2017-11-01 09:58 zbtrs 阅读(180) 评论(0) 推荐(0)
摘要:分析:首先肯定是要用线性筛把素数全部给筛出来的,然后可以维护一个前缀和数组记录1~i个素数的和,对于每一个询问可以从n到1+k枚举它的右端点,然后利用前缀和统计一个长度为K的区间和,看看是不是满足条件.其实这个可以利用二分来加速,然后就做完了. 二分的时候如果有多个条件需要满足,可以拆分开来讨论l, 阅读全文
posted @ 2017-10-31 23:21 zbtrs 阅读(183) 评论(0) 推荐(0)
摘要:分析:对于前30%的数据直接暴力模拟即可,对于另外30%的数据,因为每次的p是一样的,所以可以用莫队来维护,先离散化一下,再用一个桶统计次数. 100%的做法和之前做过的一道模拟赛题很像,当模数很小的时候分块,否则就暴力修改.其实看到区间操作第一感觉是线段树,但是线段树并不能维护这个,分块维护的信息 阅读全文
posted @ 2017-10-31 23:15 zbtrs 阅读(230) 评论(0) 推荐(0)
摘要:分析:是一道非常有意思的题,30分的暴力的话枚举每个位置是什么数,然后排个序,用map判一下重就好了,比较麻烦. 满分做法显然不可能讨论每个位置所有的情况,肯定是有规律的,现将这n*(n-1)/2个数排序,假设N个数组成的排列是a1,a2,......,aN,并且a1≤a2≤......≤aN.那么 阅读全文
posted @ 2017-10-31 23:04 zbtrs 阅读(219) 评论(0) 推荐(0)
摘要:分析:暴力挺好打的,对于前30%的数据神搜,hi相同的数据将所有的建筑按照c从小到大排序,看最多能跳多少,ci=0的数据将所有的建筑按照h从小到大排序,枚举起点和终点,看能否跳这么多,取个max就可以了.这样70分就到手了. 部分分的提示还是比较明显的,要消除一个参数的影响,那么就按照h从小到大排序 阅读全文
posted @ 2017-10-31 21:57 zbtrs 阅读(188) 评论(0) 推荐(0)
摘要:题目描述LYK在学习dp,有一天它看到了一道关于dp的题目。这个题目是这个样子的:一开始有n个数,一段区间的价值为这段区间相同的数的对数。我们想把这n个数切成恰好k段区间。之后这n个数的价值为这k段区间的价值和。我们想让最终这n个数的价值和尽可能少。例如6个数1,1,2,2,3,3要切成3段,一个好 阅读全文
posted @ 2017-10-31 08:25 zbtrs 阅读(399) 评论(0) 推荐(0)
摘要:题目描述 LYK做了一个梦。 这个梦是这样的,LYK是一个财主,有一个仆人在为LYK打工。 不幸的是,又到了月末,到了给仆人发工资的时间。但这个仆人很奇怪,它可能想要至少x块钱,并且当LYK凑不出恰好x块钱时,它不会找零钱给LYK。 LYK知道这个x一定是1~n之间的正整数。当然抠门的LYK只想付给 阅读全文
posted @ 2017-10-30 22:05 zbtrs 阅读(253) 评论(0) 推荐(0)
摘要:题目描述 LYK出了道水题。 这个水题是这样的:有两副牌,每副牌都有n张。 对于第一副牌的每张牌长和宽分别是xi和yi。对于第二副牌的每张牌长和宽分别是aj和bj。第一副牌的第i张牌能覆盖第二副牌的第j张牌当且仅当xi>=aj并且yi>=bj。(注意牌不能翻转)当然一张牌只能去覆盖最多一张牌,而不能 阅读全文
posted @ 2017-10-30 21:57 zbtrs 阅读(638) 评论(0) 推荐(0)
摘要:题目描述 LYK在玩猜数字游戏。 总共有n个互不相同的正整数,LYK每次猜一段区间的最小值。形如[li,ri]这段区间的数字的最小值一定等于xi。 我们总能构造出一种方案使得LYK满意。直到…… LYK自己猜的就是矛盾的! 例如LYK猜[1,3]的最小值是2,[1,4]的最小值是3,这显然就是矛盾的 阅读全文
posted @ 2017-10-30 21:53 zbtrs 阅读(703) 评论(1) 推荐(1)
摘要:题目描述LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。LYK还定义了一个数叫“立方差数”,若一个数可以被写作是两个立方数的差,则这个数就是“立方差数”,例如7(8-1),26(27-1),19(27-8)都是立方差数 阅读全文
posted @ 2017-10-30 21:18 zbtrs 阅读(439) 评论(0) 推荐(0)
摘要:题目描述LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。现在给定一个数P,LYK想要知道这个数是不是立方数。当然你有可能随机输出一些莫名其妙的东西来骗分,因此LYK有T次询问~ 输入格式(cubic.in) 第一行一个 阅读全文
posted @ 2017-10-30 21:15 zbtrs 阅读(287) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-10-30 10:11 zbtrs 阅读(8) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-10-29 21:12 zbtrs 阅读(7) 评论(0) 推荐(0)