HDU-2017 多校训练赛10-1008-Monkeys
来源:互联网 发布:黑马程序员薪资 编辑:程序博客网 时间:2024/06/07 04:43
ACM模版
描述
题解
这个题主要是卡
代码
#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <queue>using namespace std;const int MAXN = 1e5 + 7;int n, k;int pd[MAXN];int vis[MAXN];vector<int> arr[MAXN];struct FastIO{ static const int S = 100 << 1; int wpos; char wbuf[S]; FastIO() : wpos(0) {} inline int xchar() { static char buf[S]; static int len = 0, pos = 0; if (pos == len) { pos = 0; len = (int)fread(buf, 1, S, stdin); } if (pos == len) { return -1; } return buf[pos++]; } inline int xint() { int s = 1, c = xchar(), x = 0; while (c <= 32) { c = xchar(); } if (c == '-') { s = -1; c = xchar(); } for (; '0' <= c && c <= '9'; c = xchar()) { x = x * 10 + c - '0'; } return x * s; } ~FastIO() { if (wpos) { fwrite(wbuf, 1, wpos, stdout); wpos = 0; } }} io;int main(){// freopen("/Users/zyj/Desktop/input.txt", "r", stdin); memset(pd, 0, sizeof(pd)); int T; scanf("%d", &T); while (T--) { memset(vis, 0, sizeof(vis)); n = io.xint(); k = io.xint(); for (int i = 1; i <= n; i++) { arr[i].clear(); } int a; for (int i = 2; i <= n; i++) { a = io.xint(); arr[a].push_back(i); arr[i].push_back(a); pd[a]++; pd[i]++; } queue<int> q; for (int i = 1; i <= n; i++) { if (pd[i] == 1) { q.push(i); } pd[i] = 0; } int ans = 0; while (!q.empty()) { int now = q.front(); q.pop(); if (arr[now].size() != 0) { int v = arr[now][0]; if (vis[now] == 0 && vis[v] == 0) { ans++; vis[now] = 1; vis[v] = 1; } arr[v].erase(remove(arr[v].begin(), arr[v].end(), now),arr[v].end()); if (arr[v].size() == 1) { q.push(v); } } } if (ans * 2 >= k) { printf("%d\n", (k + 1) / 2); } else { printf("%d\n", ans + k - ans * 2); } } return 0;}
阅读全文
0 0
- HDU-2017 多校训练赛10-1008-Monkeys
- HDU 6178 && 2017 多校训练:Monkeys(DFS)
- 2017 多校训练第十场 HDU 6178 Monkeys 最小点覆盖+树形DP
- HDU-2017 多校训练赛6-1008-Kirinriki
- HDU-2017 多校训练赛7-1008-Hard challenge
- HDU-2017 多校训练赛8-1008-Hybrid Crystals
- HDU-2017 多校训练赛9-1008-Numbers
- HDU-2017 多校训练赛10-1011-Two Paths
- HDU-2017 多校训练赛10-1010-Schedule
- HDU-2017 多校训练赛10-1002-Array Challenge
- HDU-2017 多校训练赛10-1001-Admiral
- HDU-2017 多校训练赛10-补题
- 【多校训练】hdu 6178 Monkeys 贪心+dfs+读入挂模版
- HDU-2017 多校训练赛1-1006-Function
- HDU-2017 多校训练赛1-1002-Balala Power!
- HDU-2017 多校训练赛1-补题
- HDU-2017 多校训练赛1-1003-Colorful Tree
- HDU-2017 多校训练赛2-1009-TrickGCD
- Treap模板(旋转)
- php如何修改SESSION的生存存储时间的实例代码
- 使用maven自动部署功能将war工程自动部署到远程tomcat服务器
- 机器学习2017最新资源
- Android自定义View-onMeasure介绍
- HDU-2017 多校训练赛10-1008-Monkeys
- Integer包装类易错点,面试常考
- jpa之jpql查询
- 链表实现栈和队列的方法
- scrapy-1-初窥scrapy
- ZOJ
- LIS的O(nlogn)算法(二分)
- JavaWeb导出excel
- 数据仓库