Codeforces Round #616 (Div. 2)

A:
对一个大数进行操作,使得不被2整除,各位之和被2整除
先操作最后一位,最后一位必须为单数,之后各位只保留一个单数即可,其他单数都删掉。

#include 
#include 
using namespace std;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin >> t;
	while(t--)
	{
		int n;
		cin >> n;
		string s;
		cin >> s;
		while(n > 1)
		{
			if(s[n-1] == '0' || s[n-1] == '2'||s[n-1] == '4'||s[n-1] == '6' ||s[n-1] == '8')
			{	
				s[n-1]='#';//把最后一位删去 
				n--;
			}
			else
			break;//把最后一位处理完 
		}
		if(s[n-1] == '0' || s[n-1] == '2'||s[n-1] == '4'||s[n-1] == '6' ||s[n-1] == '8')
		{	
			cout << -1 << endl;
			continue;
		}
		int flag = 0;
		for(int i = 0; i < n - 1; i++)
		{
			if(!flag)
			{
				if(s[i] == '1'||s[i] == '3'||s[i] == '5'||s[i] == '7'||s[i] == '9')
				{
					flag = 1;
				}
			}
			else
			{
				if(s[i] == '1'||s[i] == '3'||s[i] == '5'||s[i] == '7'||s[i] == '9')
				{
					s[i] = '#';
				}
			}
		}
		if(flag == 0)
		{
			cout << -1 << endl;
			continue;
		}
		for(int i = 0; i < n; i++)
		{
			if(s[i] != '#')
			cout << s[i];
		}
		cout << endl;
		
	}
	return 0;
}

B:
给你一个数组,要求你选定一个数,他左边递增,右边递减
可以对任意一个数进行操作,使其-1,可以操作任意次。
可以这样认为,从左到中间的max,操作之后,最坏情况就是0,1,2,3,…max,max-1…3,2,1,0
即我先选定从左到右第一个a[i] < i的为max,他左边都满足a[i] > i
看他的右边,是否都满足递减。
之后就是判断max中间这两个数会不会相等:就是说max左边是一个递增到i-1的序列,从max开始向右是一个递减的序列,
max与max左边一个数有可能相等,max从右往左的n-i-1有可能与max左侧从左往右的i-1相等。

#include 
#include 
using namespace std;
const int maxn = 3e5 + 50;
int a[maxn];
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin >> t;
	while(t--)
	{
		int n;
		cin >> n;
		for(int i = 0; i < n; i++)
		{
			cin >> a[i];
		}
		int ans = 0;//默认可以 
		int t = -1;
		for(int i = 0; i < n; i++)
		{
			if(a[i] < i)//不满足的 
			{
				t = i;
				break;
			}
		}
		if(t > 0)
		{
			for(int i = t; i < n; i++)
			{	
				if(a[i] < n - i - 1)
				{
					ans = 1;
				//	cout << "右边不满足"; 
				}
			}
			if(t-1 == n-t-1 && a[t] >= a[t-1])
			{
				ans = 1;
			//	cout << "相等";
			}
		}
		if(!ans)
		{
			cout << "Yes" << endl;
		}
		else
		{
			cout << "No" << endl;
		}
	}
	return 0;
}

你可能感兴趣的:(Codeforces Round #616 (Div. 2))