2011年7月14日
摘要: 网上盛传这题非常好,可以用多种方法解。哎,这是第一次遇到并查集的题目,下面的代码基本上都是看着别人的代码写的,算是打酱油了。思路:一个棒子两头有颜色,类比为欧拉回路,每个颜色为一个地点,每个棒子是一个边路。(欧拉通路要求:1.图是连通的。2.图中只有0个或2个节点的度为奇数。)所以命题等价为:节点的入度为奇数的节点只有0个或者只有2个。对节点(颜色)就采用hash。然后判断通路用并查集。#include<iostream>const int N=250005;int color[N];int father[N];unsigned int makehash(char *p){ int 阅读全文
posted @ 2011-07-14 13:18 不是我干的 阅读(150) 评论(0) 推荐(0)
摘要: 对于这道题,我真是一肚子苦逼啊。对于一个刚接触并查集的菜鸟,手贱地随便找了一道并查应用的题目想练一下手,但是没想到搜到这道题,这题真不基础啊。基本上都是别人的代码。不过这个题目让我最大的收获就是:特别是递归的题目,看别人代码的时候要自己代入数据去跟着程序跑思路,这样才能理解的快。否则真是很容易抓狂。#include<iostream>using namespace std;const int N=50005;const int K=100005;int n,k,x,y,d,wrg=0;int parent[N];int kind[N];int find(int x){ if(par 阅读全文
posted @ 2011-07-14 02:50 不是我干的 阅读(118) 评论(0) 推荐(0)