Bus System 我对自己无语了。。wa了n次原来输出格式搞错了。唉。
2011-05-01 20:18
211 查看
#include<stdio.h> #include<stdlib.h> #include<string.h> #define inf 0x7f7f7f7f7f7f7f7fLL __int64 map[110][110],cost[10],dis[10],sta[110]; int a,b,M,N,l=0; __int64 exp(__int64 x) { if(x==0) return 0; if(x>0&&x<=dis[1]) return cost[1]; else if(x<=dis[2]) return cost[2]; else if(x<=dis[3]) return cost[3]; else if(x<=dis[4]) return cost[4]; else return inf; } void floyd( ) { int i,j,k,t; for(k=1;k<=M;k++) for(i=1;i<=M;i++) for(j=1;j<=M;j++) { if(map[k][j]!=inf&&map[i][k]!=inf&&map[i][j]>map[i][k]+map[k][j]) map[i][j]=map[i][k]+map[k][j]; } } void print(int a,int b) { if(map[a][b]!=inf) printf("The minimum cost between station %d and station %d is %I64d.\n",a,b,map[a][b]); else printf("Station %d and station %d are not attainable.\n",a,b); } int main( ) { int P,i,j; scanf("%d",&N); while(N--) { l++; for(i=1;i<=4;i++) scanf("%I64d",&dis[i]); for(i=1;i<=4;i++) scanf("%I64d",&cost[i]); scanf("%d%d",&M,&P); for(i=1;i<=M;i++) scanf("%I64d",&sta[i]); for(i=1;i<=M;i++) for(j=i+1;j<=M;j++) map[i][j]=map[j][i]=exp(abs(sta[j]-sta[i])); floyd(); printf("Case %d:\n",l); for(i=1;i<=P;i++) { scanf("%d%d",&a,&b); print(a,b); //刚开始时这里超时,我把floy 函数放里面了。悲剧。 } } return 0; }
相关文章推荐
- 这段程序还搞错一个输出(写在这里提醒自己)
- java容器重写toString 按自己格式输出
- java 将一个字符串解析为日期 将日期转为自己定义的格式以字符串输出
- Endnote X6 如何修改输出格式(output style)成为自己想要的输出格式:
- iOS中让一个数字字符串格式化(按照自己想要的格式输出)的方法
- C# 读取存储过程输出参数,始终是常数问题,原来是C#定义输出参数时,定义格式的问题
- phpcms中在头部title中的输出有自己的格式
- 在自己写的formatName基础上,写个,将时间转化为自定义的输出字符串格式信息
- 更改自己原来的ntfs为exts文件格式系统
- iOS中让一个数字字符串格式化(按照自己想要的格式输出)的方法
- poj1661-这题目简单dp但是要考虑情况比较多,wa了n次死在了自己定义的无穷大上面
- 杭电1002(可能是输出格式的问题,尚未查明WA原因)
- dm365 codecs 输入输出格式
- 整数的输出格式(C++程序设计第7周)
- 解决Struts2整合jasperreport,输出格式为HTML时页面图片无法找到问题
- 利用Lucene把文本的字体格式进行修改,然后输出到一个新的文件中
- Java 输出日历格式
- 关于Java语言的eclipse读取数据库,并将数据转换成JSON格式输出
- Reponse.WriteFile输出文档格式不正确问题,如换行