没有上司的舞会

题目大意动态加子节点的树,每次询问最大独立集大小。DP给平衡树每个点x维护一个f[x,0/1,0/1]表示以x为根的这个平衡树区间在原树上对应的部分(包括连出去的虚子树)的最大独立集是多少,且这个平衡树区间的左端和右端选或不选。 然后就很好做了。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) usin...
阅读(29) 评论(0)

[CF538B]Quasi Binary

题目大意懒得写做法这样的数只有2^6个。 因此暴力DP#include #include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; const int maxn=1000000+10...
阅读(32) 评论(0)

[bzoj4926]皮皮妖的递推,又是一个牛逼题

题目描述YOUSIKI学习了递推,于是他请皮皮妖给他出道题,皮皮妖说: f(1)=1,f(i)=i-f(i-1),求f(n) YOUSIKI看了一眼把它秒切了,于是他要求皮皮妖加大难度,皮皮妖想了想,说: f(1)=1,f(i)=i-f(f(i-1)),求f(n) YOUSIKI看了两眼把它秒切了,于是他要求皮皮妖加大难度,皮皮妖想了想,说: f(1)=1,f(i)=i-f(f(f(i-1...
阅读(177) 评论(0)

[CF480E]Parking Lot

题目描述http://codeforces.com/contest/480/problem/E做法首先加入所有询问坐标,求出答案。 初始答案很好求,你可以设f[i,j]表示以(i,j)为左下角的最大正方形边长。 那么f[i,j]=min(f[i−1,j],f[i,j+1])(+1)f[i,j]=min(f[i-1,j],f[i,j+1])(+1)后面是否+1要判断右上角。 当然左下角是障碍f[...
阅读(33) 评论(0)

[CF480C]Riding in a Lift

题目描述懒得写DP设f[i,j]表示第j次在i。 转移到的是个区间,用前缀和优化即可。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int maxn=5000+10,mo=1000000007; int f[max...
阅读(25) 评论(0)

[JZOJ5135][SDOI省队集训2017]逆序对

题目大意有多少n的排列逆序对个数为k?模型转化假设有一个i的排列,插入i+1逆序对个数会增加多少? 发现会增加0~i。 因此模型转化为,n个变量,0<=xi<i0<=xi<i 问有多少x序列,满足和为k。生成函数意义把第i个的生成函数写出来。 ∑i−1j=0xj\sum_{j=0}^{i-1}x^j=1−xi1−x\frac{1-x^i}{1-x} 定义F(x)=Πni=11−xi1−xF...
阅读(47) 评论(0)

[JZOJ5134][SDOI省队集训2017]三元组

题目大意求∑ai=1∑bj=1∑ck=1[(i,j)=1][(i,k)=1][(j,k)=1]\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^c[(i,j)=1][(i,k)=1][(j,k)=1]推式子首先假设a<=b<=c。 第一步转化为 ∑ai=1∑bj=1,(j,i)=1∑ck=1,(k,i)=1[(j,k)=1]\sum_{i=1}^a\sum_{j=1,(j,i...
阅读(63) 评论(0)

[JZOJ5127][SDOI省队集训2017]塔

题目描述DP感觉这是一种套路题,自己见得太少了…… 首先,假如我们定了塔与塔间的相对顺序,就可以知道相邻至少长度的和s,于是得到t=L-s-1,那么答案容易发现是一堆组合数相加得到Cnt+nC_{t+n}^n s是n^2级别,可以考虑dp弄出方案数。 考虑从大到小插入,设f[i,j,k]表示已经插入了n~i,目前s为j,有k段。 现在有k段,我们可以把两段用i合并成一段,段数-1,对j的贡献...
阅读(74) 评论(0)

[bzoj4832]抵制克苏恩

题目描述小Q同学现在沉迷炉石传说不能自拔。他发现一张名为克苏恩的牌很不公平。如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节。炉石传说是这样的一个游戏,每个玩家拥有一个 30 点血量的英雄,并且可以用牌 召唤至多 7 个随从帮助玩家攻击对手,其中每个随从也拥有自己的血量和攻击力。小Q同学有很多次游戏失败都是 因为对手使用了克苏恩这张牌,所以他想找到一些方法来抵御克苏恩。他去求助职...
阅读(77) 评论(0)

[bzoj4881]线段游戏

题目描述quailty和tangjz正在玩一个关于线段的游戏。在平面上有n条线段,编号依次为1到n。其中第i条线段的两端点坐 标分别为(0,i)和(1,p_i),其中p_1,p_2,…,p_n构成了1到n的一个排列。quailty先手,他可以选择一些互不相交 的线段,将它们拿走,当然他也可以一条线段也不选。然后tangjz必须拿走所有剩下的线段,若有两条线段相交, 那么他就输了,否则他就赢了。...
阅读(68) 评论(0)

[bzoj2169]连边

题目描述有N个点(编号1到N)组成的无向图,已经为你连了M条边。请你再连K条边,使得所有的点的度数都是偶数。求有多少种连的方法。要求你连的K条边中不能有重边,但和已经连好的边可以重。不允许自环的存在。求连边的方法数。我们只关心它模10007的余数。DP设f[i,j]表示无顺序的连了i条边,有j个度数为奇数的点。 f[i,j]=1i(f[i−1,j−2]∗C2n−j+2+f[i−1,j]∗j∗(n−...
阅读(137) 评论(0)

[bzoj4861]魔法咒语

题目描述瞎做显然是AC自动机dp。 小的直接dp大的矩阵乘法。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; typedef long long ll; const int maxn=200+10,mo=1000000007...
阅读(100) 评论(0)

题目描述有n个点,它们从1到n进行标号,第i个点的限制为度数不能超过A[i]. 现在对于每个s (1 <= s <= n),问从这n个点中选出一些点组成大小为s的有标号无根树的方案数。DPprufer序DP裸上#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; t...
阅读(40) 评论(0)

开房间

题目描述A君与B君正在玩一款闯关游戏,游戏共有n关,每一关的目标只有一个:开房间。 每一关都会有m个房间(从1~m进行编号),A君与B君每关各打开一个房间即可过关,但两人不能打开同一个房间。 通过每一关后,m个房间会重新关上,在第i关打开第j个房间需要消耗t[i][j]的体力值。并且无论A君还是B君,除了第一关外,若上一关自己开了a号房间,这一关开了b号房间,则需要额外消耗K*|a-b|点体力值...
阅读(50) 评论(0)

最长路径

题目描述在Byteland 一共有n 个城市,编号依次为1 到n,它们之间计划修建n(n-1)/2条单向道路,对于任意两个不同的点i 和j,在它们之间有且仅有一条单向道路,方向要么是i 到j,要么是j 到i。换句话说,这是一个n 个点的竞赛图。 Byteasar 居住在1 号城市,他希望从1 号城市出发,沿着单向道路不重复地访问一些城市,使得访问的城市数尽可能多。 请写一个程序,帮助Byteas...
阅读(85) 评论(0)
82条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:163738次
    • 积分:8221
    • 等级:
    • 排名:第2254名
    • 原创:640篇
    • 转载:5篇
    • 译文:0篇
    • 评论:159条
    公告
    幻梦终醒,本无不散之宴,却不悔付此华年。
    最新评论
    文章分类