Codeforce 1324A——Yet Another Teteis Problem (思维)
程序员文章站
2024-03-19 15:01:58
...
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的倍数,不过没有取相邻,直接取第一个了 |
上一篇: 弱引用的使用