CodeForces - 1036D Vasya and Arrays(思维)
生活随笔
收集整理的這篇文章主要介紹了
CodeForces - 1036D Vasya and Arrays(思维)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:先規(guī)定對數(shù)組的一種操作,是可以將相鄰的一段數(shù)字合并成這段數(shù)字之和,然后給出兩個數(shù)組,問若要將兩個數(shù)組通過上述操作變得相等,那么經(jīng)過操作后的數(shù)組最大長度是多少
題目分析:因為看到了相鄰數(shù)字合并成區(qū)間和,就想到了用前綴和,用前綴和亂搞一通,莽了一發(fā)發(fā)現(xiàn)數(shù)組開小了,又莽了一發(fā)就直接過了。。沒有狀態(tài)的時候就適合寫寫博客做做水題,休息休息~
簡單代碼,直接掛了,不解釋:
#include<iostream> #include<algorithm> #include<string> using namespace std;typedef long long LL;const int N=3e5+100;LL sum1[N];LL sum2[N];int main() {int n,m;while(scanf("%d",&n)!=EOF){sum1[0]=0;for(int i=1;i<=n;i++){int num;scanf("%d",&num);sum1[i]=sum1[i-1]+num;}sum2[0]=0;scanf("%d",&m);for(int i=1;i<=m;i++){int num;scanf("%d",&num);sum2[i]=sum2[i-1]+num;}if(sum1[n]!=sum2[m]){printf("-1\n");}else{int ans=0;for(int i=1,j=1;i<=n&&j<=m;){if(sum1[i]==sum2[j]){ans++;i++;j++;}else if(sum1[i]>sum2[j])j++;elsei++;}printf("%d\n",ans);}} return 0; }?
總結(jié)
以上是生活随笔為你收集整理的CodeForces - 1036D Vasya and Arrays(思维)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CodeForces - 1031B C
- 下一篇: 中石油训练赛 - Faulhaber’s