-----DP-----
romiqi_new
这个作者很懒,什么都没留下…
展开
-
20190805校内模拟题解
T1:树上选一个包含根的连通块,求价格在给定范围内的最大价值(背包) n<=5e3,背包容量<=1e4 SOL:任轩笛在2018年国集论文中写到的关于树上连通块的一个重要性质:dfs序的转移 具体的,包含根的连通块可以这样表示: 设当前点为v,dfs序为dfs[v],构造一个新图 dfs[v]向dfs[v]+1连边,表示选择这个点,其他点任选 dfs[v]向dfs[v]+siz[v]连...原创 2019-08-05 21:34:16 · 131 阅读 · 0 评论 -
[BZOJ5416][树状数组][组合数学]NOI2018:冒泡排序
BZOJ5416 分析: 我们先考虑为什么有些排列是好的,有些排列不好 可以发现交换次数的下界这个式子即表示每个位置的数到它原本该在的位置,且有个1/21/21/2表示每次交换必须要让被交换的两个数都离自己的目标位置更近一步 所以我们如果把每个数到他的目的地看做一个箭头,则任意两个同向箭头不能有完全包含的关系 因为如果出现了包含的箭头,那大箭头一定会把小箭头往反向移动一步 所以我们在一个位置填的数...原创 2019-08-09 23:18:12 · 116 阅读 · 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 · 139 阅读 · 0 评论 -
[BZOJ5510][DP][容斥]TJOI2019:唱,跳,rap和篮球
BZOJ5510 简单容斥一下变成统计至少有i对连续的1234 然后随便组合数算一下就完了 Code: #include<bits/stdc++.h> #define mod 998244353 using namespace std; inline int read(){ int res=0,f=1;char ch=getchar(); while(!isdigit(ch)) {...原创 2019-09-02 21:55:04 · 270 阅读 · 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 · 298 阅读 · 0 评论