题目连接:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2155&cid=1430

题意:输入一个n个节点,m条边的图,然后k条记录,纪录可能为:

0 x:添加上x这个节点;

1 x y :输出从x到y的最短路;

思路:floyd;

使我更加了解了floyd的思想,就是每加入一个点,更新一次最短路。

 #include <bits/stdc++.h>
using namespace std;
#define INF 1<<29
#define repu(i,a,b) for(int i=a;i<b;i++)
#define N 500
int vis[N],p[N][N];
int main()
{
int n,m,k,kase = ;
while(scanf("%d%d%d",&m,&n,&k)&&m&&n&&k)
{
printf("Case %d:\n",kase++);
memset(vis,,sizeof(vis));
int u,v,d,a,b,st,ed;
repu(i,,m)
{
repu(j,,m)
p[i][j] = INF;
p[i][i]=;///坑啊,一定得记住啊
}
repu(i,,n)
{
scanf("%d%d%d",&u,&v,&d);
if(p[u][v] > d)
p[u][v] = d;
}
while(k--)
{
scanf("%d",&a);
if(a==)
{
scanf("%d%d",&st,&ed);
if(!vis[st] || !vis[ed])
printf("City %d or %d is not available.\n",st,ed);
else
{
if(p[st][ed] != INF)
printf("%d\n",p[st][ed]);
else
printf("No such path.\n");
}
}
else
{
scanf("%d",&b);
if(vis[b])
printf("City %d is already recaptured.\n",b);
else
{
vis[b] = ;
///更新所有以b为过路点的最小值
repu(i,,m)
repu(q,,m)
p[i][q] = min(p[i][q],p[i][b]+p[b][q]);
}
}
}
printf("\n");
}
return ;
}

10年山东省赛-E-最短路的更多相关文章

  1. Triangle (第8届山东省赛的某题)

    triangle(第8届山东省赛的某题) 传送门 题意:喵了个呜,这题意真是峰回路转啊.懒死了,不想描述. 做法:我们拿set或线段树维护exp的最小值,每次取出exp值最小的边,删除之.并更新这条边 ...

  2. 2013年山东省赛F题 Mountain Subsequences

    2013年山东省赛F题 Mountain Subsequences先说n^2做法,从第1个,(假设当前是第i个)到第i-1个位置上哪些比第i位的小,那也就意味着a[i]可以接在它后面,f1[i]表示从 ...

  3. HEX SDUT 3896 17年山东省赛D题

    HEX SDUT 3896 17年山东省赛D题这个题是从矩形的左下角走到右上角的方案数的变形题,看来我对以前做过的题理解还不是太深,或者是忘了.对于这种题目,直接分析它的性质就完事了.从(1,1)走到 ...

  4. 2018山东省赛sequence

    2018山东省赛sequence因为必须要删除一个数,所以可以计算每个数删除的代价,从而选取代价最小的进行删除如果一个数大于它前面的所有数的最小值而小于次小值,删除最小值的代价就要+1:如果一个数本身 ...

  5. [10.18模拟赛] 序列 (DP)

    [10.18模拟赛] 序列 题目描述 山山有一个整数序列s1,s2,-,sn,其中1≤si≤k. 求出有多少个准确移除m个元素后不同的序列.答案模(1e9+7) 输入 输入包括几个测试用例,并且由文件 ...

  6. [10.12模拟赛] 老大 (二分/树的直径/树形dp)

    [10.12模拟赛] 老大 题目描述 因为 OB 今年拿下 4 块金牌,学校赞助扩建劳模办公室为劳模办公室群,为了体现 OI 的特色,办公室群被设计成了树形(n 个点 n − 1 条边的无向连通图), ...

  7. 2015沈阳区域赛Meeting(最短路 + 建图)

    Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  8. 10年省赛-Greatest Number (二分+暴力) + 12年省赛-Pick apples(DP) + UVA 12325(暴力-2次枚举)

    题意:给你n个数,在里面取4个数,可以重复取数,使和不超过M,求能得到的最大的数是多少: 思路:比赛时,和之前的一个题目很像,一直以为是体积为4(最多选择四次)的完全背包,结果并不是,两两求和,然后二 ...

  9. 13年山东省赛 Boring Counting(离线树状数组or主席树+二分or划分树+二分)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud 2224: Boring Counting Time Limit: 3 Sec   ...

随机推荐

  1. http协议分析工具【转】

    转自:http://www.cnblogs.com/klguang/p/4624333.html

  2. (09)odoo工作流

    --------------修订时间14:54 2016-09-18 星期日21:59 2016-06-12 星期日10:06 2016-02-24 星期三17:14 2016-01-29 星期五-- ...

  3. C语言实现进制转换

    #include<stdio.h> int main() {     char ku[16]={'0','1','2','3','4','5','6','7','8','9','A','B ...

  4. uva 10118

    10118 - Free Candies Time limit: 30.000 seconds Little Bob is playing a game. He wants to win some c ...

  5. BZOJ2708 [Violet 1]木偶

    首先想到的是贪心...肯定不对嘛...T T 然后发现其实是可以DP的...不过我们要先排序 令f[i]表示前i个木偶最坏要丢掉几个,则 f[i] = max(f[j] + calc(j + 1, i ...

  6. maven的安装与使用

    一.Maven是什么 Maven是一个采用纯Java编写的开 源项目管理工具.Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义 ...

  7. LAMP之安装mysql/apache/php

    1. 安装mysqlcd /usr/local/src/ wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-i686-gl ...

  8. sp转dp dp转px

    (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, mTextSize, context.getResources().getDis ...

  9. 53个要点提高PHP编程效率

    1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row[’id’] 的速度是$row[id]的7倍.3.echo 比 print 快,并且使用echo ...

  10. 关于http断点续传相关的RANGE这个header

    <?php //1.txt内容"1234567890" socketData('127.0.0.1','/1.txt',80,"RANGE:bytes=0-0\r\ ...