2017 Multi-University Training Contest - Team 10 1008-Monkeys(快速读入模板实例)
2017-08-24 19:06
435 查看
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=6178题目大意
给你一颗树, 有n个节点, 给你a1……an-1, 表示ai和i+1有一条边, 有k只猴子, 每个节点只能有一只猴子, 问你最多可以去掉多少边, 使得每只猴子通过剩下的边都能至少连接一只猴子, 输出剩下边的条数思路
两个两个匹配就行了, 由于是颗树, 标记一下儿子就行了这题卡了读入,简直妙(sang)不(xin)可(bing)言(kuang)
直接上快速读入模板
代码
#include<bits/stdc++.h> #define fi first #define se second #define lson l,mid,o<<1 #define rson mid+1,r,o<<1|1 using namespace std; typedef long long LL; typedef unsigned long long uLL; typedef pair<int, int> PII; const LL INF = 0x3f3f3f3f; const int MAX_N = 1e5 + 10; const LL mod = 1e9 + 7; const double PI=acos(-1); namespace IO { const int MX = 4e7; //1e7 占用内存 11000kb char buf[MX]; int c, sz; void begin() { c = 0; sz = fread(buf, 1, MX, stdin); } inline bool read(int &t) { while (c < sz && buf[c] != '-' && (buf[c] < '0' || buf[c] > '9')) c++; if (c >= sz) return false; bool flag = 0; if(buf[c] == '-') flag = 1, c++; for(t = 0; c < sz && '0' <= buf[c] && buf[c] <= '9'; c++) t = t * 10 + buf[c] - '0'; if(flag) t = -t; return true; } } int to[MAX_N]; bool node[MAX_N]; int main() { int cas, n, m, u, tot; IO::begin(); IO::read(cas); memset(node, false, sizeof(node)); while(cas--){ IO::read(n), IO::read(m); for(int i = 2; i <= n; ++i) IO::read(to[i]); tot = 0; for(int i = n; i >= 1; --i) if(!node[i]) node[to[i]] = true; else tot++, node[i] = false; if(tot * 2 >= m) printf("%d\n", m - (m >> 1)); else printf("%d\n", m - tot); } return 0; }
相关文章推荐
- 2017 Multi-University Training Contest 10 1008 Monkeys&& HDU 6178 (贪心+超级读入挂fread)
- 【2017 Multi-University Training Contest - Team 10 】Monkeys
- 2017 Multi-University Training Contest 10 1008 Monkeys HDU 6178 (贪心 读入挂fread)
- HDU 6172 Array Challenge(打表+矩阵快速幂)——2017 Multi-University Training Contest - Team 10
- HDU-6178 Monkeys - 2017 Multi-University Training Contest - Team 10(树形DP)
- 2017 Multi-University Training Contest - Team 6 1008 Kirinriki
- 2017 Multi-University Training Contest - Team 10 HDU-6172:Array Challenge
- 2017 Multi-University Training Contest - Team 10
- 2017 Multi-University Training Contest - Team 7:1008. Hard challenge(模拟)
- 2017 Multi-University Training Contest - Team 10
- 2017 Multi-University Training Contest - Team 5 1008 Rikka with Subset
- HDU-6181 Two Paths(2017 Multi-University Training Contest - Team 10)
- HDU 6052 2017 Multi-University Training Contest - Team 2 1008 To My Boyfriend:计数问题
- 2017 Multi-University Training Contest - Team 2 hdu6050 Funny Function 矩阵快速幂
- 2017 Multi-University Training Contest - Team 3 1008 RXD and math
- 2017 Multi-University Training Contest - Team 5-1008 & hdu6092、Rikka with Subset
- 【2017 Multi-University Training Contest - Team 10】Schedule
- 2017 Multi-University Training Contest 10 && HDU 6178 Monkeys 【贪心||树形DP】
- 2017 Multi-University Training Contest - Team 1 1003(hdu6035Colorful Tree) 树 dfs 1008(6040 Hints)
- 2017 Multi-University Training Contest - Team 5 1008 【思维 + 01背包思想】