当前位置:网站首页>B.刷墙(C语言)
B.刷墙(C语言)
2022-06-12 11:35:00 【漠–】
题目


思路
首先,从题目中我们可以得到:
······奇偶性相同的两个数可以通过添加积木使值也相同
······相邻的两个相等的数可以同时改变奇偶性(即给上面加一块横着的积木)
从而,我们可以得到:
······奇数个奇偶性相同的两个数不可能变成完全相等的几个数
······偶数个奇偶性相同的两个数可以变成完全相等的几个数
所以:
······奇偶性相同的两个数之间的数为偶数个时,那么这两个数和他们中间的每一个数都变成相等的数
······奇偶性相同的两个数之间的数为奇数个时,那么这两个数和他们中间的每一个数不能完全变成相等的数
所以问题就变成了:
······判断两个奇偶性相同的数之间是否为偶数个,如果是,那么这一片区域的墙可以一样高(也就是说这片区域的墙可以任意高,加积木就可以改变高度),反之不能。
具体实现:
分为两种情况:
最后墙的高度要变成奇数:寻找都为奇数的两个节点,判断他们之间的数是否为偶数个,如果是,就继续寻找下面两个奇数节点,继续判断,直到全部都是偶数个时,墙可以一样高;如果不是,墙就不可能一样高。
偶数同理。
偶数和奇数的情况只要满足一种,墙就可以一样高
注意:可能有人会问,当前两个奇数节点和下面两个奇数节点之间的奇数节点怎么算,其实,直接竖着加若干个积木,可以变为任意奇数值;偶数节点也一样。所以这些节点不用管。
代码
#include<stdio.h>
int n;
int a[500000];
int judge(int x);
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
if(judge(1)||judge(0)){
printf("YES");
}else{
printf("NO");
}
}
int judge(int x)
{
int index=-1;
for(int i=0;i<n;i++){
if(a[i]%2==x){
continue;
}
if(index!=-1){
int len=i-index-1;
if(len%2==1){
return 0;
}
index=-1;
}else{
index=i;
}
}
return index==-1;
}
边栏推荐
- 信号继电器RXSF1-RK271018DC110V
- 你需要社交媒体二维码的21个理由
- manuscript手稿格式准备
- VirtualBox 虚拟机因系统异常关机虚拟机启动项不见了
- K52. Chapter 1: installing kubernetes v1.22 based on kubeadm -- cluster deployment
- Shardingjdbc-5.1.0 monthly horizontal table splitting + read-write separation, automatic table creation and node table refresh
- 35. 搜索插入位置
- scanf返回值被忽略的原因及其解决方法
- ioremap
- C# 36. DataGridView行号
猜你喜欢
随机推荐
AI - face
Byte order - how to judge the big end and the small end
C# 37. textbox滚动条与多行
rosbridge使用案例心得总结之_第26篇在同一个服务器上打开多个rosbridge服务监听端口
【藍橋杯單片機 國賽 第十一届】
Windows10 install mysql-8.0.28-winx64
DS18B20 digital thermometer (I) electrical characteristics, parasitic power supply mode and remote wiring
MySQL - built in function
Postman incoming list
【clickhouse专栏】基础数据类型说明
AcWing 1921. Rearranging cows (ring diagram)
LVS health state detection based on application layer
selenium使用代理IP
AcWing 1986. Mirror (simulation, ring diagram)
mysql的悲观锁和乐观锁
Simple solution of regular expression
十折交叉验证代码中的问题
When you have a server
Summary of rosbridge use cases_ Chapter 26 opening multiple rosbridge service listening ports on the same server
AcWing 1995. Meet and greet (simulation)








