[BZOJ]4151: [AMPPZ2014]The Cave
来源:互联网 发布:英雄联盟韩服数据库 编辑:程序博客网 时间:2024/05/18 00:21
Description
给定一棵有n个节点的树,相邻两点之间的距离为1。
请找到一个点x,使其满足所有m条限制,其中第i条限制为dist(x,a[i])+dist(x,b[i])<=d[i]。
题解:
%%%Claris。Claris的题解中说,1号点到答案点的距离为
代码:
#include<bits/stdc++.h>using namespace std;const int Maxn=300010;struct Edge{int next,y;}e[Maxn*2];int last[Maxn],len;void ins(int x,int y){ int t=++len; e[t].y=y;e[t].next=last[x];last[x]=t;}int n,m,a[Maxn],b[Maxn],d[Maxn],mx,mn,w,dis[4][Maxn],o;void dfs(int x,int fa,int t,int o){ dis[o][x]=t; for(int i=last[x];i;i=e[i].next) { int y=e[i].y; if(y==fa)continue; dfs(y,x,t+1,o); }}int main(){ int T;scanf("%d",&T); while(T--) { memset(last,0,sizeof(last));len=0; mx=-1,mn=(1<<30); scanf("%d%d",&n,&m); for(int i=1;i<n;i++) { int x,y; scanf("%d%d",&x,&y); ins(x,y);ins(y,x); } dfs(1,0,0,0); for(int i=1;i<=m;i++) { scanf("%d%d%d",&a[i],&b[i],&d[i]); o=max(0,dis[0][a[i]]+dis[0][b[i]]-d[i]); if(o>mx)mx=o,w=i; } dfs(a[w],0,0,1);dfs(b[w],0,0,2);o=d[w];w=-1; for(int i=1;i<=n;i++) if(dis[1][i]+dis[2][i]<=o){if(dis[0][i]<mn)mn=dis[0][i],w=i;} if(w==-1){puts("NIE");continue;} dfs(w,0,0,3);bool no=false; for(int i=1;i<=m;i++)if(dis[3][a[i]]+dis[3][b[i]]>d[i]){no=true;break;} if(no)puts("NIE");else printf("TAK %d\n",w); }}
阅读全文
1 0
- [BZOJ]4151: [AMPPZ2014]The Cave
- 【bzoj4151】 [AMPPZ2014]The Cave
- 【AMPPZ2014】【BZOJ4151】The Cave
- BZOJ 4152: [AMPPZ2014]The Captain
- bzoj 4152: [AMPPZ2014]The Captain
- bzoj 4152: [AMPPZ2014]The Captain
- BZOJ 4145: [AMPPZ2014]The Prices
- BZOJ 4145 AMPPZ2014 The Prices 状压DP
- bzoj 4145 [AMPPZ2014]The Prices dp
- bzoj 4145: [AMPPZ2014]The Prices 状压dp
- BZOJ 4152 [AMPPZ2014]The Captain dijkstra
- BZOJ 4152: [AMPPZ2014]The Captain 题解 【贪心】【SPFA】
- BZOJ 4152 [AMPPZ2014]The Captain 最短路题解
- BZOJ 4152: [AMPPZ2014]The Captain 分层图最短路
- 【AMPPZ2014】【BZOJ4143】The Lawyer
- 【bzoj4143】[AMPPZ2014]The Lawyer
- 【bzoj4152】[AMPPZ2014]The Captain
- 【bzoj4145】[AMPPZ2014]The Prices
- 1201: 众数问题
- 如何生成要导入到unity的dll
- 运维之红帽管理员篇-----5. 破解红帽系统密码、cron计划任务、权限和归属 、 使用LDAP认证 、 家目录漫游
- jQuery序列化表单 serialize() serializeArray()
- 发布 Android Wear 公测版
- [BZOJ]4151: [AMPPZ2014]The Cave
- 超实用压力测试工具-ab工具
- tableout_vipager横向滑动
- springmvc整合dubbo
- Spring Cloud-特征
- Git常用命令
- Chrome开发者控制台
- 【NoI 2002】【CodeVs 1746】【贪吃的九头龙】【树形dp】【记忆化搜索】【多叉树转化二叉树】
- java方法的参数传递机制