欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-19 15:01:58
...

Codeforce 1324A Yet Another Teteis Problem

题目
Codeforce 1324A——Yet Another Teteis Problem (思维)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");
	}
}

再看看大佬们的优质代码

代码 思路
Codeforce 1324A——Yet Another Teteis Problem (思维) 这个的思路就是看输入的是不是全是奇数或者全是偶数,用了两个bool变量,比较巧妙
Codeforce 1324A——Yet Another Teteis Problem (思维) 这个思路和的我的比较类似,都是来判断两个数的差是不是2的倍数,不过没有取相邻,直接取第一个了