氧中毒求助(患者症状:吸氧导致的 RE)

P1350 车的放置

看 RE 消息应该是数组越界了
by esquigybcu @ 2022-08-05 00:24:54


@[pzq_loves_qwq](/user/384214) 可是是哪里越界了呢,蒟蒻实在没看出来$qwq$
by Christophe_ @ 2022-08-05 00:26:47


破案了,存在数据使得 $d>k$,因此 minu 可能小于 0,和 0 取 max 即可 AC. ```cpp // Problem: P1350 车的放置 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P1350 // Memory Limit: 125 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org) #include<bits/stdc++.h> using namespace std; typedef long long LL; const LL N=1e4+10,P=1e5+3; inline LL read(){ LL ret=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-') f=-f; ch=getchar(); } while(ch>='0'&&ch<='9') ret=ret*10+ch-'0',ch=getchar(); return ret*f; } inline void write(LL x){ if(x<0){ putchar('-'); x=-x; } if(x>9) write(x/10); putchar(x%10+'0'); } LL a,b,c,d,k; LL C[N][N],ans; LL pre[N],pst[N]; void init(){ LL mx=max(max(a,b),max(c,d)); C[0][0]=1; for(LL i=1;i<=mx;++i){ C[i][0]=C[i][i]=1; for(LL j=1;j<=i-1;++j) C[i][j]=(C[i-1][j]+C[i-1][j-1])%P; } } int main(){ a=read(),b=read(),c=read(),d=read(),k=read(); init(); for(LL x=k-c;x<=min(a,k);++x){ LL minu=max(k-d,0LL),maxu=min(min(b,k),x); pre[0]=x; for(LL i=1;i<=maxu-1;++i) pre[i]=pre[i-1]*(x-i)%P; pst[k]=1; for(LL i=k-1;i>=minu;--i) pst[i]=pst[i+1]*(k-i)%P; for(LL u=minu;u<=maxu;++u){ LL v=k-u,y=k-x; LL lans=1,rans=1; if(u) lans=pre[u-1]; rans=pst[u]; (ans+=C[b][u]*C[d][v]*C[a][x]%P*C[c][y]*lans%P*rans)%=P; } } write(ans); return 0; } ``` 但是
by Christophe_ @ 2022-08-05 00:36:04


但是?
by Network_Error @ 2022-08-05 07:36:26


为什么大佬开头都要写那些注释(
by retep @ 2022-08-05 07:54:38


\stO sgy Orz/
by Althemeta @ 2022-08-05 22:29:11


|