社区讨论
60pts求条
P1841[JSOI2007] 重要的城市参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mde9ew94
- 此快照首次捕获于
- 2025/07/22 16:15 8 个月前
- 此快照最后确认于
- 2025/07/22 16:19 8 个月前
CPP
// Problem: Luogu P1841
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P1841
// Memory Limit: 125 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include <bits/stdc++.h>
#define N 205
#define int long long
#define INF 10000000000
using namespace std;
int n,m;
int dp[N][N];
vector<int> done[N][N];
set<int> ans;
void init(){
for (int i=1;i<=n;++i){
for (int j=1;j<=n;++j){
dp[i][j] = INF;
}
}
}
signed main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> m;
init();
for (int i=1;i<=m;++i){
int a,b,w;cin >> a >> b >> w;
dp[a][b] = w;
dp[b][a] = w;
}
for (int i=1;i<=n;++i){
for (int j=1;j<=n;++j){
for (int k=1;k<=n;++k){
int cnt = dp[i][k] + dp[k][j];
if (cnt < dp[i][j]){
dp[i][j] = cnt;
done[i][j].clear();
done[i][j].push_back(k);
}
else if (cnt == dp[i][j]) done[i][j].push_back(k);
}
}
}
for (int i=1;i<=n;++i){
for (int j=1;j<=n;++j){
if (done[i][j].size() == 1){
ans.insert(done[i][j][0]);
}
}
}
if (ans.size()) for (int d : ans) cout << d;
else cout << "No important cities.";
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...