@[_CowHorse_](/user/541069) 您的代码?我可以试试帮卡常。
by Jerrlee✅ @ 2023-03-26 10:09:49
@[_CowHorse_](/user/541069) 求一个代码看看
by cc0000 @ 2023-03-26 10:10:33
和第一篇题解的第一篇暴力差不多的
``` cpp
#include<bits/stdc++.h>
using namespace std;
const int maxn=205;
inline int read(){
int s=0,f=1;char c=getchar();
while(!isdigit(c)&&c!='-')
c=getchar();
if(c=='-') f=-1;
else s=c-'0';
c=getchar();
while(isdigit(c)){
s=s*10+c-'0';
c=getchar();
}
return s*f;
}
int n,m;
int E[maxn][maxn],dis[maxn][maxn];
int ans[maxn],cnt;
int e[maxn][maxn];
inline bool check(int p){
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
e[i][j]=E[i][j];
for(int k=1;k<=n;++k)if(p!=k)
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
e[i][j]=min(e[i][j],e[i][k]+e[k][j]);
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(e[i][j]>dis[i][j])
return 1;
return 0;
}
inline void solve(){
n=read();m=read();
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
dis[i][j]=E[i][j]=0x3f3f3f3f;
for(int i=1;i<=n;++i)
dis[i][i]=E[i][i]=0;
for(int u,v,w;m;--m){
u=read();v=read();w=read();
E[u][v]=E[v][u]=w;
dis[u][v]=dis[v][u]=w;
}
for(int k=1;k<=n;++k)
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
for(int i=1;i<=n;++i)
if(check(i))
ans[++cnt]=i;
if(cnt==0){
printf("No important cities.");
return;
}
sort(ans+1,ans+1+cnt);
for(int i=1;i<=cnt;++i)
printf("%d%c",ans[i]," \n"[i==cnt]);
}
signed main(){
int T=1;
for(;T;--T) solve();
return 0;
}
```
by _CowHorse_ @ 2023-03-26 10:12:26
然后现在变 90 了
by _CowHorse_ @ 2023-03-26 10:12:46
@[_CowHorse_](/user/541069) 建议使用快读快写
by luogu_gza @ 2023-03-26 10:13:12
@[_CowHorse_](/user/541069) 草:<https://www.luogu.com.cn/record/105935557>
by Jerrlee✅ @ 2023-03-26 10:13:54
我用的 c++14。。。
by _CowHorse_ @ 2023-03-26 10:14:29
@[_CowHorse_](/user/541069) 草
https://www.luogu.com.cn/record/105935734
by Loser_Syx @ 2023-03-26 10:15:03
好吧承认有点东西
by _CowHorse_ @ 2023-03-26 10:15:06
仅仅是更换了语言就过了(
所以卡常多试语言。
by Jerrlee✅ @ 2023-03-26 10:15:23