BUCT - 2021-2022-1 ACM集训队每周程序设计竞赛(10)题解

Posted yueshehanjiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BUCT - 2021-2022-1 ACM集训队每周程序设计竞赛(10)题解相关的知识,希望对你有一定的参考价值。

Bob和Alice(1)

思路
模 拟 即 可 模拟即可
时间复杂度 O 1 O1 O1

#include <bits/stdc++.h>
#define fer(i,a,b) for(int i = a ; i <= b ; ++ i)
#define der(i,a,b) for(int i = a ; i >= b ; -- i)
#define all(x) (x).begin(),(x).end()
#define sz(x) ((int)(x).size())
#define sf(x) scanf("%lld",&x)
#define pll pair<int,int> 
#define int long long 
#define pb push_back
#define y second 
#define x first 
using namespace std;

signed main()

    string s , t ;
    cin >> s >> t ;
    int res = 0 ;
    fer(i,0,sz(s)-1)
    
        if(s[i] == t[i])
            res ++ ;
    
    cout << res ;
    
    return 0;

Bob和Alice(2)

思路
模 拟 即 可 模拟即可
时间复杂度 O n On On

#include <bits/stdc++.h>
#define fer(i,a,b) for(int i = a ; i <= b ; ++ i)
#define der(i,a,b) for(int i = a ; i >= b ; -- i)
#define all(x) (x).begin(),(x).end()
#define sz(x) ((int)(x).size())
#define sf(x) scanf("%lld",&x)
#define pll pair<int,int> 
#define int long long 
#define pb push_back
#define y second 
#define x first 
using namespace std;
const int N = 1e6 + 10 , M = 2010 , mod = 1e9 + 7 ;
const double eps = 1e-7 , pi = acos(-1.0) ;

int n ;
int a[N] , b[N] , c[N] ;

signed main()

    cin >> n ;
    fer(i,1,n) sf(a[i]) ;
    fer(i,1,n) sf(b[i]) ;
    fer(i,1,n-1) sf(c[i]) ;
    
    int res = 0 ;
    a[0] = -2 ;
    
    fer(i,1,n)
    
        res += b[a[i]] ;
        if(a[i] == a[i-1] + 1)
            res += c[a[i-1]] ;
    
    cout << res ;
    

Bob和Alice(3)

思路
对 每 一 个 i [ 1 < = i < = n − 1 ] 对每一个i [1 <= i <= n - 1] i[1<=i<=n1]
B i > = m a x ( A i , A i + 1 ) B_i>=max(A_i,A_i+1) Bi>=max(Ai,Ai+1)

因 此 因此
B 1 > = m a x ( A 1 , A 2 ) B_1>=max(A_1,A_2) B1>=max(A1,A2)
B 2 > = m a x ( A 2 , A 3 ) B_2>=max(A_2,A_3) B2>=max(A2,A3)

B n − 1 > = m a x ( A n − 1 , A n ) B_n-1>=max(A_n-1,A_n) Bn1>=max(An1,An)

所 以 可 以 得 到 所以可以得到
A 1 < = B 1 A_1<=B_1 A1<=B1
A 2 < = m i n ( B 1 , B 2 ) A_2<=min(B_1,B_2) A2<=min(B1,B2)
A 3 < = m i n ( B 2 , B 3 ) A_3<=min(B_2,B_3) A3<=min(B2,B3)

A n − 1 < = m i n ( B n − 2 , B n − 1 ) A_n-1<=min(B_n-2,B_n-1) An1<=min(Bn2,Bn1)
A n < = B n − 1 A_n<=B_n-1 An<=Bn1

因 此 因此
A 1 < = B 1 A_1<=B_1 A1<=B1
A i < = m i n ( B i , B i − 1 ) [ 2 < = i < = n − 1 ] A_i<=min(B_i,B_i-1)[2 <= i <= n - 1] Ai<=min(Bi,Bi1)[2<=i<=n1]
A n < = B n − 1 A_n<=B_n-1 An<=Bn1

所 以 答 案 为 所以答案为
B 1 + B n − 1 + ∑ i = 2 n − 1 m i n ( B i , B i − 1 ) B_1+B_n-1+\\sum_i=2^n-1min(B_i,B_i-1) B1+BBUCT - 2021-2022-1 ACM集训队每周程序设计竞赛(10)题解

BUCT - 2021-2022-1 ACM集训队每周程序设计竞赛题解

BUCT - 2021-2022-1 ACM集训队每周程序设计竞赛题解

BUCT - 2021-2022-1 ACM集训队每周程序设计竞赛题解

2021-2022-1 ACM集训队每周程序设计竞赛题解

2021-2022-1 ACM集训队每周程序设计竞赛题解