外星人入侵_纪中3077_spfa
来源:互联网 发布:邓布利多 知乎 编辑:程序博客网 时间:2024/05/02 06:52
Description
外星人入侵地球。可怕的吃人外星人正在全国各地依次序建立它们的基地。
全国共有N(1≤ N ≤10,000)座城市,城市编号1~N。城市之间有M(0≤ M ≤100,000)条双向道路相连。外星人计划建立A(0≤A≤N)个基地。
你只有在距离当前所有外星人基地至少K(1≤K≤100)单位长度的城市才能得到安全。
所以你必须赶快写一个程序决定走到哪里去。
Input
第1行:4个整数N, M, A, K
接下来M行,每行3个整数T1, T2(1≤T1
Output
共A行,第i行1个整数,表示当外星人建好第i个基地后,距离当前所有基地B1,B2,…,Bi至少K长度的城市的数量。
Analysis
随着外星人基地数量的增加,安全的点会减少或不变,所以记录到目前为止的安全点,每次从这些安全点中筛除不安全的统计答案
第一次交没过然后扩大数组就A了
数组啊数组啊
Code
#include <stdio.h>#include <cstring>#include <queue>using namespace std;struct edge{ int x,y,w,next;};queue<int>q;edge e[1000001];bool v[10001],f[10001];int ls[10001],dis[10001];int maxE=0,n,m,a,k,x,y,w,ans;void add(int x,int y,int w){ e[++maxE]=(edge){x,y,w,ls[x]}; ls[x]=maxE;}void spfa(int st){ q.push(st); while (q.size()) { int now=q.front(); q.pop(); for (int i=ls[now];i;i=e[i].next) { if (e[i].w+dis[now]<dis[e[i].y]) { dis[e[i].y]=e[i].w+dis[now]; if (!v[e[i].y]) { v[e[i].y]=true; q.push(e[i].y); } } } v[now]=false; } ans=0; for (int i=1;i<=n;i++) if (dis[i]>=k&&!f[i]) ans++; else f[i]=true;}int main(){ scanf("%d%d%d%d",&n,&m,&a,&k); for (int i=1;i<=m;i++) { scanf("%d%d%d",&x,&y,&w); add(x,y,w); add(y,x,w); } for (int i=1;i<=n;i++) dis[i]=1<<28; for (int i=1;i<=a;i++) { scanf("%d",&x); dis[x]=0; spfa(x); printf("%d\n",ans); } return 0;}
1 0
- 外星人入侵_纪中3077_spfa
- 外星人入侵 纪中3077 spfa+玄学优化
- 伊吹萃香_纪中2556_spfa
- 极其简单的最短路_纪中2051_spfa
- Party_纪中1328_spfa
- [东莞市选2007]最难的问题_纪中1001_spfa
- 高中纪中OJ3077. 【备战NOIP2012图论专项模拟试题】外星人入侵 题解
- 外星人入侵 (Standard IO)
- 外星人入侵笔记
- 洛谷 1346_电车_spfa
- 外星人入侵游戏(Python3)
- 洛谷 1144_最短路计数_spfa
- 洛谷 3371_单源最短路径_spfa
- 洛谷 2296_寻找道路_spfa+dfs
- 洛谷 1073_最优贸易_spfa+dfs
- SSL 2643_城市规划_spfa+dfs
- JZOJ8.17(C组)外星人入侵
- python 外星人入侵游戏的开发
- 进阶项目14-链表版通信录
- xml文件中,<beans >中的xmlns,xmlns:xsi,xmlns:context,等等
- 当 Archlinux 中 Quartus prime 的 MegaWizard 失去响应时的处理
- logback 常用配置详解(二) <appender>
- 使用libs下的.so动态库文件
- 外星人入侵_纪中3077_spfa
- RESTful入门概述
- Bootstrap学习(一)——Bootstrap CSS
- 编写一个进度条
- Linux自学笔记(三)系统安装
- Cent OS 下将Redis 注册为系统服务
- Objective-C基本数据类型取值范围、字节
- ToolBar学习笔记
- 有5个学生每个学生有3门课程的成绩,从键盘输入学生数据(包括学号,姓名,3门成绩)。