2017.7.19 Race 思考记录
来源:互联网 发布:java list 查询条件 编辑:程序博客网 时间:2024/06/03 10:29
此题没有AC!!
但对拍了几个小时了,没有发现问题、、但就是过不了
如果有路过的dalao可以帮忙指导一下、、感激不尽
码(秒WA):
#include<iostream> #include<cstdio>#include<algorithm>#include<cstring>using namespace std;#define N 200007#define inf 1e9+7int tot,zhong[N*2],v[N*2],hou[N*2],xia[N],d[N],sz[N],i,max1,rt,x,y,z,k,ans[N],n;bool vis[N];void jia(int x,int y,int z){ ++tot,zhong[tot]=y,v[tot]=z,hou[tot]=xia[x],xia[x]=tot;}void jian(int x,int y,int z){jia(x,y,z);jia(y,x,z);}struct lalala{int d,ds;}q[100007];void zzx(int o,int fu){ // cout<<o<<endl;sz[o]=1;int maxx=0;for(int i=xia[o];i!=-1;i=hou[i]) { int nd=zhong[i]; if(nd==fu||vis[nd])continue; zzx(nd,o); sz[o]+=sz[nd]; maxx=max(maxx,sz[nd]); }maxx=max(maxx,tot-sz[o]);if(maxx<max1)max1=maxx,rt=o;}void dfs(int o,int fu,int dis,int ddss){q[++q[0].d].d=dis;q[q[0].d].ds=ddss;d[o]=dis;for(int i=xia[o];i!=-1;i=hou[i]){int nd=zhong[i];if(nd==fu||vis[nd])continue;dfs(nd,o,dis+v[i],ddss+1);}}bool cmp(lalala a,lalala b){return a.d<b.d;}void calc(int o,int fu){q[0].d=0;dfs(o,fu,0,0); sort(q+1,q+1+q[0].d,cmp); int l=1,r=q[0].d; while(l<r) { if(q[l].d+q[r].d==k){ ans[q[l].ds+q[r].ds]++; if(q[l+1].d+q[r].d==k)++l;else --r; } else if(q[l].d+q[r].d<k)l++; else r--; }}void calc2(int o,int fu){q[0].d=0;dfs(o,fu,d[fu]-d[o],1); sort(q+1,q+1+q[0].d,cmp); int l=1,r=q[0].d; while(l<r) { if(q[l].d+q[r].d==k){ ans[q[l].ds+q[r].ds]--; if(q[l+1].d+q[r].d==k)++l;else --r; } else if(q[l].d+q[r].d<k)l++; else r--; }}void work(int o,int fu){//cout<<"O";vis[o]=1; calc(o,fu);for(int i=xia[o];i!=-1;i=hou[i]){int nd=zhong[i];if(nd==o||vis[nd])continue; calc2(nd,o); tot=sz[nd]; max1=inf; zzx(nd,o); work(nd,o);}}int main(){memset(xia,-1,sizeof(xia));scanf("%d%d",&n,&k);for(i=1;i<n;i++){scanf("%d%d%d",&x,&y,&z);x++,y++;jian(x,y,z);}max1=inf;tot=n;zzx(1,0);work(rt,0);for(i=1;i<=n;i++){if(ans[i]>0){printf("%d",i);return 0;}}printf("-1");}
阅读全文
0 0
- 2017.7.19 Race 思考记录
- [记录]bug记录与小结--[race condition]
- 2017.4.19 数列 思考记录
- 2017.4.19 细胞分裂 思考记录
- 2017.9.19 Gcd 思考记录
- Race
- 2017.7.13 维修数列 思考记录
- 2017.7.27 排列perm 思考记录
- 2017.7.28 愤怒的小鸟 思考记录
- 2017.7.30 玩具装箱 思考记录
- 2017.4.19 多项式输出 思考记录
- 2017.10.19 大陆争霸 思考记录
- 2017.10.19 起床困难综合征 思考记录
- 记录一个暂时没有答案的race condition问题
- 记录一些思考
- 工作快两年思考记录
- 软件思考记录
- 思考记录--聊天机器人
- Failed to read artifact descriptor--maven问题总结(能力工场)
- QT远程调试配置
- dubbo协议约束
- 取消hibernate的双向维护,以及引用cascade="delete"
- linux 下好用的 git 代码查看工具
- 2017.7.19 Race 思考记录
- 《深入理解JVM》内存模型
- shell的概述
- JavaPDF文件转图片
- Android应用程序框架层和系统运行库层日志系统源代码分析
- oracle 两个时间相减默认为天数
- python——asyncio模块实现协程、异步编程(一)
- Android应用程序框架层和系统运行库层日志系统源代码分析
- Hadoop的部署教程