求助卡常小寄巧

P1841 [JSOI2007] 重要的城市

@[_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


| 下一页