03 2019 档案

摘要:T1.破解D H协议 "传送门" 这个题就是BSGS的板子题…… 然后这里补充一点嘛,就是第二重循环的枚举范围。我们是在枚举atmy,把tm换成i,这个的最大值就是$i (m 1) define rep(i,a,n) for(int i = a;i = a;i ) define ente 阅读全文
posted @ 2019-03-27 23:29 CaptainLi 阅读(158) 评论(0) 推荐(0) 编辑
摘要:"传送门" ~~题面涉嫌抄袭dota2~~ 这个题好巧妙啊…… 首先我们预处理出对于每个点,在它左边和右边最靠近他的并且大于它的点在哪,这个可以用单调栈做。~~小声bb一句其实这玩意也可以用主席树,值域这么小是为这个准备的?~~ 然后每个l[i],r[i]会产生一个p1的贡献,而对于l[i] 阅读全文
posted @ 2019-03-26 23:30 CaptainLi 阅读(232) 评论(0) 推荐(1) 编辑
摘要:"传送门" 这个题一开始他们说什么列异或方程组我也不懂……根据学姐告诉我的结论,如果联通块内有一棵树的话,那么其他的非树边反转或者不反转都行,反正树是能给你还原回去的。不过如果有奇数个黑点是不行的。 根据这个结论,记录联通块个数为tot,那么不删点的时候答案就是2mn+tot 然后对于删 阅读全文
posted @ 2019-03-26 21:28 CaptainLi 阅读(191) 评论(0) 推荐(0) 编辑
摘要:"传送门" 这道题很神奇…… 首先我们考虑只有一个物品的情况。通过观察发现,只要gcd(v,P)|w那么就可以,否则就不行。 然后推广到多个物品的时候,我们发现仍然是成立的,就是对于多个物品取gcd。 我们可以发现每个物品的价值v和gcd(v,P)是完全等价的,可以直接变成$gcd(v, 阅读全文
posted @ 2019-03-26 21:19 CaptainLi 阅读(143) 评论(0) 推荐(0) 编辑
摘要:"传送门" 唔……首先如果你的想法是把所有树的形态都整出来……那肯定是做不出来的…… 于是我们转而枚举每条边对答案的贡献。我们可以枚举当前的点i,因为可以承受O(n2)的复杂度,所以我们可以对于每个点i再 枚举一维size。 首先对于子树内的情况,答案显然有$size!C(n i,size 1 阅读全文
posted @ 2019-03-26 10:41 CaptainLi 阅读(136) 评论(0) 推荐(0) 编辑
摘要:"传送门" 这题是个很好的题呀。我一开始能想到好像对于k=n的情况只要扫一遍就行了……但是我没有意识到这是个必要的环节。 就是我们如果从大到小扫一遍,每次遇到亮的灯就按一下,这个过程中按的灯数是必要的。(这个比较显然……其实是我也找不出步数更少的反例……)那么我们就可以DP了…… 考虑从需要i+1步 阅读全文
posted @ 2019-03-25 22:51 CaptainLi 阅读(133) 评论(0) 推荐(0) 编辑
摘要:"传送门" 听说这题误导性很强……我倒没有…… 我只是单纯的不知道怎么做…… 实际上很简单。考虑到最右面是必须放守卫的,我们从右边开始DP,设dp[l][r]表示区间[l,r]需要摆放的最小守卫数,p表示能观察到的最远的亭子,那么有$dp[l][r] = sum + min(dp[l][p] 阅读全文
posted @ 2019-03-25 21:35 CaptainLi 阅读(209) 评论(0) 推荐(0) 编辑
摘要:"传送门" 这题状态和转移都很好想,但是问题在于转移顺序。 一开始我是自然的考虑正推的……考虑到会出现一些不合法的情况,我使用bool数组来记录当前状态是否可用。但是这样出现的问题在于,因为最终要计算平均答案,很多种选择情况 它的终止集合是不同的,而答案也不是把他们简单的加起来…… 于是我们考虑倒推 阅读全文
posted @ 2019-03-16 21:27 CaptainLi 阅读(157) 评论(1) 推荐(0) 编辑
摘要:"传送门" 这道题确实是相当优美的…… 以下S串指的是ION2017的串,T串指的是ION2018的串。 题目要求的是,两个字符串本质不同的非公共串的个数。这个转化一下,只要求两个字符串本质不同的公共串的个数即可,因为我们用本质不同的串数减一下就可以了。这个大家都会求。 首先我们考虑l=1,r=|S 阅读全文
posted @ 2019-03-13 22:11 CaptainLi 阅读(221) 评论(0) 推荐(0) 编辑
摘要:"传送门" 简要题意:求树上所有联通块中第k大的数的和。 正解是肯定不会的……只会暴力…… 考虑一个简单的暴力,枚举当前第k大的数w,之后在树上跑树形背包,然后计算当前有多少个联通块满足至少k个元素大于w。 这个算法会超时。然后这里有一些玄学的优化…… 首先如果一共也攒不够k个联通块就可以不DP了。 阅读全文
posted @ 2019-03-11 00:22 CaptainLi 阅读(229) 评论(0) 推荐(0) 编辑
摘要:"传送门" 形式化题意:一棵树,对于每个节点赋予一个给定的权值,使得每个节点都不大于子树内节点,同时满足编号小的点尽可能大。 首先在所有给定的数不同的时候只要贪心一次,从小到大把数排序,之后建树在上面跑dfs,按dfn从小到大给权值。 但是这样在有相同的数据的时候是会错的。因为有可能通过交换使得子树 阅读全文
posted @ 2019-03-11 00:05 CaptainLi 阅读(236) 评论(0) 推荐(0) 编辑
摘要:"传送门" 好题呀。 首先两者所拿的集合必然是不相交的。首先我们考虑30分的暴力做法,30以内质数很少,我们可以进行一波状压,用dp[i][j]表示第一个人取集合i,第二个人取集合j的方案数。我们记录当前数字的质因子集合为k,之后就可以进行转移了。 但是数据范围到了500,就会导致无法状压那么多 阅读全文
posted @ 2019-03-07 19:06 CaptainLi 阅读(136) 评论(0) 推荐(0) 编辑
摘要:"传送门" 我们令g(n)表示有n个点的无向图的个数,f(n)表示有n个点的无向连通图个数。 g(n)比较好求,因为一共有Cn2条边,每条边可以选或者不选,所以自然有g(n)=2Cn2. 之后我们换一种方法,在节点1所在的联通块中有多少个节点,剩下的只需要随便连 阅读全文
posted @ 2019-03-02 10:45 CaptainLi 阅读(139) 评论(0) 推荐(0) 编辑
摘要:DDP,即动态动态规划,可以用于解决一类带修改的DP问题。 我们从一个比较简单的东西入手,最大子段和。 带修改的最大子段和其实是常规问题了,经典的解决方法是用线段树维护从左,右开始的最大子段和和区间最大子段和,然后进行合并。 现在我们换一种方法来解决它。我们假设f[i]表示以i为结尾的最大子段和 阅读全文
posted @ 2019-03-01 23:26 CaptainLi 阅读(1115) 评论(2) 推荐(2) 编辑
摘要:"传送门" 一道非常好的容斥+NTT,对我这样的菜鸡难度稍高。 符合要求的颜色最多有lim=min(m,nS)种。 首先,考虑恰好出现S次不是很容易,那么我们换一种想法,先考虑至少出现S次。设f[i]表示至少有i种颜色出现S次的情况数。 首先 阅读全文
posted @ 2019-03-01 22:23 CaptainLi 阅读(178) 评论(0) 推荐(0) 编辑
摘要:"传送门" 这题其实在容斥那一部分还是比较好想的。首先很快的可以发现,矩阵中不同值域的格子会连成一个个不规则区域,而且不同值域的格子互不影响,那么我们可以单独计算每种值域构成的区域的情况,之后用乘法原理乘起来就是答案。 因为有一些值域可能同时包含多个矩形,所以我们要用容斥,先强制一个矩形不能取max 阅读全文
posted @ 2019-03-01 16:17 CaptainLi 阅读(153) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示