为啥我第一个点明明和题目一样但是会wa

P1181 数列分段 Section I

这边建议发一下代码(
by jingkongwanglimiaoa @ 2020-11-21 21:07:09


@[jingkongwanglimiaoa](/user/222578) ``` #include<bits/stdc++.h> using namespace std; long long read(){ long long x=0; char c=getchar(); while(c>='0'&&c<='9'){ x=x*10+c-'0'; c=getchar(); } return x; } int main(){ long long n=read(),m=read(),a; int s=1,k=0; for(int i=0;i<n;i++){ a=read(); if(k+a<=m){ k+=a; } else{ k=a; s++; } } cout<<s; return 0; } ```
by 谭明轩 @ 2020-11-21 21:09:30


你将鼠标光标移到wa点会发现有个 read 3, expected 4 证明你的程序输出了3 但windows系统下确实输出了4 可能是系统差异造成的罢了(洛谷是linux系统)
by jingkongwanglimiaoa @ 2020-11-21 21:36:18


```cpp #include<bits/stdc++.h> using namespace std; int main(){ long long n,m,a; scanf("%lld %lld",&n,&m); int s=1,k=0; for(int i=0;i<n;i++){ scanf("%lld",&a); if(k+a<=m){ k+=a; } else{ k=a; s++; } } cout<<s; return 0; } ``` ac代码@[谭明轩](/user/320734)
by jingkongwanglimiaoa @ 2020-11-21 21:38:57


你的快读搞的鬼~~,然而由于我太蒻了不会修~~ 由于系统差异换行 \r \n 的原因,getchar()挺容易出锅的好像 ~~这还是改变不了我不会修的事实~~
by jingkongwanglimiaoa @ 2020-11-21 21:40:55


```cpp long long read(){ long long x=0; char c=getchar(); while(c < 47 || c > 58) c = getchar(); while(c>='0'&&c<='9'){ x=x*10+c-'0'; c=getchar(); } return x; } ```
by 霜羽 @ 2020-11-21 22:07:46


@[jingkongwanglimiaoa](/user/222578) 哦,谢谢
by 谭明轩 @ 2020-11-24 18:29:44


@[jingkongwanglimiaoa](/user/222578) 我也是。看看我这个:(ios…………搞的鬼)这又为什么?? ```cpp #include<bits/stdc++.h> #define inf 0x3f3f3f3f using namespace std; int n,m,a[100002],sum,t=1,s; int main() { ios::sync_with_stdio(false); cin.tie(0); cin>>n>>m; for(int i=1; i<=n; i++) cin>>a[i]; while(t!=n) { s=0; while(s<=m&&t!=n) { s+=a[t]; t++; } if(s>m)t--; sum++; } cout<<sum; return 0; } ```
by I_love_Cathy @ 2022-05-04 21:00:01


|