Educational Codeforces Round 51 (Rated for Div. 2)(A、B、C、D)

版权声明:欢迎转载 https://blog.csdn.net/l18339702017/article/details/82795455

A

#include<bits/stdc++.h>
using namespace std;
#define clr(a) memset(a,0,sizeof(a))
#define line cout<<"-----------"<<endl

typedef long long ll;
const int maxn = 1e5+10;
const int MAXN = 1e6+10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9+7;
const int N = 1010;



int main(){
    int t;
    scanf("%d", &t);
    while(t--){
    	char s[maxn];
		scanf("%s", s);
		int len = strlen(s); 
    	int a = 0, b = 0, c = 0;
    	for(int i=0; i<len; i++){
    		if(s[i] >= 'a' && s[i] <= 'z') a++;
    		else if(s[i] >= 'A' && s[i] <= 'Z') b++;
    		else if(s[i] >= '0' && s[i] <= '9') c++;
    	}
    	if(a && b && c) {
    		cout << s << endl;
			continue;
		}
    	else if( a && b && !c){
    		if(a > 1){
    			for(int i=0; i<len; i++){
	    			if(s[i] >= 'a' && s[i] <= 'z'){
	    				s[i] = '0';break;
	    			}
	    		}
    		}
    		else{
    			for(int i=0; i<len; i++){
	    			if(s[i] >= 'A' && s[i] <= 'Z'){
	    				s[i] = '0';break;
	    			}
	    		}
    		}
    	}
    	else if(a && !b && c){
    		if(a > 1){
    			for(int i=0; i<len; i++){
	    			if(s[i] >= 'a' && s[i] <= 'z'){
	    				s[i] = 'A';break;
	    			}
	    		}
    		}
    		else{
    			for(int i=0; i<len; i++){
	    			if(s[i] >= '0' && s[i] <= '9'){
	    				s[i] = 'A';break;
	    			}
	    		}
    		}
    	}
    	else if(!a && b && c){
    		if(b > 1){
    			for(int i=0; i<len; i++){
	    			if(s[i] >= 'A' && s[i] <= 'Z'){
	    				s[i] = 'a';break;
	    			}
	    		}
    		}
    		else{
    			for(int i=0; i<len; i++){
	    			if(s[i] >= '0' && s[i] <= '9'){
	    				s[i] = 'a';break;
	    			}
	    		}
    		}
    	}
    	else if(a && !b && !c){
    		s[0] = '0';
    		s[1] = 'A';
    	}
    	else if(!a && b && !c){
    		s[0] = 'a';
    		s[1] = '0';
    	}
    	else if(!a && !b &&c){
    		s[0] = 'a';
    		s[1] = 'A';
    	}
    	cout << s << endl;
    }
    return 0;
}

B

#include<bits/stdc++.h>
using namespace std;
#define clr(a) memset(a,0,sizeof(a))
#define line cout<<"-----------"<<endl

typedef long long ll;
const int maxn = 1e5+10;
const int MAXN = 1e6+10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9+7;
const int N = 1010;

int main(){
    ll l , r;
    scanf("%lld%lld", &l, &r);
    ll ans = l;
    puts("YES");
    for (ll i=1; i<=(r-l+1)/2; i++)  printf("%lld %lld\n", ans, ans+1) , ans += 2;
    return 0;
}

C

#include<bits/stdc++.h>
using namespace std;
#define clr(a) memset(a,0,sizeof(a))
#define line cout<<"-----------"<<endl

typedef long long ll;
const int maxn = 1e5+10;
const int MAXN = 1e6+10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9+7;
const int N = 110;


int a[N], b[N], vis[N];

int main()
{
    int n;
    scanf("%d", &n);
    for(int i = 1; i <= n; ++i) {
        scanf("%d", &a[i]);
        b[a[i]]++;
    }
    int A = 0, B = 0, C = 0;
    for(int i = 1; i <= n; ++i) {
        if(b[a[i]] == 1) {
            if(A == B) {
                A++;
                vis[i] = 1;
            } 
            else {
                B++;
                vis[i] = 2;
            }
        } 
        else if(b[a[i]] == 2) vis[i] = 1;
        else C++;
    }
    if(abs(A - B) > C) puts("NO");
    else {
        puts("YES");
        int ans = abs(A - B);
        char ch1, ch2;
        if(A > B) ch1 = 'B', ch2 = 'A';
        else ch1 = 'A', ch2 = 'B';
        for(int i = 1; i <= n; ++i) {
            if(vis[i] == 1) printf("A");
            else if(vis[i] == 2) printf("B");
            else if(ans) {
                printf("%c", ch1);
                ans--;
            } 
            else printf("%c", ch2);
        }
    }
    return 0;
}

D

#include<bits/stdc++.h>
using namespace std;
#define clr(a) memset(a,0,sizeof(a))
#define line cout<<"-----------"<<endl

typedef long long ll;
const int maxn = 1e5+10;
const int MAXN = 1e6+10;
const int INF = 0x3f3f3f3f;
const int MOD = 998244353;
const int N = 2200;


ll dp[N][N][2][2];
int main(int argc, char const *argv[])
{
	ios::sync_with_stdio(false);
	int n, k;
	cin >> n >> k;
	clr(dp);
	dp[1][1][0][0] = 1;
	dp[1][1][1][1] = 1;
	dp[1][2][0][1] = 1;
	dp[1][2][1][0] = 1;
	for(int i=2; i<=n; ++i){
		for(int j=1; j<=2*i; ++j){
			dp[i][j][0][0] = (dp[i-1][j][0][0] + dp[i-1][j][0][1] + dp[i-1][j][1][0] + dp[i-1][j-1][1][1]) % MOD;
			dp[i][j][1][1] = (dp[i-1][j][1][1] + dp[i-1][j][0][1] + dp[i-1][j][1][0] + dp[i-1][j-1][0][0]) % MOD;
			dp[i][j][1][0] = (dp[i-1][j-1][0][0] + dp[i-1][j-1][1][1] + dp[i-1][j][1][0] + dp[i-1][j-2][0][1]) % MOD;
			dp[i][j][0][1] = (dp[i-1][j-1][0][0] + dp[i-1][j-1][1][1] + dp[i-1][j][0][1] + dp[i-1][j-2][1][0]) % MOD;
		}
	}
	ll ans = 0;
	ans  = (dp[n][k][0][0] + dp[n][k][1][0] + dp[n][k][0][1] + dp[n][k][1][1]) % MOD;
	cout << ans << endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/l18339702017/article/details/82795455