cin不T快读T?

P3376 【模板】网络最大流

```cpp #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; const int MAXN=210; const int MAXM=5010*2; struct edge{ int nextp; long long v; int to; }e[MAXM]; int eid=2; int head[MAXN]; int posi[MAXM]; long long vis[MAXN]; long long ans=0; int n,m,s,t; void add(int v,int w,long long yi){ edge ret; ret.to=w; ret.v=yi; ret.nextp=head[v]; head[v]=eid; e[eid]=ret; eid++; return; } long long read(){ char kl=getchar(); int f=1; while(kl>'9'||kl<'0'){ if(kl=='-'){ f=-1; } } long long ret=0; while(kl>='0'&&kl<='9'){ ret=ret*10+kl-'0'; kl=getchar(); } return f*ret; } bool bfs(int x){ memset(vis,0,sizeof(vis)); vis[x]=0x3f3f3f3f; queue<int>stt; stt.push(x); while(!stt.empty()){ int topx=stt.front(); stt.pop(); for(int i=head[topx];i!=0;i=e[i].nextp){ int topt=e[i].to; long long topv=e[i].v; if(vis[topt]==0&&topv>0){ vis[topt]=min(vis[topx],topv); posi[topt]=i; stt.push(topt); if(topt==t){ return true; } } } } return false; } int main(){ n=read(),m=read(),s=read(),t=read(); for(int i=0;i<m;i++){ int vi=read(),wi=read(),ki=read(); add(vi,wi,ki); add(wi,vi,0); } while(bfs(s)){ int stp=t,changev=vis[t]; while(stp!=s){ int way=posi[stp]; e[way].v-=changev; e[way^1].v+=changev; stp=e[way^1].to; } ans+=changev; } printf("%lld",ans); return 0; } ```
by dulox @ 2023-11-16 18:03:33


是不是这里没加kl=getchar()? ```cpp while(kl>'9'||kl<'0'){ if(kl=='-'){ f=-1; } } ```
by 小小蒲公英 @ 2023-11-16 18:04:42


@[dulox](/user/750966)
by 小小蒲公英 @ 2023-11-16 18:06:26


[好吧是的](https://www.luogu.com.cn/record/135401516)。。。
by dulox @ 2023-11-16 18:07:10


谢谢大佬
by dulox @ 2023-11-16 18:07:35


@[dulox](/user/750966) 你这个读入也不快啊?为什么叫快读? 和开 O2 关同步流的 cin 比一比。
by Terrible @ 2023-11-16 18:17:26


@[Terrible](/user/195942) `getchar` 在洛谷评测机上很快。我自己测的时候直接 `getchar` 就比关同步 `cin` 快,`getchar_unlocked` 比 `fread` 还快。 [参见](https://www.luogu.com.cn/blog/fwyg-fangzichang/fzc-tan-io)
by fangzichang @ 2023-11-16 18:26:28


@[Terrible](/user/195942) 所以你认为用 `fread` 的才叫快读吗(
by Sprague_Garundy @ 2023-11-16 18:29:10


①我的错,别和 `std::cɪn` 比了,洛谷上大规模数据测评确实能差出来很多。(我很久之前测过也是这个结果,不过我后面好像看到 `std::cɪn` 能和这玩意速度齐平?玄学,离谱。) ②依然对“快读”名称存疑,`read()` 函数是优化读入没有问题(优化不一定快),但是它最大的特征也不是“快”,称为 `getchar()`模拟读入函数是更贴切的。 ③优化读入在本题意义真的微乎其微,数据量就没多少。这种情况没必要整 `read()`,随便用个读入就行了。
by Terrible @ 2023-11-16 20:57:15


|