poj2263-没有在比赛中a掉的水题
来源:互联网 发布:如何用ps制作淘宝主图 编辑:程序博客网 时间:2024/04/27 23:45
这题一开始看,就感觉有线段树的影子,可是还是没有思路去实现,根本不是一种数据结构。或许是我现在只懂基础,等以后理解加深后看有没有想法。我用dijkstra来a掉的;
它和普通的dij题不同:
一:主要在更新上,有一个min(从i到x,再由到y这条路上的最大载货量),
max(比较从i到x再到y和从i直接到y中最大距离);
二:用来标记的值也有不同,不是inf,而是-1;
三:我开始从0开始,结果有误,之后改为从1开始,就ok了,原因查了半天也没查出(如果知道,谢谢告知);
(记:这是我第一次没用c++来做c的事情,初步会用map)
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<map>#include<string>using namespace std;const int INF=1e9;int vis[205];int dis[205];int g[205][205];int text;void dijkstra(int from,int to,int n){ for(int i=1;i<=n;i++){ if(g[from][i]>0) dis[i]=g[from][i]; else dis[i]=-1; } vis[from]=1; dis[from]=0; for(int i=1;i<=n;i++){ int x, MIN=INF; for(int y=1;y<=n;y++){ if(!vis[y]&&dis[y]<MIN&&dis[y]>0){ MIN=dis[x=y]; } } vis[x]=1; for(int y=1;y<=n;y++){ if(g[x][y]>0){ int t=min(dis[x],g[x][y]);//从i到x,再由到y这条路上的最大载货量 dis[y]=max(dis[y],t); //比较从i到x再到y和从i直接到y中最大距离; } } } cout<<"Scenario #"<<text<<endl; cout<<dis[to]<<" tons"<<endl<<endl;}void init(int n){ int i,j; for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(i!=j) { g[i][j]=-1; }}int main(){ int n,m; freopen("int.txt","r",stdin); string from,to; int w; text=0; while(~scanf("%d%d",&n,&m)&&n&&m){ text++; memset(dis,0,sizeof(dis)); memset(g,0,sizeof(g)); memset(vis,0,sizeof(vis)); init(n); map<string,int>mp; int cnt=0,a,b; while(m--){ cin>>from>>to>>w; a=mp[from]; b=mp[to]; if(!a){ a=++cnt; mp[from]=a; } if(!b){ b=++cnt; mp[to]=b; } if(g[a][b]<w) g[a][b]=g[b][a]=w; } cin>>from>>to; int sta=mp[from]; int fin=mp[to]; dijkstra(sta,fin,n); } return 0;}
0 0
- poj2263-没有在比赛中a掉的水题
- 模拟赛 cf#304div2 D.Soldier and Number Game ,人生中第一次在比赛中A掉D题,好吧我承认这个D题有点水
- tju的队伍在pku比赛中~~~
- 没有计时器的比赛问题
- 搜索比赛A题
- hdu 4956 Poor Hanamichi(BC.R#5) 读懂了题意就是水题/坑- -比赛中居然没有过
- 朋友在盛大的云计算比赛中入围
- 查询A表在关联B中是否有没有关联到的数据
- oracle,把A表在B表没有的字段数据插入到B中
- 对比两个集合A和B,删除B中没有的A,新增A中没有的B
- 关于在IE中a标签设置绝对定位和宽高之后却点击没有反应的解决方案
- mysql用存储过程写入 一个表A中没有存在在另一个表B的数据
- 有两队选手每队5人进行一对一的比赛,甲队为A、B、C、D、E,乙队为J、K、L、M、N,经过抽签决定比赛对手名单。规定A不和J比赛, M不和D及E比赛。列出所有可能的比赛名单。 提示:先固定甲队,A在
- 如何在比赛中告别遗憾?
- 如何在 ImageNet 比赛中获得冠军?
- codeforces比赛题A. Nineteen,BThree matrices
- 我做题、比赛的头文件,不断更新中
- 11.16尤文,基耶利尼:22天没有比赛的说法不对
- 通过8个技巧让你成为一个超强的Linux终端用户
- 虚拟视频驱动程序vivi.c源码分析
- 总结
- V4L2视频应用程序编程架构
- mysql5.6 replication配置
- poj2263-没有在比赛中a掉的水题
- i++,i--,++i,--i执行过程
- Java读取文件时第一行出现乱码“?”问号
- java.util.concurrent.ThreadFactory
- 报表三部曲之设计
- 记一次Serv-U提权
- Medoo Last_query的使用:取上一条SQL语句
- 总结
- 数据结构_排序_01