2020-11-14

Codeforces Round #682 (Div. 2)

A. Specific Tastes of Andre

题意:一个非空数组的和可以被这个数组的长度整除则是一个好数组,如果一个数组的所有非空子数组都是好数组则这个数组是完美数组,给你n让你构造一个长为n的完美数组

思路:取n个相同的数

代码:

#include<stdio.h>
int main()
{
	int t,n;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		for(int i=1;i<n;i++)printf("1 ");
		printf("1\n");
	}
	return 0;
} 

B. Valerii Against Everyone

题意:给你一个长为n的数组b,则数组a为ai=2^bi,问数组a是否存在两个不相交的子区间上的和相等

1≤l1≤r1<l2≤r2≤n

al1+al1+1+…+ar1−1+ar1=al2+al2+1+…+ar2−1+ar2

思路:若数组b有两个相同的数,则肯定可以,否则需要凑,但是凑又需要两个相同的才能凑在一起,所以只有当数组b有两个相同的数的时候才是YES

代码:

#include<stdio.h>
#include<map>
using namespace std;
const int maxn=101;
int t,n,x;
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		int f=0;
		map<int,int>mp;
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&x);
			mp[x]++;
			if(mp[x]>1)f=1;
		}
		if(f)printf("YES\n");
		else printf("NO\n");
	}
	return 0;
} 

C. Engineer Artem

题意:给你一个n*m矩阵,你可以使每个数加1或者不变,让你构造出一个新的矩阵使得任意相邻的两个数不同
思路:任意数map[i] [j] 相邻的数为map[i+1] [j] map[i-1] [j] map[i] [j+1] map[i] [j-1],可以发现相邻位置上的坐标和的奇偶性是不同的,所以我们利用这个性质将奇数位置上的值改为奇数,偶数位置上的值改为偶数

代码:

#include<stdio.h>
using namespace std;
const int maxn=101;
int t,n,m,map[maxn][maxn];
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d",&n,&m);
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				scanf("%d",&map[i][j]);
				if((i+j)%2==0)
				{
					if(map[i][j]&1)map[i][j]++;
				} else if(!(map[i][j]&1))map[i][j]++;
				printf("%d ",map[i][j]);
			}
			printf("\n");
		}
	}
	return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值