
-----DP-----
romiqi_new
这个作者很懒,什么都没留下…
展开
-
20190805校内模拟题解
T1:树上选一个包含根的连通块,求价格在给定范围内的最大价值(背包)n<=5e3,背包容量<=1e4SOL:任轩笛在2018年国集论文中写到的关于树上连通块的一个重要性质:dfs序的转移具体的,包含根的连通块可以这样表示:设当前点为v,dfs序为dfs[v],构造一个新图dfs[v]向dfs[v]+1连边,表示选择这个点,其他点任选dfs[v]向dfs[v]+siz[v]连...原创 2019-08-05 21:34:16 · 154 阅读 · 0 评论 -
[BZOJ5416][树状数组][组合数学]NOI2018:冒泡排序
BZOJ5416分析:我们先考虑为什么有些排列是好的,有些排列不好可以发现交换次数的下界这个式子即表示每个位置的数到它原本该在的位置,且有个1/21/21/2表示每次交换必须要让被交换的两个数都离自己的目标位置更近一步所以我们如果把每个数到他的目的地看做一个箭头,则任意两个同向箭头不能有完全包含的关系因为如果出现了包含的箭头,那大箭头一定会把小箭头往反向移动一步所以我们在一个位置填的数...原创 2019-08-09 23:18:12 · 138 阅读 · 0 评论 -
[LOJ3123][KMP][DP]CTS2019:重复
LOJ3123首先容斥一下,统计不合法方案对S建出KMP自动机,则答案显然是走m步走出一个环的方案,枚举起点pos,直接dp可以获得60分注意到一个点指向非根节点的出边是唯一的,不然就无法满足字典序的要求,所以可以枚举走到根节点的时刻再dp预处理dp数组f[i][j]f[i][j]f[i][j]为iii步走到jjj的方案数Code:#include<bits/stdc++.h&g...原创 2019-08-16 18:19:28 · 153 阅读 · 0 评论 -
[BZOJ5510][DP][容斥]TJOI2019:唱,跳,rap和篮球
BZOJ5510简单容斥一下变成统计至少有i对连续的1234然后随便组合数算一下就完了Code:#include<bits/stdc++.h>#define mod 998244353using namespace std;inline int read(){ int res=0,f=1;char ch=getchar(); while(!isdigit(ch)) {...原创 2019-09-02 21:55:04 · 285 阅读 · 0 评论 -
190921CSP-S模拟题解
T1:lcm求给定的数集的任意非空子集的lcm之和数集大小2000,元素大小200要求lcm,那显然唯一分解然后很容易发现200以内的所有素数中,在某个合数的分解中对应幂次大于1的只有200\sqrt{200}200级别,即2,3,5,7,11,132,3,5,7,11,132,3,5,7,11,13所以我们可以把这些素数出现的状态压缩一下,然后每个合数除掉这些素数之后剩下的一定只剩下...原创 2019-09-23 09:00:59 · 334 阅读 · 0 评论