欧拉回路和欧拉路径
luckyone2014
想思路是苦涩艰辛的,但是打代码是愉快的。
展开
-
hdu 1878 欧拉回路
/*这是道关于欧拉回路的问题无向图,要想能构成欧拉路径,首先必须是联通的.所以用并查集判断是不是一个祖先来判断是否是完全联通的图. 其次要保证,它度必须全是偶数.*/#include #include #include typedef __int64 LL;#define N 1100int f[N];int data[N];int find(int a) { retur原创 2014-07-09 19:59:27 · 621 阅读 · 0 评论 -
hdu1116 Play on Words 判断能否构成欧拉回路
//有向图,要想能构成欧拉路径,首先必须是联通的.所以用并查集判断是不是一个祖先来判断是否是完全联通的图. //其次要保证,它的出度和入度要全相等或者恰好两个(起点和终点)的时候 出入度差值可以为一.#include #include #include typedef __int64 LL;#define N 456976int f[30];int find(int a)原创 2014-07-09 16:07:32 · 641 阅读 · 0 评论 -
欧拉回路及哈密顿回路浅见
欧拉图:在图为连通图的前提下,欧拉通路:当前图中经过每条边一次且仅一次,若最终回到出发点则称为欧拉回路。相关判定条件(图联通) (1)无向图存在欧拉回路的条件是:图中不存在奇度结点,有向图存在欧拉回路的条件是:每个结点出度均等于入度。 (2)无向图存在欧拉通路的条件是:图中仅存在两个奇度结点(起点和终点),有向图存在欧拉通路的条件是:转载 2014-07-09 19:16:22 · 4571 阅读 · 0 评论 -
hdu 4850 Wow! Such String! 构造 欧拉回路
题意:输出长度为n,长度为4的子串不能重复出现的 小写字母组成的 字符串。做法:最大长度为4的字符串一共有 26^4个, 如果他们都能连接 如 aaaa 和aaab 可以连接为 aaaab。 如果能都连接的话,最长 长度为26^4+3= 456979。构造,先把 相同的 构造好, aaaabbbbccccdddd.....yyyyzzzz。把出现过的存在一个4维数组里 如 aaaa,就把dp[0][0][0][0]=1。 如 aazz 就把dp[0][0][25][25]=1;然原创 2015-05-09 10:45:14 · 1513 阅读 · 1 评论 -
hdu 1719 Friend 数学推导
题意:1和2是友好数,如果a,b是友好数,那么a*b+a+b也是友好数。做法:friend=a*b+a+b=a*b+a+b+1-1=(a+1)*(b+1)-1假设a=(c+1)*(d+1)-1 b=(e+1)*(f+1)-1那么friend=(c+1)*(d+1)*(e+1)*(f+1)-1然后可以把一个friend数通过这样,不断带入分解,最后肯定是 (c+1)*(d+1)*(e+1)*(f+1)*(g+1)*(h+1)*(i+1)*.....-1这种形式,分解到最后,就是里面字母全是1或者2了原创 2015-07-07 21:41:28 · 893 阅读 · 0 评论