2015多校第三场hdu5326 work
2015-07-31 10:40
211 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5326
题意:给m对朋友构成一个树,询问子树(包括孙辈)个数为k的有几个
思路:赛中小伙伴有类似于并查集的方法构造树,同时统计每个的子树有几个,ac的,赛后自己敲的时候用邻接矩阵构造的链表来写,类似于二分匹配的时候用的链表,同时用l数组和r数组记录每个点以及这个点的子树
代码:
小伙伴的并查集构造树
链表构造树:
题意:给m对朋友构成一个树,询问子树(包括孙辈)个数为k的有几个
思路:赛中小伙伴有类似于并查集的方法构造树,同时统计每个的子树有几个,ac的,赛后自己敲的时候用邻接矩阵构造的链表来写,类似于二分匹配的时候用的链表,同时用l数组和r数组记录每个点以及这个点的子树
代码:
小伙伴的并查集构造树
#include <iostream> #include <algorithm> #include <cmath> #include <cstring> #include <cstdio> #include <iomanip> #include <queue> #define maxn 105 using namespace std; int pre[maxn],cnt[maxn]; int main() { int a,b,n,k,ans; while(scanf("%d%d",&n,&k)!=EOF) { ans=0; for(int i=1; i<=n; i++)//初始化 { pre[i]=i; cnt[i]=0; } for(int i=0; i<n-1; i++)//题意初始化 { scanf("%d%d",&a,&b); pre[b]=a; } for(int i=1; i<=n; i++)//并查集部分采用 { int top=i; while(top!=pre[top]) { cnt[pre[top]]++; top=pre[top]; } } for(int i=1; i<=n; i++)//找结果 { if(cnt[i]==k) { ans++; } } printf("%d\n",ans); } return 0; }
链表构造树:
#include<stdio.h> #include<algorithm> #include<iostream> #include<string.h> #define maxn 1000005 using namespace std; int head[maxn]; int index; int l[maxn],r[maxn]; int idx; int id[maxn]; struct edge { int to,next; }e[maxn]; void addedge(int a,int b) { e[index].to=b; e[index].next=head[a]; head[a]=index; index++; } void dfs(int u) { id[u]=++idx; l[u]=idx; for(int i=head[u];i!=-1;i=e[i].next) dfs(e[i].to); r[u]=idx; } int main() { int n,k; int u,v; while(scanf("%d%d",&n,&k)!=EOF) { index=0; memset(head,-1,sizeof(head)); for(int i=0;i<n-1;i++) { scanf("%d%d",&u,&v); addedge(u,v); } dfs(1); //for(int i=1;i<=n;i++)cout<<l[i]<<" "<<r[i]<<endl; int sum=0; for(int i=1;i<=n;i++) { if(r[i]-l[i]==k) sum++; } printf("%d\n",sum); } return 0; }
相关文章推荐
- DCT离散余弦变换及其逆变换+代码
- eclipse调试mapreduce源码
- iOS UIControl 几个事件的说明(转载)
- hongxin
- android Handler vs Timer
- 【ibatis】cachemodel、属性 及特殊配置
- TDD in Expert Python Programmin
- iOS开发中使用AutoLayout进行不同屏幕尺寸匹配
- 盗版windows系统用360/腾讯/官方升级Win10正式版真的能洗白吗?
- 用jdbc连接mysql数据库(基础篇)
- HashMap、ArrayList删除元素
- Reverse Bits
- 黑盒测试用例设计方法总结
- HDU 1429胜利大逃亡(续) (bfs+状态压缩)
- jQuery JSON转换 数组转字符串 获取显示器长宽
- Cocos2d-X lua 学习笔记之消息弹窗
- enmo_day_10
- 高斯消元模板
- 合理的电话号码
- 关于iOS多线程,你看我就够了(已更新)