![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cf
文章平均质量分 70
蜗角虚名羊
这个作者很懒,什么都没留下…
展开
-
cf57E - Chess
题目 一中模拟赛T3 题解: 先暴力,求出<500的答案,然后剩下的可通过二阶等差数列计算。 有些人可能要问:为什么要先暴力500?因为500前不太稳定,有几个二阶公差不符合大部分的规律,500是完全安全的。 至于怎么证明:我不会。。。自己思考吧 标程: //a为一阶公差,d为二阶公差,a用了滚动数组优化 #include<bits/stdc++.h> us...原创 2018-05-19 15:34:53 · 254 阅读 · 0 评论 -
Codeforces13C. Sequence
题目 Solution 1.dp 变化后的每一个值肯定是等于原来序列的某个值(不会证) (a为原序列,b为排序后的序列),方程的意思是,把序列前i个数变为非递减序列并且以不超过b[j]的值结尾的最小花费,那么它要么是以不超过b[j-1]结尾的最小花费,或者是刚好以b[j]结尾的最小花费 #include<bits/stdc++.h> using namespace std; int n...原创 2018-12-23 22:13:53 · 306 阅读 · 0 评论 -
51nod 2206 低买高卖&codeforces867E Buy Low Sell High
题目 Solution 用堆保存最小值,遇到大于堆顶的元素就把ans加上差值,然后这个元素入队两次,入队两次是为了有一次“后悔”的机会,也就是先选着,遇到更好的就替换掉 Code #include<bits/stdc++.h> using namespace std; int i,ans,x,n; priority_queue<int,vector<int>,grea...原创 2018-12-20 23:27:33 · 486 阅读 · 1 评论 -
Codeforces 903F Clear The Matrix
题目 题解 题意:给定一个4×n的长方形网格,其中一些是’∗*∗’,一些是’...’。可以进行若干次清理操作,每次选择一个大小为k×k(1⩽k⩽4)k×k(1⩽k⩽4)k×k(1⩽k⩽4)的正方形网格,将其中的‘∗*∗’变为‘...’,花费aka_kak。问,将所有网格都变为‘...’的最小花费。 Solution 由于选择4×4的网格进行清理的时候,相当于强行转移阶段,剩下的就是1⩽k⩽3的情...转载 2018-10-29 11:25:50 · 163 阅读 · 0 评论 -
Codeforces 1042F. Leaf Sets
题目 题解 Solution 把子树拆成几条链,每次合并短的几条链 Code #include<bits/stdc++.h> using namespace std; const int N=1000001; struct node{ int to,ne; }e[N<<1]; int n,m,i,x,y,d[N],tot,h[N],ans; inline char gc(...转载 2018-10-31 07:44:59 · 112 阅读 · 0 评论 -
Codeforces 723E. One-Way Reform
题目 题意:将无向图转为有向图,并且出度等于入度的点的数目最大。输出具体方案。保证无重边无自环 Solution 根据之前欧拉回路的知识:对于有向图,只有所有点的出度和入度都相等的图才有欧拉回路。 这正和题目要求的出度和入度都相等的点尽量多类似,于是我们可以把这张图的所有奇点两两连一条边,使得连完边之后的图存在欧拉回路。 直接跑欧拉回路,根据经过的边定向即可。 可以发现这种方法达到了答案的上界,所...原创 2018-10-25 10:38:17 · 165 阅读 · 0 评论 -
Codeforces 542E. Playing on Graph
题目 Solution 可以发现,奇环-&gt;奇环+偶环;偶环-&gt;奇环+奇环或偶环+偶环(单独一条边看作偶环) 所以奇环最终一定会变成三元环,而三元环是无解的,所以奇环是无解的,二分图判一下 然后给每个联通块求一遍直径,加起来即为最终答案 #include&lt;bits/stdc++.h&gt; using namespace std; const int N=1002; struct ...原创 2018-10-25 09:01:05 · 179 阅读 · 2 评论 -
Codeforces 573C. Bear and Drawing
题目 题意:有一棵树,然后有两行列无限的点。问这棵树能否画在点阵上,树的边不能相交 Solution 我们记只有一个点的子树为①。 记只有1个①的子树为①。 记有且仅有2个①的子树为②。 记有且仅有1个③或至少有1个②或至少有3个①的子树为③。 记恰好有2个③和若干小于③的子树为④。 记其他的子树为⑤。 只有当根不超过④时,才合法 Code #include&lt;bits/stdc++.h&gt...原创 2018-10-22 07:44:28 · 274 阅读 · 0 评论 -
Codeforces 718D. Andrew and Chemistry
题目 题解 #include<bits/stdc++.h> using namespace std; const int N=100001; map<int,int>mp[N]; map<vector<int>,int>H; set<int>S; vector<int>e[N]; int n,i,x,y,tot; inline...转载 2018-10-19 13:44:14 · 169 阅读 · 0 评论 -
Codeforces 765E. Tree Folding
题目 题解 题意:给你一棵树,可以在这棵树上进行若干次操作,每次操作可以把两条长度相同的链,根据一个中点合并在一起。然后问你经过若干次合并之后,最后的最短链长度是多少 Solution 先从节点1开始dfs。 对于每一个节点,用一个set记录:以该点为根的子树的深度。 a) 如果此节点的某个子节点打出了GG,则此节点直接打出GG。 b) 若set的元素个数<=1,那么,以该点为根的子树,显然...转载 2018-10-19 11:22:28 · 206 阅读 · 0 评论 -
51nod1425 减减数
题目 Solution 首先,想要最优,我们必须每次都取各位数字中的最大值进行操作 其次,操作次数是单调的:f(n)&gt;=f(n−1)f(n)&gt;=f(n−1)f(n)>=f(n−1) dfs(n,mx)dfs(n,mx)dfs(n,mx) 要把nnn化为 000 ,mxmxmx 表示比数nnn最高位还要高的位的最大值 firstfirstfirst表示操作次数,se...原创 2018-10-06 14:00:14 · 222 阅读 · 1 评论 -
cf767B. The Queue
题目 题解 细节特别多,写完以后wa了三四发以后实在想不出哪里漏想了,就看数据,又wa了好几发,实在不行,就看了题解 程序其实很短 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=100002; int i,n; ll x,s,ans,t,e,mx,mn; inline...原创 2018-07-08 10:31:13 · 157 阅读 · 0 评论 -
cf990D. Graph And Its Complement
题目 题意:给出n,a,b,表示n个点,要求一张图,满足有a个强联通分量,补图中有b个强联通分量 题解: 我刚开始的想法是:如果有大于1个的强联通分量,那么它的补图一定只有一个强联通分量。 对于a=1和b=1的情况,要特殊讨论,但是我开始只验证了n=2和3,发现都是NO,于是我就只要n&gt;1,a=1,b=1就输出NO。但是,看了数据以后发现:当n&gt;3时,a=1,b=1的情况可...原创 2018-06-10 20:42:01 · 398 阅读 · 0 评论 -
Codeforces 802H. Fake News (medium)
题目 题意:构造两个字符串sss,ppp,使ppp在sss中作为子序列的出现次数恰好等于nnn。 其中n≤1000000n≤1000000n≤1000000;sss,ppp的长度不能超过200200200。 在构造过程中保证使s=pus=pus=pu xxx为新字符 k→2k+1k→2k+1k→2k+1 : 令s′=pxuxx,p′=pxs′=pxuxx,p′=pxs′=pxuxx,p′=px(s...原创 2019-01-09 15:09:47 · 254 阅读 · 0 评论