编程之美--树上的三角形
来源:互联网 发布:腾讯代理吃鸡会优化吗 编辑:程序博客网 时间:2024/05/22 13:36
AC代码。。。
#include<stdio.h>#include<string>#include<memory.h>#include<stdlib.h>using namespace std;struct load{ int dian;load*next;};int shortload(int start,int juzhen[][105],int dian,load **load_path);//const int INF=0x3f3f3f3f;const int INF=10000000;int visit[105];int juzhen[105][105];int dis[105];int path[105][105];load * load_path[105];int main(){int zu,x=1;scanf("%d",&zu);while(zu--){printf("Case #%d:\n",x);x++;int dian,line,chang;int start_x,end_x;int i,j,k,l; scanf("%d",&dian);for( i=0;i<dian;i++)for( j=0;j<dian;j++)juzhen[i][j]=INF;for(i=0;i<dian-1;i++){int start,end;scanf("%d%d%d",&start,&end,&chang);juzhen[start-1][end-1]=juzhen[end-1][start-1]=chang;}int ceshi;scanf("%d",&ceshi);while(ceshi--){memset(path,0,105*105*sizeof(int ));scanf("%d%d",&start_x,&end_x);for( i=0;i<dian;i++){ load_path[i]=(load*)malloc(sizeof(load));load_path[i]->dian=start_x-1;load* p=(load*)malloc(sizeof(load));p->dian=i;p->next=NULL;load_path[i]->next=p;}shortload(start_x-1,juzhen,dian,load_path);load* p=load_path[end_x-1];i=0;if(p){while(p->next) {path[end_x-1][i]=juzhen[p->dian][p->next->dian];i++; p=p->next;}}int flag=0;if(i<3)printf("No\n");else {for(j=0;j<i-2;j++)for( k=j+1;k<i-1;k++) for(l=k+1;l<i;l++){if((path[end_x-1][j]+path[end_x-1][k]>path[end_x-1][l])&&(path[end_x-1][j]-path[end_x-1][k]<path[end_x-1][l])&&(path[end_x-1][j]+path[end_x-1][l]>path[end_x-1][k])&&(path[end_x-1][j]-path[end_x-1][l]<path[end_x-1][k])&&(path[end_x-1][k]+path[end_x-1][l]>path[end_x-1][j])&&(path[end_x-1][k]-path[end_x-1][l]<path[end_x-1][j])){printf("Yes\n"); flag=1;k=i-1;j=i-2;break;}}if(flag==0)printf("No\n");}}}}int shortload(int start,int juzhen[][105],int dian,load ** load_path){for(int i=0;i<dian;i++){dis[i]=juzhen[start][i];visit[i]=0;}visit[start]=1;dis[start]=0;int x=0;for(int i=0;i<dian;i++){int min=INF;for(int j=0;j<dian;j++){if(dis[j]<min&&visit[j]==0){min=dis[j];x=j;}}visit[x]=1;for(int j=0;j<dian;j++)if(visit[j]==0&&dis[x]+juzhen[x][j]<dis[j]){load*p=load_path[x]->next;while(p){load* q=(load*)malloc(sizeof(load));q->next=load_path[j]->next;load_path[j]->next=q;p=p->next;}p=load_path[x]->next;load*q=load_path[j]->next;while(p){q->dian=p->dian;p=p->next;q=q->next;}dis[j]=dis[x]+juzhen[x][j];} }return 0;}
- 编程之美--树上的三角形
- 编程之美2013 树上的三角形
- 编程之美资格赛第三题:树上的三角形
- 2013编程之美资格赛【树上的三角形】
- 微软2013 编程之美 第三题 树上的三角形
- 2013编程之美全国挑战赛-树上的三角形
- 编程之美大赛第三题 树上的三角形 .
- 2013编程之美 资格赛 树上的三角形
- 2013微软编程之美 资格赛C 树上的三角形
- 编程之美热身赛 题目3 : 树上的三角形
- 2013编程之美资格赛之树上的三角形(Java实现)
- 编程之美 2013 全国挑战赛 资格赛 题目三 树上的三角形
- 编程之美热身赛——树上三角形(解决RE Runtime Error)
- Qual_C:树上的三角形
- 练习 树上的三角形
- 树上的三角形
- Qual_C:树上的三角形
- 读书笔记之编程之美 - 4.8 三角形测试用例
- Opengl---gluLookAt函数详解
- C# LRUCache缓存类
- ASP.NET MVC案例教程(七)
- launch failed binary not found 错误处理方法
- 最近的url
- 编程之美--树上的三角形
- struts2中的基础配置文件
- [latex]图片动态缩放并旋转飞出的PDF动画示例
- 『HTML5挑战经典』是英雄就下100层-开源讲座(一)从天而降的英雄
- Java 移位操作>>,<<,>>> 位逻辑运算符 &, |,~,^
- VIM 简明攻略
- 健康的生活方式(必看)
- Symbian wins命令行版本编译完成
- Linux环境下用printf做彩色日志记录