Educational Codeforces Round 128 (Rated for Div. 2)

ABC ac代码加补题

A题

#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <set>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <deque> 
using namespace std;

typedef long long LL;
typedef pair<int, int> PII;
const int N = 200010; 
int a[N], b[N];


bool cmp(int a, int b)
{
	return a > b;
}

void solve()
{
	memset(a, 0, sizeof(a));
	bool flag = false;
	int l1, l2, r1, r2;
	cin >> l1 >> r1 >> l2 >> r2;
	for(int i = l1; i <= r1; i++) a[i] ++;
	for(int i = l2; i <= r2; i++) a[i] ++;
	for(int i = 1; i <= 50; i++) 
		if(a[i] == 2)
		{
			cout << i << endl;
			flag = true;
			break;
		}
		
	if(!flag) cout << min(l1, r1) + min(l2, r2) << endl;
}


int main()
{
	int t;
	cin >> t;
	while(t--)
	{
		solve();
	}
	
	return 0;
} 

B题

#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <set>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <deque> 
using namespace std;

typedef long long LL;
typedef pair<int, int> PII;
const int N = 200010, M = 60; 
int a[N], b[N];
char g[M][M];

bool cmp(int a, int b)
{
	return a > b;
}

void solve()
{
	int n, m;
	cin >>n >>m;
	int x = 1e9, y = 1e9;
	for(int i = 1; i <= n; i++)
		for(int j = 1; j <= m; j++)
		{
			cin >> g[i][j];
			if(g[i][j] == 'R') 
			{
				if(x + y > i + j)
				{
					x = i;
					y = j;
				}
			}
		}
			
	if(g[1][1] == 'R')
	{
		puts("Yes");
		return ;
	}
	else{
		for(int i = 1; i <= n; i++)
		{
			for(int j = 1; j <= m; j++)
			{
				if(g[i][j] == 'R')
				{
					if(i - x < 0 || j - y < 0)
					{
						puts("No");
						return ;
					}
				}
			}
		}
	}
	puts("Yes");
}


int main()
{
	int t;
	cin >> t;
	while(t--)
	{
		solve();
	}
	
	return 0;
} 

C题

dalao写法,还不甚理解

原地址,dalao解法,相当妙

#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <set>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <deque> 
#include <map>
#define int long long
using namespace std;

typedef long long LL;
typedef pair<int, int> PII;
const int N = 200010, M = 60, INF = 1e9; 
int a[N], b[N];
char g[M][M];

bool cmp(int a, int b)
{
	return a > b;
}

int check(char s)
{
	if(s >= 'a' && s <= 'z')
		return s - 'a' + 10;
	else return s - '0';
}

void solve()
{
	string st;
	cin >> st;
	int n = st.size();
	st = ' ' + st;
	for(int i = 1; i <= n; i++) b[i] = b[i - 1] + (st[i] == '0');
	int sum = count(st.begin(), st.end(), '1');
	int ans = sum;
	for(int i = sum; i <= n; i++) 
	{
		ans = min(ans, b[i] - b[i - sum]);
	}
	
	cout << ans << endl;
}


signed main()
{
	int t;
	cin >> t;
	while(t--)
	{
		solve();
	}
	
	return 0;
} 
posted @ 2022-05-15 20:59  nobodyL  阅读(29)  评论(0)    收藏  举报