博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【POJ2114】Boatherds 树分而治之
阅读量:6452 次
发布时间:2019-06-23

本文共 2030 字,大约阅读时间需要 6 分钟。

做广告:

#include 
int main(){ puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/44308173");}

题意:

求是否有长度为K的路径。

每组数据
N,表示树有N个点。
然后N行,每行若干个数对(a,b),当中第i行时表示i到a有一条长为b的无向边。输入到0截止。
然后若干个数表示K,每一个数输出下。
到0为止。

然后数据的N也是到0为止。

存在 puts("AYE");
否则 puts("NAY");

每组数据最后输出一个dot,就是 .

题解:

三倍经验题,

POJ1987
POJ1741

代码:

#include 
#include
#include
#include
#define N 10100#define inf 0x3f3f3f3fusing namespace std;int n,m;struct Eli{ int v,len,next;}e[N<<1];int head[N],cnt;bool rem[N];inline void add(int u,int v,int len){ e[++cnt].v=v; e[cnt].len=len; e[cnt].next=head[u]; head[u]=cnt;}int f[N],f2[N],son[N];int TreeCenter,length;int dfs1(int x,int p){ int i,v; f[x]=f2[x]=0; for(i=head[x];i;i=e[i].next) { v=e[i].v; if(v==p||rem[v])continue; int temp=dfs1(v,x); if(temp>f[x]) { f2[x]=f[x]; f[x]=temp; son[x]=v; } else if(temp>f2[x]) f2[x]=temp; } return f[x]+1;}int g[N];void dfs2(int x,int p){ int i,v; if(max(f[x],g[x])
m)p--; if(i>=p)break; for(j=p;j>i&&src[i].a+src[j].a==m;j--) if(src[i].b!=src[j].b)return 1; if(src[i+1].a!=src[i].a)p=j; } for(i=head[x];i;i=e[i].next) { v=e[i].v; if(rem[v])continue; if(work(v,size[v]-1))return 1; } return 0;}int main(){ freopen("test.in","r",stdin); int i,a,b,c; while(scanf("%d",&n),n) { cnt=0; memset(head,0,sizeof head); for(i=1;i<=n;i++) { while(scanf("%d",&a),a) { scanf("%d",&b); add(i,a,b),add(a,i,b); } } while(scanf("%d",&m),m) { memset(rem,0,sizeof rem); if(work(1,n-1))puts("AYE"); else puts("NAY"); } puts("."); } return 0;}

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
grub如何进入linux系统,Linux操作系统启动管理器-GRUB
查看>>
linux pbs 用户时间,【Linux】单计算机安装PBS系统(Torque)与运维
查看>>
linux系统可用内存减少,在Linux中检查可用内存的5种方法
查看>>
linux 脚本map,Linux Shell Map的用法详解
查看>>
linux mariadb忘记密码,Linux上mariadb重置密码
查看>>
如何在linux系统下配置共享文件夹,如何在windows和Linux系统之间共享文件夹.doc
查看>>
thinkpad装linux无线网卡驱动,ThinkPad E530 Fedora 20 下无线网卡驱动的安装
查看>>
linux磁盘管理是什么东西,Linux磁盘管理详解
查看>>
linux卸载软件出现依赖,关于ubuntu循环依赖软件的删除
查看>>
linux操作系统加固软件,系统安全:教你Linux操作系统的安全加固
查看>>
linux中yum源安装dhcp,24.Linux系统下动态网络源部署方法(dhcpd)
查看>>
linux屏幕复制显示出来的,linux – stdout到gnu屏幕复制缓冲区
查看>>
c语言规定数据长度,C语言中各种数据类型长度
查看>>
android l 新功能,Android L SDK -- 一些有趣的新功能
查看>>
android中心打开式动画,android 围绕中心旋转动画
查看>>
android 键盘 光标位置不对,鼠标定位不准的解决方法大全
查看>>
android pokemon go 虚拟定位,《Pokemon GO》推出全新道具 每年可转一次队伍
查看>>
控件拉伸(转)
查看>>
Linux -进程-孤儿进程-僵尸进程-预防僵尸进程
查看>>
高性能性能测试开发方法
查看>>