2 条题解
-
0
#include<bits/stdc++.h> using namespace std; using ll=long long; int main(){ // int a; // int b; // cin>>a>>b; // if(a==b){ // cout<<"equal"; // return 0; // } // if(a==1){ // cout<<"ke"; // return 0; // } // if(b==1){ // cout<<"da"; // return 0; // } // if(a>b)cout<<"ke"; // else if(b>a)cout<<"da"; // int n; // cin>>n; // string s; // cin>>s; // int tot_can=0, tot_bis=0; // for(int i=0;i<s.size();i++){ // if(s[i]=='C')tot_can++; // else tot_bis++; // } // int minn=-1; // int ke_can=0,ke_bis=0; // for(int k=1;k<n;k++){ // if(s[k-1]=='C')ke_can++; // else ke_bis++; // int da_can=tot_can-ke_can; // int da_bis=tot_bis-ke_bis; // if(ke_can!=da_can && ke_bis!=da_bis){ // minn=k; // break; // } // } // cout<<minn<<endl; // int t; // cin>>t; // while(t--){ // ll L,u,l,r; // cin>>L>>u>>l>>r; // ll tot=L/u; // ll before_the_r=r/u; // ll before_the_l=l/u; // ll in_the_l_and_rhavelight=r/u-(l-1)/u; // ll ans=tot-in_the_l_and_rhavelight; // cout<<ans<<endl; // } // int n,m; // cin>>n>>m; // vector<ll>lego_xiaoke(n+5); // vector<ll>lego_xiaoda(n+5); // for(int i=1;i<=n;i++)cin>>lego_xiaoke[i]; // for(int i=1;i<=m;i++)cin>>lego_xiaoda[i]; // vector<ll>prefix_xiaoke(n+5,0),prefix_xiaoda(m+5,0); // for(int i=1;i<=n;i++)prefix_xiaoke[i]=prefix_xiaoke[i-1]+lego_xiaoke[i]; // for(int i=1;i<=m;i++)prefix_xiaoda[i]=prefix_xiaoda[i-1]+lego_xiaoda[i]; // int cnt=0,now_xiaoke=1,now_xiaoda=1; // while(now_xiaoke<=n || now_xiaoda<=m){ // if(prefix_xiaoke[i]==prefix_xiaoda[j]){ // cnt++; // now_xiaoke++; // now_xiaoda++; // }else if(prefix_xiaoke[i]<prefix_xiaoda[j])now_xiaoke++; // else now_xiaoda++; // } // cout<<cnt<<endl; // string s1,s2; // cin>>s1>>s2; // int q; // cin>>q; // vector<int>difference(s1.size()); // while(q--){ // int l, r; // cin>>l>>r; // difference[l]++; // difference[r+1]--; // } // for(int i=0;i<s1.size();i++){ // } ll n , m ; cin >> n >> m ; vector < ll > lego_xiaoke ( n+10 ) ; vector < ll > lego_xiaoda ( m+10 ) ; for ( ll i = 1 ; i <= n ; i++ ) cin >> lego_xiaoke [ i ] ; for ( ll i = 1 ; i <= m ; i++ ) cin >> lego_xiaoda [ i ] ; vector < ll > prefix_xiaoke ( n+10 , 0 ) , prefix_xiaoda ( m+10 , 0 ) ; for ( ll i = 1 ; i <= n ; i++ ) prefix_xiaoke [ i ] = prefix_xiaoke [ i - 1 ] + lego_xiaoke [ i ] ; for ( ll i = 1 ; i <= m ; i++ ) prefix_xiaoda [ i ] = prefix_xiaoda [ i - 1 ] + lego_xiaoda [ i ] ; ll cnt = 0 , now_xiaoke = 1 , now_xiaoda = 1 ; while ( now_xiaoke <= n && now_xiaoda <= m ) { if ( prefix_xiaoke [ now_xiaoke ] == prefix_xiaoda [ now_xiaoda ] ) { cnt ++ ; if ( now_xiaoke < prefix_xiaoke.size() ) now_xiaoke ++ ; if ( now_xiaoda < prefix_xiaoda.size() ) now_xiaoda ++ ; } else if ( prefix_xiaoke [ now_xiaoke ] < prefix_xiaoda [ now_xiaoda ] ) { if ( now_xiaoke < prefix_xiaoke.size() ) now_xiaoke ++ ; } else{ if ( now_xiaoda < prefix_xiaoda.size() ) now_xiaoda ++ ; } } cout << cnt << endl ; return 0 ; } -
0
#include<bits/stdc++.h> using namespace std; using ll=long long; int main(){ // int a; // int b; // cin>>a>>b; // if(ab){ // cout<<"equal"; // return 0; // } // if(a1){ // cout<<"ke"; // return 0; // } // if(b1){ // cout<<"da"; // return 0; // } // if(a>b)cout<<"ke"; // else if(b>a)cout<<"da"; // int n; // cin>>n; // string s; // cin>>s; // int tot_can=0, tot_bis=0; // for(int i=0;i<s.size();i++){ // if(s[i]'C')tot_can++; // else tot_bis++; // } // int minn=-1; // int ke_can=0,ke_bis=0; // for(int k=1;k<n;k++){ // if(s[k-1]=='C')ke_can++; // else ke_bis++; // int da_can=tot_can-ke_can; // int da_bis=tot_bis-ke_bis; // if(ke_can!=da_can && ke_bis!=da_bis){ // minn=k; // break; // } // } // cout<<minn<<endl; // int t; // cin>>t; // while(t--){ // ll L,u,l,r; // cin>>L>>u>>l>>r; // ll tot=L/u; // ll before_the_r=r/u; // ll before_the_l=l/u; // ll in_the_l_and_rhavelight=r/u-(l-1)/u; // ll ans=tot-in_the_l_and_rhavelight; // cout<<ans<<endl; // } // int n,m; // cin>>n>>m; // vectorlego_xiaoke(n+5); // vectorlego_xiaoda(n+5); // for(int i=1;i<=n;i++)cin>>lego_xiaoke[i]; // for(int i=1;i<=m;i++)cin>>lego_xiaoda[i]; // vectorprefix_xiaoke(n+5,0),prefix_xiaoda(m+5,0); // for(int i=1;i<=n;i++)prefix_xiaoke[i]=prefix_xiaoke[i-1]+lego_xiaoke[i]; // for(int i=1;i<=m;i++)prefix_xiaoda[i]=prefix_xiaoda[i-1]+lego_xiaoda[i]; // int cnt=0,now_xiaoke=1,now_xiaoda=1; // while(now_xiaoke<=n || now_xiaoda<=m){ // if(prefix_xiaoke[i]==prefix_xiaoda[j]){ // cnt++; // now_xiaoke++; // now_xiaoda++; // }else if(prefix_xiaoke[i]<prefix_xiaoda[j])now_xiaoke++; // else now_xiaoda++; // } // cout<<cnt<<endl; // string s1,s2; // cin>>s1>>s2; // int q; // cin>>q; // vectordifference(s1.size()); // while(q--){ // int l, r; // cin>>l>>r; // difference[l]++; // difference[r+1]--; // } // for(int i=0;i<s1.size();i++){ // } ll n , m ; cin >> n >> m ; vector < ll > lego_xiaoke ( n+10 ) ; vector < ll > lego_xiaoda ( m+10 ) ; for ( ll i = 1 ; i <= n ; i++ ) cin >> lego_xiaoke [ i ] ; for ( ll i = 1 ; i <= m ; i++ ) cin >> lego_xiaoda [ i ] ; vector < ll > prefix_xiaoke ( n+10 , 0 ) , prefix_xiaoda ( m+10 , 0 ) ; for ( ll i = 1 ; i <= n ; i++ ) prefix_xiaoke [ i ] = prefix_xiaoke [ i - 1 ] + lego_xiaoke [ i ] ; for ( ll i = 1 ; i <= m ; i++ ) prefix_xiaoda [ i ] = prefix_xiaoda [ i - 1 ] + lego_xiaoda [ i ] ; ll cnt = 0 , now_xiaoke = 1 , now_xiaoda = 1 ; while ( now_xiaoke <= n && now_xiaoda <= m ) { if ( prefix_xiaoke [ now_xiaoke ] == prefix_xiaoda [ now_xiaoda ] ) { cnt ++ ; if ( now_xiaoke < prefix_xiaoke.size() ) now_xiaoke ++ ; if ( now_xiaoda < prefix_xiaoda.size() ) now_xiaoda ++ ; } else if ( prefix_xiaoke [ now_xiaoke ] < prefix_xiaoda [ now_xiaoda ] ) { if ( now_xiaoke < prefix_xiaoke.size() ) now_xiaoke ++ ; } else{ if ( now_xiaoda < prefix_xiaoda.size() ) now_xiaoda ++ ; } } cout << cnt << endl ; return 0 ; }
- 1
信息
- ID
- 3
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 36
- 已通过
- 28
- 上传者