![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
构造
zzk_233
这个作者很懒,什么都没留下…
展开
-
codeforces 1027F Session in BSU
首先我们把日期看成点,每个考试都连接了两个点,而合法的情况就是每条边都至少有一个点和他配对,和二分图匹配很像。。 但是时间明显不够,那么我们可以转换思路,通过连边,原图变为了一些连通块,而对于每个连通块,就有以下几种情况 1.这个连通块是个树,那么每条边都有点,还多出一个点,所以最后要找的就是次大的点。 2.这个连通块是一个基环树(就是只有一个环的树),那么每个点正好对应一条边,要用的就是最...原创 2018-10-22 16:41:46 · 144 阅读 · 0 评论 -
bzoj 1856: [Scoi2010]字符串(构造+组合数)
比较有思维难度。。 因为最终一共n+m个字符串,相当于这是总步数,而最终全部放完之后1的个数于0的个数差为n-m,相当于目标位置, 设x步向上,y步向下,则x+y=n+m,x-y=n-m,所以x=n,y=m,也就是需要x步向上, 那么方案数为C(n+m,n),但是中间有不满足的方案,在图上表示就是路径经过了原点下方,也就是≤-1, 这种方案数可以把-1之前的点经-1对称,那么就是起点为(0...原创 2018-10-04 15:49:14 · 156 阅读 · 0 评论 -
雅礼集训 Day1 T2 折射
这是一道比较考研思维的题,如果按照y枚举,就需要判定两个界限,这有点麻烦(PS:当然zwz大佬写得出来也没什么题)。 而对于我这种蒟蒻就只能找其他方法了,我们按照y枚举,而这个图合法的情况就是一条不断向下延伸的折线, 所以设dp[i][0/1],表示这个点有一个向左或者向右的下一个点的情况。 有向左和向右两种情况,这个点向左可以通过另一个向右的转移过来,向右的同理。而最开始想左...原创 2018-10-23 16:54:35 · 372 阅读 · 0 评论 -
雅礼集训 Day2 T1 施工
首先有一个比较好想的结论(谁说的。。。一点都不好想!)就是最优的情况一定是有两端高于中间的一段平地。 因为一段本来有高度差的一起增高等于没用,所以我们可以把最终高度相等的作为一段,无论这段有多少个。 而这样做的条件是两边比中间高。 这样我们得到一个dp式子,这个是个二次函数,可以直接求出t的最小值 就是理想高度,这样就求出了最小的来更新,而对于j的选取,就是在i前面第一个比它高的为...原创 2018-10-23 18:58:52 · 365 阅读 · 0 评论 -
codeforces 990D Graph And Its Complement
首先我们知道一件事,就是如果这个图上的点>1时,一定有一种连通图是只有1个连通块的,而它的补图可以有≤n个连通块。 而且当n==2&&n==3的时候,不能出现两个图都是只有1个连通块的情况。 因为如果这个图不只有一个连通块,那么它的补图就会把一个连通块的点和所有其他连通块的所有点都连上, 这样一定只有一个联通块。 当a和b都等于1的时候要特殊注意,这个时候一条链就可以满足条...原创 2018-10-26 16:56:42 · 133 阅读 · 0 评论 -
NOIP十连测 涂色游戏
这是一道玄学组合数和神仙思路。。。 题目大意:给出一个n*m的网格,每个格子里只能涂一种颜色,一共有p中颜色,要求任意相邻两列都出现了 至少q种颜色的方案数。 n≤100,m≤,q≤p≤100。 看这m的范围,很容易想到矩阵乘法,所以可以先考虑递推式。 设dp[i][j]表示前i列最后一列共有j种颜色的方案数。 那么显然可以得到dp[i][k]=dp[i-1][j]*ans[j][k]...原创 2018-10-29 18:49:34 · 432 阅读 · 0 评论 -
codeforces 1042F Leaf Sets
题目大意:给定一棵n个点的树,将叶子节点分为数个集合,使集合里点对最长距离不超过k,求最少集合数。 贪心,考虑一个非叶节点,它的下面的叶子结点对当前点之间的距离排序之后,当这个叶子结点和比它小的一个的和大于k的 时候,代表后面的每一个叶子结点都要新开一个集合,而之前的可以继续作为一个集合向上更新。最终会剩下一个集合,所以 答案要+1。注意要选择一个度数不为1的点作为开始点(就是非叶节点)。 ...转载 2018-11-01 21:08:02 · 164 阅读 · 0 评论