摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1241STL queue模版 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define maxn 101 7 using namespace std; 8 typedef struct 9 {10 int x,y;11 }Node;12 Node node[maxn];13 int n,m,cnt=0;14 int dir[8][2]={0,1,1,0,0,-1,-1,0,1,-1,-1,1,-1,-1,1,1};15 int v... 阅读全文
posted @ 2014-03-22 11:27 清风旋叶 阅读(124) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2112 1 #include 2 #include 3 #include 4 #define maxn 155 5 #define INF 0xffffff 6 using namespace std; 7 int map[maxn][maxn]; 8 char s1[10005][40],s2[10005][40],s[10005][40]; 9 int t[10005];10 int n,cnt=0;11 int solve(char *p)12 {13 for(int i=1;i<=cnt;i.. 阅读全文
posted @ 2014-03-19 13:53 清风旋叶 阅读(174) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1548 1 //hdu 1548 2 #include 3 #include 4 #define INF 999999 5 int map[202][202],vis[202],dist[202],pre[202]; 6 int n,a,b; 7 void dijkstra(int s) 8 { 9 for(int i=1;i0)51 map[i][i-k[i]]=1;52 }53 dijkstra(a);54 if(di... 阅读全文
posted @ 2014-03-16 16:03 清风旋叶 阅读(104) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1744 1 #include 2 #include 3 char str[5005]; 4 int main() 5 { 6 int len,cnt; 7 while(scanf("%s",str)!=EOF) 8 { 9 len=strlen(str);10 cnt=len;11 for(int i=0;i<len;i++)12 {13 for(int j=1;j... 阅读全文
posted @ 2014-03-14 21:31 清风旋叶 阅读(177) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1857 1 #include 2 3 int main(){ 4 5 int n,m,sum,ave; 6 7 int a[3][105][105]; 8 9 int z=0;10 11 while (scanf("%d%d",&n,&m)!=EOF && n && m) {12 13 for (int i=0; i<3; i++) {14 15 for (int j=0; j<n; j++) { 阅读全文
posted @ 2014-03-14 20:57 清风旋叶 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #define INF 0xffffff 5 #define maxn 105 6 using namespace std; 7 int f[maxn],ise[maxn],t,n,m; 8 typedef struct 9 {10 int x,y,w;11 }Edge;12 Edge e[maxn];13 int find(int x)14 {15 if(f[x]!=x)16 f[x]=find(f[x]);17 return f[x];18 }19 int cmp(Edge a,... 阅读全文
posted @ 2014-03-12 16:44 清风旋叶 阅读(213) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1679思路:先生成mst,存储mst的每一条边,然后枚举删除每一条mst中的边,看是否能找出一课次小生成树的权值和最小生成树的权值相等。如果相等,则不唯一。 1 #include 2 #include 3 #include 4 #define maxn 105 5 #define INF 0xffffff 6 using namespace std; 7 int n,m; 8 int f[maxn]; 9 typedef struct10 {11 int x,y,w;12 }Edge;13 Edge edge[maxn*maxn];... 阅读全文
posted @ 2014-03-12 09:30 清风旋叶 阅读(132) 评论(0) 推荐(0) 编辑
摘要: step1:首先需要一个数组来记录每个节点的映射的点,初始化时每个点都映射到自己身上。step2:接着对每个输入的需要并操作的点进行并操作,并且将其中的一个根节点记录的节点数赋0,另一个为新的根节点,它的节点总数也需要更新。step3:遇到需要删除的点的时候,首先找到这个点所在的树的根节点,让根节点记录节点的总数减1,将这个节点映射到一个新的节点(编号大于n),并初始化新节点的数据。step4:遍历所有的点,若节点记录的节点数大于0,就让计数器自增1,最后计数器的数值就是所求的答案。http://acm.hrbeu.edu.cn/index.php?act=problem&id=100 阅读全文
posted @ 2014-03-01 12:55 清风旋叶 阅读(240) 评论(0) 推荐(0) 编辑
摘要: step1:对输入的节点标记并进行合并操作。合并时两个节点不能有相同的根节点,否则会构成环。若b要接到a上,保证b是根节点,否则b将会有两个父节点。若无以上两种情况,可以合并两棵树。step2:每组数据输入结束后要计算根节点的总数,若根节点总数不为1,则构成的不是树。step3:根据以上判断输出结果,每组数据输出后要初始化数据。http://poj.org/problem?id=1308 1 #include 2 #include 3 #include 4 int f[1000000],flag[1000000]; 5 int find(int x) 6 { 7 if(f[x]!=x)... 阅读全文
posted @ 2014-02-28 14:05 清风旋叶 阅读(248) 评论(0) 推荐(0) 编辑
摘要: step1:结构体中包括两个元素,一个是该节点的父节点,一个是以该节点为根节点的树的节点数目。初始化时每个节点视为一棵独立的树,这棵树中的元素只有1个。step2:输入每对关联的点时进行并操作,将两棵树的节点之和记录在合并之后的树根上。step3:输入结束后,查询编号0节点的根节点,这个根节点上记录的节点数目就是所求的结果。http://poj.org/problem?id=1611 1 #include 2 #include 3 typedef struct 4 { 5 int pre,num; 6 }Tree; 7 Tree tree[30000]; 8 int find(int ... 阅读全文
posted @ 2014-02-27 15:13 清风旋叶 阅读(125) 评论(0) 推荐(0) 编辑