Codeforce 1324A——Yet Another Teteis Problem (思维)

Codeforce 1324A Yet Another Teteis Problem

题目
在这里插入图片描述在这里插入图片描述在这里插入图片描述

题目大意:
这个打比赛的时候,读题很重要啊,,,开始不懂题意,浪费了好长时间,,
这个题的大致意思就是,给你一个数组,每个数的值就代表方块的个数,每次下落的方块都是2*1 的样子,和俄罗斯方块的规则一样,那一行填满就可以消去,问你给出的示例能不能消去

题目分析:
我们想,每次都会下落2*1的方块,对应的数组里的数a=a+2,所以,只要所有的数相差2的倍数就可以被消去。

AC代码

// https://codeforces.com/problemset/problem/1324/A 
#include<stdio.h>
#include<stdlib.h>
#include<cmath>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int t,a[200],n;

int main(){
	scanf("%d",&t);
	while(t--){
		int mark = 1;
		scanf("%d",&n);
		for(int i=0;i<n;i++){
			scanf("%d",&a[i]);
		}
		sort(a,a+n);
		for(int i=0;i<n-1;i++){
			if((a[i]-a[i+1])%2!=0){
			//如果可以消去,那么相邻的差都可以被2整除
				mark = 0;
				break;
			}
		}
		if(mark==1)
		printf("YES\n");
		else
		printf("NO\n");
	}
}

再看看大佬们的优质代码

代码 思路
在这里插入图片描述 这个的思路就是看输入的是不是全是奇数或者全是偶数,用了两个bool变量,比较巧妙
在这里插入图片描述 这个思路和的我的比较类似,都是来判断两个数的差是不是2的倍数,不过没有取相邻,直接取第一个了
发布了50 篇原创文章 · 获赞 50 · 访问量 2729

猜你喜欢

转载自blog.csdn.net/weixin_45691686/article/details/104833537