HDU 5326 公司人员管理树问题(多校)-简单dp
来源:互联网 发布:程序员数学 编辑:程序博客网 时间:2024/04/30 21:40
题意:给出一个公司的人员管理树,求直接和间接下属共k人的人有多少。
分析:刚开始一看是树就吓到了,不敢做,后来咬着牙一想,不难啊,G哥说是dp,我用的我也不知道的方法,过了。我的方法就是用vis[i][j]记录i与j的直接隶属关系,然后通过vis[i][j]和vis[j][k]又能找到vis[i][k]的间接隶属关系,a[i]+=a[j],a[i]+=a[k]即可。相信自己。
这是G哥代码:
递归大法要学会用起来
#include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<iostream> #include<algorithm> #include<vector> #include<map> #include<queue> #include<stack> #include<string>#include<map> #include<set>#define eps 1e-6 #define LL long long using namespace std; //const int maxn = 100 + 5;//const int INF = 0x3f3f3f3f;int d[105];vector<int> G[105];int n, k;int son[105];int dp(int i) { if(d[i] != -1) return d[i]; d[i] = 0; for(int j = 0; j < G[i].size(); j++) { d[i] += dp(G[i][j])+1; } return d[i];}int main() {// freopen("input.txt", "r", stdin); while(scanf("%d%d", &n, &k) == 2) { memset(son, 0, sizeof(son)); memset(d, -1, sizeof(d)); for(int i = 1; i <= n; i++) G[i].clear(); for(int i = 0; i < n-1; i++) { int u, v; cin >> u >> v; G[u].push_back(v); } int ans = 0; for(int i = 1; i <= n; i++) { if(dp(i) == k) ans++; } cout << ans << endl; } return 0;}
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int vis[200][200],n,a[200],k;int main(){while(scanf("%d%d",&n,&k)!=EOF){int p,q;int tot=0;memset(a,0,sizeof(a));memset(vis,0,sizeof(vis));for(int i=1;i<n;i++){scanf("%d%d",&p,&q);vis[p][q]=1;a[p]++;}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(vis[i][j])for(int k=1;k<=n;k++){if(vis[j][k]) vis[i][k]=1;}}}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(vis[i][j]) a[i]+=a[j];}}for(int i=1;i<=n;i++){if(a[i]==k) tot++;}printf("%d\n",tot);}}
0 0
- HDU 5326 公司人员管理树问题(多校)-简单dp
- 公司人员管理系统
- HDU 1231 (简单DP问题)
- IT公司劳务人员的管理
- hdu 2563 统计问题(简单dp)
- hdu~1422(简单dp)
- hdu 5074(简单dp)
- hdu 2881(简单dp)
- 外勤人员管理的问题如何解决
- 测试人员的绩效管理问题
- HDU 3016 线段树+简单dp
- HDU 3564 线段树+简单DP
- hdu 2546 饭卡(简单DP)
- HDU 3485 Count 101(简单DP)
- HDU 4705 Y(简单树形DP)
- Hdu 1176 免费馅饼(简单DP)
- HDU 2089 数位dp (简单)
- HDU 1176 免费馅饼 (简单DP)
- 构造函数,拷贝构造函数,析构函数
- .Net Sql Server use informix_odbc tips
- redis的PHP封装
- android 5.0+原生质设计,cardview、Recyclerview、百分比布局PercentRelativeLayout简单使用
- adb命令 logcat查看日志
- HDU 5326 公司人员管理树问题(多校)-简单dp
- 浅谈MFC单文档(SDI)程序
- iOS 之选择器(Selector)
- neusoft.shixi__任务一
- 《人工智能教程(张仰森)》(二)
- box草稿2--个人技能发展计划
- select
- Aizu 0009 Prime Number
- Android面试题(含答案)