题目:http://codeforces.com/contest/505/problem/D 题目大意:就是给你一个n个点的图,然后你要在图中加入尽量少的有向边,满足所有要求(x,y),即从x可以走到y 分析: 对于输入的图中,可以发现每个连通块是独立的,中间不用连边就可以,于是考虑单个连通块. 如果某个连通块一共有m个点,那么我们知道,我们至少是要加m-1条边才可以保证形成的图是连通的,但是因为是有向边,所以最后形成的图一定是DAG图,这也就意味着这必须要求对于这个连通块,原图也是DAG图,即…
Portal:http://codeforces.com/problemset/problem/506/B http://codeforces.com/problemset/problem/505/D 好题 给n个城市,m条有向边,求出最少的有向边使得其构成的图与原图等势 对于每个连通分量: 如果无环,那么只需要需要n-1条边完成联通 如果有环,则只需要n条边完成联通 所以这题只要判下连通分量,再看有几个连通分量有环即可 解法一:无向图遍历求强连通分量再把强连通分量所代表的联通分量dfs判环,如…
Mr. Kitayuta has kindly given you a string s consisting of lowercase English letters. You are asked to insert exactly one lowercase English letter into s to make it a palindrome. A palindrome is a string that reads the same forward and backward. For…
题目大意: 在一个有向图中,有n个顶点,给出m对数字(u,v)表示顶点u和顶点v必须直接或者间接相连,让你构造一个这样的图,输出最少需要多少条边. 挖坑待填 官方题解链接:http://codeforces.com/blog/entry/15889. 传送门:http://www.codeforces.com/problemset/problem/505/D…
[题目链接]:http://codeforces.com/problemset/problem/505/D [题意] 让你构造一张有向图; n个点; 以及所要求的m对联通关系(xi,yi) 即要求这张有向图中的点xi能够联通到点yi; 问你最少需要添加多少条边才够; [题解] 先将输入的m条边; 当成无向边,构成一张无向图; 然后对于构成这张图的各个联通块; 设len为这个联通块的节点个数; 如果这个联通块它对应的有向图内有环; 则这个联通块需要len条有向边; (即这len个节点首尾相连构成一…
题目链接:http://codeforces.com/contest/505/problem/D 题解:先用tarjan缩点然后再用并查集注意下面这种情况 ‘ 这种情况只需要构成一个大环就行了,也就是说不需要7条边只要6条就够了. #include <iostream> #include <cstring> #include <cstdio> #include <vector> using namespace std; const int M = 2e6 +…
解题思路:给出n个点,m条边(即题目中所说的两点之间相连的颜色) 询问任意两点之间由多少种不同的颜色连接 最开始想的时候可以用传递闭包或者并查集来做,可是并查集现在还不会做,就说下用传递闭包来做的这种--- 最开始想的时候用传递闭包,可是想到传递闭包只能判断两点是否连通,不能判断连通这两点的颜色是不是一样的,所以当时想再另外用一个数组来放两点之间的颜色,没有写出来---- 然后今天去翻了别人的代码,发现把传递闭包的d数组改成三维的就可以解决问题了(因为注意到n,m的值都很小,四重循环再加一个if…
题目传送门 /* 题意:两点之间有不同颜色的线连通,问两点间单一颜色连通的路径有几条 DFS:暴力每个颜色,以u走到v为结束标志,累加条数 注意:无向图 */ #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <string> #include <vector> using namespace std; ; co…
题目传送门 /* 水题:vector容器实现插入操作,暴力进行判断是否为回文串 */ #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <string> #include <vector> using namespace std; ; const int INF = 0x3f3f3f3f; vector<c…
B. Mr. Kitayuta's Colorful Graph time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Mr. Kitayuta has just bought an undirected graph consisting of n vertices and m edges. The vertices of the g…