http://codeforces.com/contest/742/problem/C 题目大意:从x出发,从x->f[x] - > f[f[x]] -> f[f[f[x]]] -> ..... -> y的步数需要t步,然后再从y出发回到x的步数也需要t步.问需要找到一个最小的t,使得任何一个x经过t步可以到达某一个y,且y也可以经过t步走到x 思路: 先判断是否全都是自环.然后如果不是全都是自环的话.再dfs找环,并且记录环中的结点数.如果是偶环,那么往vector里面pu…
Codeforces Round #383 (Div. 2) A. Arpa's hard exam and Mehrdad's naive cheat 题意 求1378^n mod 10 题解 直接快速幂 代码 #include<bits/stdc++.h> using namespace std; long long quickpow(long long m,long long n,long long k) { long long b = 1; while (n > 0) { if…
题目传送门 /* 题意:告诉起点终点,踩一次, '.'变成'X',再踩一次,冰块破碎,问是否能使终点冰破碎 DFS:如题解所说,分三种情况:1. 如果两点重合,只要往外走一步再走回来就行了:2. 若两点相邻, 那么要不就是踩一脚就破了或者踩一脚走开再走回来踩一脚破了:3. 普通的搜索看是否能到达, 若能还是要讨论终点踩几脚的问题:) DFS 耗时大,险些超时,可以用BFS来做 */ #include <cstdio> #include <algorithm> #include &l…
题目链接:http://codeforces.com/contest/742/problem/C C. Arpa's loud Owf and Mehrdad's evil plan time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output As you have noticed, there are lovely girls in Ar…
题目链接:http://codeforces.com/contest/742/problem/E 题意: 有一个环形的桌子,一共有n对情侣,2n个人,一共有两种菜. 现在让你输出一种方案,满足以下要求: 情侣间吃不同的菜 相邻的三个人不能都吃同一种菜 输出任意一个解: 先将相邻的两个人连边,这样就满足了3个人不吃同样一种菜. 情侣间连边. 图中就不存在奇数环. 那么就一定存在解.然后DFS染色就OK 了. #include <bits/stdc++.h> using namespace std…
题目链接:http://codeforces.com/contest/742/problem/C 题意:题目比较难理解,起码我是理解了好久,就是给你n个位置每个位置标着一个数表示这个位置下一步能到哪个位置,然后要求 求一个数t,保证经过t步x能到达y,而且y经过t步能到x,而且是所有点都要满足. 这题只有一种情况是无法得到结果的,那就是有两个以上的点通向同一个位置.其实题目中也略微有点提示. 然后剩下的就差不多靠暴力解决,但还是有点技巧的. 注意要满足题目中要求其实就是找单向联通块,如果联通数为…
A: 题目大意:给出一个有向图(n<=100),每个点的出度都为1,求最小的t,使得任意两点x,y,如果x走t步后能到y,那么y走t步后到x. 题解: 首先每个点应该都在一个环上,否则无解. 对于大小为k的奇环上的点,满足要求的最小的t是k. 对于大小为k的偶环上的点,满足要求的最小的t是k/2. 对于每个环求最小公倍数即可.  数据范围很小,直接暴力求环就可以了. 代码: #include <iostream> #include <cstdio> #include <…
本来是打算所有半夜进行的CF都不参加的,但看到这次比赛22:35就开始,还是没有忍住orz--晚上总是不够清醒,做题思维不如白天活跃,低级错误常常出现.出的比较早的C因为一个书写错误有点小bug,在比赛快结束时被hack,还好一下子就发现改正了过来,b题很水,却刚开始没想到合适的做法,也卡了比较久.D题因为刚学到DP,还很不熟练,比赛前没能写完.整体来说这一场实在是表现的菜的一塌糊涂.不过因为现在rating低,还在神奇的上分,算是一点慰藉了. A 题目地址 简要题意: 输入一个整数n,输出13…
第一次打Div 1,感觉还是挺难的..把基础题打完就日常划水了.... [A. Arpa's loud Owf and Mehrdad's evil plan](http://codeforces.com/problemset/problem/741/A) 题目大意: 有n个人,每个人有一个后继,求在进行多少次传递后第i 个人跟第j个人对话的同时,第j个人也能跟第i个人对话(允许自己与自己对话).$1\leq n \leq 100$ 这题意花了我好多时间啊..说白了就是要找环咯,把每条环求出来然…
C. Arpa's loud Owf and Mehrdad's evil plan time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output As you have noticed, there are lovely girls in Arpa’s land. People in Arpa's land are numbered fro…
暴搜 #include<cstdio> #include<algorithm> using namespace std; int n,K,Div=1,a[21],m,ans=100; bool vis[21]; void calc(int now) { int t=0; bool flag=0; for(int i=m;i>=1;--i) if(!vis[i]) { if((!flag) && a[i]==0) return; t=t*10+a[i]; fla…
题目链接 :http://codeforces.com/contest/742/problem/D 题意:给你n个女人的信息重量w和美丽度b,再给你m个关系,要求邀请的女人总重量不超过w 而且如果邀请了一个女人要么就邀请她一个,要么要邀请她还有她所有的朋友. 很明显是一道并查集+背包的问题,并不难.要注意的是背包的写法,由于选择情况有两种 1)只选一个女人 2)选和这个女人有关系的一群女人 于是背包最外层是关系数,即联通块的个数,次外层是背包大小,内层是联通个数(由于选择的要求在一个联通块中 只…
A.快速幂 B. 题意:求ai^aj=x的数对个数,x和a[]给定 分析:a^b=c,则a^c=b,所以求ai^x=aj的个数,枚举一遍即可 C. 题意:给你一个有向图,每个点的出边只有一条,求最小的n,使得从任意点走2n步都可以走回原点 分析:先判断是否存在,如果存在,那么图中肯定是一个个的简单环,所以每个点的入度和出度都为1,否则不存在 对于存在的情况,遍历每个环,得出它们的长度,求出它们长度的最小公倍数lcm 若lcm是偶数,那么ans=lcm/2,如果lcm是奇数,那么ans=lcm D…
A. Arpa’s hard exam and Mehrdad’s naive cheat time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output There exists an island called Arpa’s land, some beautiful girls live there, as ugly ones do. Me…
http://codeforces.com/contest/742/problem/D 题目大意:有n个人,每个人有重量wi和魅力值bi.然后又有m对朋友关系,朋友关系是传递的,如果a和b是朋友,b和c是朋友,那么a和c就是朋友.现在,把所有能作为朋友的人放在一个集合里面.你现在要开一个party,这个party的容量为W,现在,你每次只能选择一个集合里面的一个人或者选择集合里面的所有人进入这个party.在满足总w <= W的情况下,总魅力值b最大,问魅力值最大是多少? 思路: 定义dp(i,…
题意:给你一张图,给你每个点的权值,要么是-1,要么是1,要么是0.如果是-1就不用管,否则就要删除图中的某些边,使得该点的度数 mod 2等于该点的权值.让你输出一个留边的方案. 首先如果图内有-1,那么必有解.否则如果初始不合法的点数为偶数,那么必有解,否则无解.因为删一条边,要么使图中不合法的点数+2,要么不变,要么-2. 如果有解,构造图的任意一个生成树,如果有-1,就让-1为根,否则任意结点为根.然后从叶子向根定每个点的入度数,由于自底向上,一个结点的儿子边都被处理完后,只需要决定父边…
一道很巧妙的二分图的题目 简单分析性质可知,一个合法序列一定是由12,21这样的子串构成的,所以相邻的每隔2个两两配对 然后BF和GF互相配对,思考一下,如果存在奇环,那么必定有一个BG有两个GF,或者一个GF有两个BF,所以不存在这种情况,一定有解 直接二分图判断即可 #include <iostream> #include <cstdio> #include <vector> #define mp make_pair #define fi first #define…
从任意点出发,贪心染色即可. #include<cstdio> #include<algorithm> using namespace std; int v[200010<<1],next[200010<<1],first[200010],e; void AddEdge(int U,int V) { v[++e]=V; next[e]=first[U]; first[U]=e; } bool vis[200010]; int n,col[200010]; v…
设sum是所有灯泡的亮度之和 有两种情况: 一种是存在结点U和V,U是V的祖先,并且U的子树权值和为sum/3*2,且U不是根,且V的子树权值和为sum/3. 另一种是存在结点U和V,他们之间没有祖先关系,两者的子树权值和都是sum/3.(已经出栈的结点和当前访问的结点之间,必然没有祖先关系) 两次dfs解决. #include<cstdio> #include<algorithm> #include<cstdlib> using namespace std; int…
题目链接:http://codeforces.com/contest/742/problem/D D. Arpa's weak amphitheater and Mehrdad's valuable Hoses time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Just to remind, girls in Arpa's lan…
题目链接:http://codeforces.com/contest/742/problem/B B. Arpa's obvious problem and Mehrdad's terrible solution time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output There are some beautiful girls in…
#include <bits/stdc++.h> using namespace std; *1e5+; vector<int>p[maxn]; vector<int>c; bool check[maxn]; void dfs(int x) { check[x] = true; c.push_back(x); ; i < p[x].size(); i++) { int y = p[x][i]; if (!check[y]) { dfs(y); } } } int…
题意:https://codeforc.es/contest/1214/problem/D 给你一个n*m的图,每次可以往右或者往下走,问你使(1,1)不能到(n,m)最少要放多少 ‘ # ’ . 思路: 最多是2,不能到(n,m)是0,接下来就是判断1. 也就是判断有没有一个点所有路径必须经过. 第一遍dfs往下走优先,第二遍dfs往右走优先,判断两次走法有没有除了起点和终点其他相同的点,如果有就是有截断点. #define IOS ios_base::sync_with_stdio(0);…
给出一群女孩的重量和颜值 和她们的朋友关系 现在有一个舞台 ab是朋友 bc是朋友 ac就是朋友 给出最大承重 可以邀请这些女孩来玩 对于每一个朋友团体 全邀请or邀请一个or不邀请 问能邀请的女孩的最大颜值 比赛的时候一看就是个背包问题 似乎在背包九讲上面见过..但是不会写 于是百度.."背包 一类选一个" 百度出了分组背包 并且第一个搜索结果就是类似于原题的东西.. 只不过分组背包的模板是一个or不要 加了个bfs 把朋友团体作为一个新朋友加入进这个团体 改了改代码..就a了..…
D. Arpa's weak amphitheater and Mehrdad's valuable Hoses Problem Description: Mehrdad wants to invite some Hoses to the palace for a dancing party. Each Hos has some weight wi and some beauty bi. Also each Hos may have some friends. Hoses are divided…
B. Arpa’s obvious problem and Mehrdad’s terrible solution time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output There are some beautiful girls in Arpa’s land as mentioned before. Once Arpa came u…
起初误以为到每个叶子的概率一样于是.... /* CodeForces 839C - Journey [ DFS,期望 ] | Codeforces Round #428 (Div. 2) */ #include <bits/stdc++.h> using namespace std; const int N = 100005; int n; vector<int> G[N]; double dp[N], val[N]; bool vis[N]; void dfs(int u, i…
题目传送门 /* 题意:两点之间有不同颜色的线连通,问两点间单一颜色连通的路径有几条 DFS:暴力每个颜色,以u走到v为结束标志,累加条数 注意:无向图 */ #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <string> #include <vector> using namespace std; ; co…
题目传送门 /* DFS: 排序后一个一个出发往后找,找到>r为止,比赛写了return : */ #include <cstdio> #include <iostream> #include <cstring> #include <cmath> #include <algorithm> #include <vector> #include <map> #include <queue> #include…
题目传送门 /* DFS:按照长度来DFS,最后排序 */ #include <cstdio> #include <algorithm> #include <cstring> #include <iostream> #include <cmath> #include <vector> using namespace std; ; const int INF = 0x3f3f3f3f; ] = {, }; int a[MAXN]; in…