灌水区可以发布水帖,其话题应当具有足够信息量、值得讨论,且和程序设计、学习生活及洛谷的使用有关。
如何用c++打出空格?这是一个很哲理的问题,代码如下
#include<bits/stdc++.h>
#define rep(i,l,r) for(int i=(l),i##end=(r);i<=i##end;++i)
#define per(i,r,l) for(int i=(r),i##end=(l);i>=i##end;--i)
#define int long long
#define double long double
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
using namespace std;
const int maxn=2e2+10,maxm=1e6+10,mod=1e9+7;
inline int read(){
int c,w=0,n=0;
while((c=getchar())<'0'||'9'<c) w=c=='-';
do n=n*10+c-'0';while('0'<=(c=getchar())&&c<='9');
return w?-n:n;
}
int write(int n){
if(n<0) putchar('-'),n=-n;
if(n>9) write(n/10);
putchar(n%10+'0');
return n;
}
inline int ksm(int x,int k){
int ans=1;
for(;k;k>>=1,x=x*x%mod) if(k&1) ans=ans*x%mod;
return ans;
}
namespace dft{
const int mod=998244353,mg=3,ig=332748118,i2=499122177;
inline int ksm(int x,int k){
int ans=1;
for(;k;k>>=1,x=x*x%mod) if(k&1) ans=ans*x%mod;
return ans;
}
inline void init(int *t,int n){
int cnt=t[0]=0;
for(int k=n;k;k>>=1,++cnt);
rep(i,1,n-1) t[i]=(t[i>>1]>>1)|((i&1)<<cnt-2);
}
inline void ntt(int *a,int *t,int n,int x){
rep(i,0,n-1) if(i<t[i]) swap(a[i],a[t[i]]);
for(int len=2;len<=n;len<<=1){
int wadd=ksm(x?mg:ig,(mod-1)/len),x,y,w;
rep(k,0,n/len-1){
w=1;
rep(i,k*len,k*len+(len>>1)-1) x=a[i],y=w*a[i+(len>>1)]%mod,
a[i]=(x+y)%mod,a[i+(len>>1)]=(x+mod-y)%mod,w=w*wadd%mod;
}
}
}
inline void doing(int *a,int *b,int n){rep(i,0,n-1) a[i]=a[i]*b[i]%mod;}
inline void end(int *a,int n){
int ni=ksm(n,mod-2);
rep(i,0,n-1) a[i]=a[i]*ni%mod;
}
inline void main(int *a,int *b,int *t,int n,int m){
int k=1;
for(;k<=n+m+1;k<<=1);
init(t,k),ntt(a,t,k,1),ntt(b,t,k,1),doing(a,b,k),ntt(a,t,k,0),end(a,k);
}
}
namespace dinic{
const int maxn=2e4+10;
int ett=1,k,fr,bk,now[maxn],cl[maxn],head[maxn],to[maxn],nxt[maxn],val[maxn],f[maxn];
inline void insert(int u,int v,int w){
to[++ett]=v,val[ett]=w,nxt[ett]=head[u],head[u]=ett;
to[++ett]=u,val[ett]=0,nxt[ett]=head[v],head[v]=ett;
}
inline int bfs(int s,int t){
rep(i,1,k) cl[i]=0;
for(cl[s]=1,f[bk=fr=1]=s;fr<=bk;){
int x=f[fr++];
if(x==t) return 1;
for(int u=now[x]=head[x];u;u=nxt[u]) if(val[u]&&!cl[to[u]]) cl[to[u]]=cl[x]+1,f[++bk]=to[u];
}
return 0;
}
int dfs(int x,int flow,int t){
if(x==t) return flow;
for(int &u=now[x],k;u;u=nxt[u]) if(cl[to[u]]==cl[x]+1&&val[u])
if(k=dfs(to[u],min(flow,val[u]),t)) return val[u]-=k,val[u^1]+=k,k;
return 0;
}
inline int main(int s,int t){
int ans=0;
for(int tmp;bfs(s,t);) while(tmp=dfs(s,INT_MAX,t)) ans+=tmp;
return ans;
}
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
return 0;
}
注:本代码来自搬运非本人代码