
cf
zhjcezh
这个作者很懒,什么都没留下…
展开
-
Colorful Graph CodeForces - 246D
题意就是给你一棵树,和树上每个节点的颜色,求节点周围不同颜色的种类的最大值,优先输出序号小的节点; 思路就是用set的大小表示每个节点周围和自己的颜色;枚举一遍就行#include <bits/stdc++.h>using namespace std;#define maxn 100100set<int> st[maxn];int s[maxn];int main(){ int原创 2017-08-11 15:48:37 · 257 阅读 · 0 评论 -
CF Round #428( Div.2)BCDE
看到昨晚的cf是的主题是权利还是蛮开心的; 但B题好坑; A;题不写了,3min直接pp; B题一开始大模拟,写了150行wa7;然后换一种思路又写了100+行还是wa7 浪费我一个小时; 然后想着去看C; mmp,5min直接暴力pp了; 然后回过头做B;没用模拟去找规律了,然后就pp。。。就得了80分好像,wa了10次;B - Game of the Rows 【思维+贪心】题意就原创 2017-08-13 12:53:36 · 308 阅读 · 0 评论 -
Codeforces Round #427 (Div. 2) C,D,E
AB除了题目有点恶心难理解外。其他都还简单 C题数据太大,想着直接打表,结果方法不对,一直tle; 调了快一个小时后终于pp; 但结果还是TLE了; 看了D题有点思路,但来不及做了C. Star sky所有星星闪烁有一个长度为c+1的周期,也就意味着如果只考虑星星亮度的话就只有c+1种状态,这样每次查询时只要取ti%(c+1)就能找到对应的状态,其实这道题已经变得很简单了。 打好表后就是O原创 2017-08-13 13:18:44 · 193 阅读 · 0 评论 -
Bad Luck Island CodeForces - 540D 概率dp
题意:会出石头、剪刀、布的人分别有r,s,p个,他们相互碰到的概率相同,输的人死掉,问最终活下去的人是三种类型的概率。 因为是概率不是期望;所以从dp[r][s][p]推到dp[0][0][0];直接暴力三重循环 每一次跟新时的总情况一定是i*j+j*k+k*i; 然后如果剪刀减少一个的概率就是现有的(石头个数剪刀个数/总数)当前情况的概率; 即dp[i][j-1][k]+=dp[i][j]原创 2017-08-12 13:26:07 · 269 阅读 · 0 评论 -
Broken robot CodeForces - 24D 期望dp
题意:n*m的棋盘,一个机器人在(i,j)处,每次等概率地停在原地,向左移动一格,向右移动一格,向下移动一格(不能移出棋盘).求走到最后一行所需期望步数.n<=1000,m<=1000 先讲坑点,1原地停留算一步,2要考虑机器人在同一层楼无限走路,3,m=1情况特殊考虑; 思路:因为是期望dp所以是逆推;从底层推到机器人所在层数; 先最外面套一层关于层数的循环;然后在套一层代表机器人可以在同一原创 2017-08-12 13:35:43 · 472 阅读 · 0 评论 -
Number Transformation II CodeForces - 347E
题意:求最小步骤从A到B;每一次操作可-1或者a-a%(xi); 贪心,每次都减去最大的; 然后发现暴力肯定会TLE 所以用set存储x数组,直接去重加排序;然后每次操作之后,选择不合法的删去#include<bits/stdc++.h>using namespace std;#define maxn 111111set<int> st1,st2;int main(){ in原创 2017-08-12 15:21:37 · 288 阅读 · 0 评论 -
Anton and Tree CodeForces - 734E
题意:给出n个点,n-1条边构成一棵生成树,每个点都有黑白两种颜色,每次改变颜色都能使同颜色的相邻点改变颜色,求最小改变颜色的次数 思路:每次将一个联通块的颜色反转,比较容易想到每次反转后当前这个联通块的区域都会变的更大。 所以我们首先将这棵树进行缩点将相邻的相同颜色的点,缩为一点。缩点之后的树,每个节点都是原来的一个联通快。而将联通块的颜色反转等价于将这个缩点之后的树上的某个节点的全部相连的原创 2017-08-12 14:03:15 · 256 阅读 · 0 评论 -
Harmony Analysis CodeForces - 610C 【思维】
题意不说了,还算简单; 当时拿到这题的时候就感觉行与行之间可以随便交换。。然后就开始找规律了; 当n=1时; ++ +- 当n=2时;可以改下样例 ++++ +-+- ++– +–+ n=34567; 发现可以通过就n情况向右移复制一次,向下复制一次;左下方向就+变为-,-变为+;复制过去,就能得到n+1; 坑点就是n=0明明不符合题意,以为直接换行就行结果wa了一次; 输原创 2017-08-12 13:43:48 · 265 阅读 · 0 评论 -
Misha and Forest CodeForces - 501C
题意:n(2^16)个点组成的森林 给出每个点的度以及相邻点的异或和 求 输出所有边 枚举每一种情况; 如果X的度数为1,则相邻点的异或值就是与X相邻点Y;直接输出; 然后跟新X与Y的度数与它们周围的异或值;然后判断Y点;如Y度数不为1,则返回,继续枚举;#include<bits/stdc++.h>using namespace std;#define ll long long i原创 2017-08-12 13:13:44 · 267 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises)
A. Fraction题意:给出分子分母之和,求出最大的真分数; n/2作为分母分子,暴力gcd判断,如果互质就输出;#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ if(a%b==0) return b; return gcd(b,a%b);}int main(){原创 2017-09-12 15:54:31 · 232 阅读 · 0 评论