解题:JSOI 2007 重要的城市
考虑一个点$x$,如果某两个点$u,v$间的所有最短路都经过$x$,那么$x$肯定是重要的。这个题$n$比较小,所以我们直接跑floyd,在过程中记录
当发生松弛时,我们具体讨论:
如果这个长度是两点间新更新出的一条最短路,即$dis[i][j]>dis[i][k]+dis[k][j]$,我们在$i,j$的路径上记录$k$这个点
如果这是一条长度在以前更新过的最短路,那么说明两点间不只有一条最短路,原来的那个点已经废了,更新一下
#include<set>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
int mat[N][N],imp[N][N];
int n,m,t1,t2,t3;
set<int> ss;
int main ()
{
scanf("%d%d",&n,&m);
memset(mat,0x3f,sizeof mat);
for(int i=;i<=n;i++) mat[i][i]=;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&t1,&t2,&t3);
mat[t1][t2]=mat[t2][t1]=t3;
}
for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(i!=j&&i!=k&&j!=k)
{
if(mat[i][j]>mat[i][k]+mat[k][j])
mat[i][j]=mat[i][k]+mat[k][j],imp[i][j]=k;
else if(mat[i][j]==mat[i][k]+mat[k][j])
imp[i][j]=;
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(imp[i][j]) ss.insert(imp[i][j]);
if(ss.empty()) printf("No important cities.");
while(!ss.empty())
printf("%d ",*ss.begin()),ss.erase(ss.begin());
return ;
}
解题:JSOI 2007 重要的城市的更多相关文章
- [BZOJ 1032][JSOI 2007]祖玛 题解(区间DP)
[BZOJ 1032][JSOI 2007]祖玛 Description https://www.lydsy.com/JudgeOnline/problem.php?id=1032 Solution ...
- 【BZOJ 1031】【JSOI 2007】字符加密Cipher
后缀数组模板题,看了一天的后缀数组啊,我怎么这么弱TwT #include<cstdio> #include<cstring> #include<algorithm> ...
- 【BZOJ 1030】【JSOI 2007】文本生成器 AC自动机+递推
一直不理解到底怎么做啊,想了好久$TwT$ 最后终于明白了为什么找到第一个满足条件的$fail$就计算,因为避免重复,这个回答,,, 然后$root$下面要接上26个节点,这里26个字母中不在字典内的 ...
- [JSOI 2007]麻将
Description 题库链接 给你一副麻将,胡牌的条件是一对将和若干顺子和刻子组成.现在给你 \(m\) 张牌,牌共 \(n\) 种,问你听哪一张牌. \(1\leq n\leq 400,1\le ...
- [JSOI 2007]字符加密Cipher
Description 题库链接 给你一个长度为 \(n\) 的字符串,首尾相接依次断开每个断点可以得到 \(n\) 个长度为 \(n\) 的字符串,将其排序按序输出每个字符串的最后一个字母. \(1 ...
- 解题:SCOI 2007 蜥蜴
题面 拆点跑最大流 所有能跑出去的点连向汇点,容量为inf 原点连向所有初始有蜥蜴的点,容量为1 每根柱子拆成两个点“入口”和“出口”,入口向出口连容量为高度的边,出口向别的有高度的柱子的入口连容量为 ...
- BZOJ 1032 JSOI 2007 祖码Zuma 区间DP
题目大意:依照祖玛的玩法(任意选颜色),给出一段区间.问最少用多少个球可以把全部颜色块都消除. 思路:把输入数据依照连续的块处理.保存成颜色和数量.然后用这个来DP.我们知道,一个单独的块须要两个同样 ...
- [JSOI 2007] 字符加密
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1031 [算法] 将字符串倍长 , 构建后缀数组 , 然后按要求输出即可 时间复杂度 ...
- 【JSOI 2007】建筑抢修
[题目链接] 点击打开链接 [算法] 将T2从小到大排序,当决策当前建筑修或不修时,若当前花费时间 + T1 <= T2,则修,否则判断T1是否小于之前修的 T1最大的建筑,若小于,则修,我们可 ...
随机推荐
- sqli-labs学习笔记 DAY6
DAY 6 sqli-labs lesson 30 与上一题一样,需要用到HPP 查看源代码,参数两边加上了双引号,直接使用lesson 26a与lesson 27a的脚本即可 sqli-labs l ...
- Geatpy遗传算法在曲线寻优上的初步探究
园子里关于遗传算法的教案不少,但基于geatpy框架的并未多见,故分享此文以作参考,还望广大园友多多指教! Geatpy出自三所名校联合团队之手,是遗传算法领域的权威框架(python),其效率之高. ...
- (二)Hyperledger Fabric 1.1安装部署-Fabric Samples
Hyperledger Fabric Samples是官方推荐的First Network,对于熟悉fabric和测试基础环境很有好处. Fabric Samples源码下载:使用git下载源码,进入 ...
- fdisk命令详解
基础命令学习目录 原文链接:https://www.cnblogs.com/xiaofengkang/archive/2011/06/06/2073579.html fdisk -l 可以列出所有的分 ...
- Virtual DOM的简单实现
了解React的同学都知道,React提供了一个高效的视图更新机制:Virtual DOM,因为DOM天生就慢,所以操作DOM的时候要小心翼翼,稍微改动就会触发重绘重排,大量消耗性能. 1.Virtu ...
- 用C给小学生出题目
用C给小学生出题目 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 600 300 • Es ...
- EGener2四则运算出题器
项目源码: https://git.coding.net/beijl695/EGener2.git (代码纯属原创,设计细节不同,请思量) 项目发布后,由于期间各种事情,耽搁至最后一天交付.这次的项目 ...
- p4factory下 targets/basic_rout
p4factory/targets/basic_routing/p4src代码解读 headers.p4 header_type ethernet_t { fields { dstAddr : 48; ...
- AWS上的实例无法ping通的解决方案
首先Ping只是向服务器发送ICMP的数据包,如果在服务器的防火墙没有允许ICMP协议的数据包的话,那么即使服务器正常运行,那也是ping不同的. 对于亚马逊云服务器,首先我们要确保实例绑定的安全组允 ...
- vue-cli 安装时 npm 报错 errno -4048
如何解决vue-cli 安装时 npm 报错 errno -4048 第一种解决方法:以管理身份运行cmd.exe 第二种解决办法:在dos窗口输入命令 npm cache clean --fo ...