hdu-6178-Monkeys(fast IO)
来源:互联网 发布:推荐系统算法代码 编辑:程序博客网 时间:2024/06/06 12:59
题意:一颗有n个节点的树,然后有K个猴子,一个猴子必须可以走到一个猴子,我们可以将猴子放在树的节点上,在满足一个猴子可以走到另一个猴子的基础上,去掉一些边,使得留下的边最少。
思路:让相邻的边两两配对,看最多能配几对,此时2个猴子只需要一条边,如果配对完之后,还有猴子,那么,每一个猴子将需要一条边与其他的配对好了的相连。dfs搜一遍。(可耻的卡读入)。
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <vector>#define siz 100005#define LL long longnamespace fastIO {#define BUF_SIZE 100000//fread -> readbool IOerror = 0;inline char nc() {static char buf[BUF_SIZE], *p1 = buf + BUF_SIZE, *pend = buf + BUF_SIZE;if(p1 == pend) {p1 = buf;pend = buf + fread(buf, 1, BUF_SIZE, stdin);if(pend == p1){IOerror = 1;return -1;}}return *p1++;}inline bool blank(char ch) {return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t';}template<class T>inline void read(T &x) {char ch;while(blank(ch = nc()));if(IOerror)return;for(x = ch - '0'; (ch = nc()) >= '0' && ch <= '9'; x = x * 10 + ch - '0');}#undef BUF_SIZE};using namespace fastIO;using namespace std;int n,k;vector<int>vec[siz];int cnt = 0;bool vis[siz];void dfs(int u,int fa){ int len = vec[u].size(); /*if(len == 1 && !vis[fa]){ vis[fa] = true; vis[u] = true; ++cnt; return ; }*/ //cout<<len<<endl; for(int i = 0;i < len;i++){ if(vec[u][i]!=fa){ dfs(vec[u][i],u); } } if(!vis[u]&&!vis[fa]){ vis[u] = vis[fa] = true; ++cnt; }}void solve(){ cnt = 0; memset(vis,false,sizeof(vis)); dfs(1,-1); //cout<<cnt<<" "<<"----"<<endl; int ans; if(k<=2*cnt){ ans = k/2 + (k % 2); } else{ ans = cnt + k - 2*cnt; } printf("%d\n",ans);}int main(){ int tcas; read(tcas); //scanf("%d",&tcas); while(tcas--){ //scanf("%d%d",&n,&k); read(n); read(k); for(int i=0;i<=n;i++){ vec[i].clear(); } for(int i=1;i<=n-1;i++){ int u; read(u); //scanf("%d",&u); vec[u].push_back(i+1); vec[i+1].push_back(u); } /*for(int i=1;i<=n;i++){ for(int j = 0;j<vec[i].size();j++) cout<<vec[i][j]<<" "; cout<<endl; }*/ solve(); } return 0;}
阅读全文
0 0
- hdu-6178-Monkeys(fast IO)
- hdu 6178 Monkeys
- HDU-6178 Monkeys
- hdu 6178 Monkeys 贪心
- hdu 6178 Monkeys (贪心)
- hdu 6178 Monkeys dfs匹配
- hdu 6178 Monkeys (dfs+FastIO)
- HDU 6178 Monkeys【DFS+输入输出外挂】
- HDU 6178 Monkeys【dfs】【输入外挂模板】
- HDU 6178 Monkeys (贪心+输入挂)
- HDU 6178 && 2017 多校训练:Monkeys(DFS)
- Hdu 6178 Monkeys【树形Dp-最小点覆盖+贪心思维】
- HDU 6178 Monkeys(树上的二分匹配+fread)
- HDU 6178 Monkeys(树上DP 17多校第十场)
- hdu 5183 Negative and Positive (NP)【fast IO +哈希表】
- hdu 5199 Gunner【水题】【STL应用】【fast IO】
- 2017 Multi-University Training Contest 10 1008 Monkeys HDU 6178 (贪心 读入挂fread)
- 2017 Multi-University Training Contest 10 1008 Monkeys&& HDU 6178 (贪心+超级读入挂fread)
- 浅析企业级SSD Multi-Stream Write技术
- 织梦cms 当前位置点击当前位置连接出错
- 堆外内存泄露
- JAVA8新特性——接口定义增强
- 11gr2 sqlnet.ora
- hdu-6178-Monkeys(fast IO)
- Spring JdbcTemplate 调用MySQL存储过程
- C# 跨线程调用控件
- Struts2以对象的方式处理表单数据
- 微信群中报数从【1】到【30】
- 多行文本溢出显示省略号(…)全攻略
- 面试心得 --- 滴滴出行二面
- spring boot 启动原理分析
- python mysql 插入数据报错 Failed processing format-parameters; 'int' object is not iterable