2 条题解

  • 0
    @ 2026-2-8 20:58:09
    #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
      @ 2026-2-8 20:53:44

      #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
      上传者