Luogu P9671 [ICPC2022 Jinan R] Identical Parity 题解
P9671 [ICPC2022 Jinan R] Identical Parity
构造题。感觉中上位黄。
对于 \(k\) 为偶数的情况,构造奇偶交替的序列。每次区间向后挪动时,最左边出去的元素和最右边进来的元素奇偶性相同,保证奇偶性不变。这样的序列一定可以构造出来,故 \(k\) 为偶数时直接输出 Yes
。
对于 \(k\) 为奇数的情况,每次区间向后挪动时,为了保证奇偶性不变,必须使最左边出去的元素和最右边进来的元素奇偶性相同。由于每一位都需要这样,所以最后一定是一段长度为 \(k\) 的奇偶序列重复多次。
由于 \(k\) 为奇数,每一段中必然会有一种奇偶性的数多 \(1\),不如假设奇数较多。如果重复了 \(m\) 整段,那么奇数比偶数多 \(m\) 个。在剩余的散段中,为了保证奇偶数的差尽量小,我们要优先使偶数在前,补齐这个差值。
注意,由于我们假定偶数比奇数少,所以偶数数量最多为 \(k\) 的向下取整的一半。如果剩余的散段在补满了偶数之后任然有空位,那么只能在加入奇数。这里需要分类讨论。
由于最开始是排列,所以奇数和偶数的差不能超过 \(1\)。如果经过以上操作之后可以满足这个条件,输出 Yes
,否则输出 No
。
#include <bits/stdc++.h>
using namespace std;
long long t,n,k;
int main()
{
scanf("%lld",&t);
while(t--)
{
scanf("%lld%lld",&n,&k);
if(k%2==0)printf("Yes\n");
else if(k%2==1)
{
if(n%k<=k/2&&(n/k-n%k)<=1)printf("Yes\n");
else if(n%k>k/2&&(n/k-k/2+(n%k-k/2))<=1)printf("Yes\n");
else printf("No\n");
}
}
return 0;
}
Luogu P9671 [ICPC2022 Jinan R] Identical Parity 题解的更多相关文章
- luogu P1549 棋盘问题(2) 题解
luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...
- 【luogu P2762 太空飞行计划问题】 题解
题目链接:https://www.luogu.org/problemnew/show/P2762 算是拍照那个题的加强下. 输入真的很毒瘤.(都这么说但好像我的过了?) #include <qu ...
- 【luogu P2146 [NOI2015]软件包管理器】 题解
题目链接:https://www.luogu.org/problemnew/show/P2146 变量名真毒瘤 我真的再也不把l,left,r,right弄反了 反向思维更好做一些 #include ...
- 【luogu P1314 聪明的质监员】 题解
题目链接:https://www.luogu.org/problemnew/show/P1314 二分答案 但是计算区间贡献的时候 直接暴力会挂 前缀和加速 #include <cstdio&g ...
- 【luogu P2590 [ZJOI2008]树的统计】 题解
题目链接:https://www.luogu.org/problemnew/show/P2590 我想学树剖QAQ #include <cstdio> #include <cstri ...
- 【luogu P3709 大爷的字符串题】 题解
题目链接:https://www.luogu.org/problemnew/show/P3709 离散化+区间众数..? #include <iostream> #include < ...
- 【luogu P4113 [HEOI2012]采花】 假题解
题目链接:https://www.luogu.org/problemnew/show/P4113 为什么要卡莫队!为什么加强的这么毒瘤! 莫队可以拿100分剩下三个点没治了 // luogu-judg ...
- 【luogu P1972 [SDOI2009]HH的项链】 题解
题目链接:https://www.luogu.org/problemnew/show/P1972 真是不懂为什么要卡莫队! #include <cmath> #include <cs ...
- 【luogu P4462 [CQOI2018]异或序列】 题解
题目链接:https://www.luogu.org/problemnew/show/P4462 ax+ax-1+...+ay = cntx+cnty 这样把一段序列变成两段相加跑莫队. #inclu ...
- 【luogu P1903 [国家集训队]数颜色】 题解
题目链接:https://www.luogu.org/problemnew/show/P1903 裸的...带修莫队... 比较麻烦吧(对我来说是的) 两个变量分开记录查询和修改操作. #includ ...
随机推荐
- 正反代理-nginx安装
参考文章:https://www.cnblogs.com/ysocean/p/9384877.html 先预祝一下成功 废话不多说,开始吧,步骤不多 下载地址 https://nginx.org/en ...
- 详细介绍Dubbo的SPI机制
一.定义 Dubbo 的 SPI (Service Provider Interface) 机制是对 Java 原生 SPI 机制的增强和扩展,提供了更强大的扩展能力 二.Dubbo SPI 核心实现 ...
- java基础之函数式接口
一.函数式接口在Java中是指:有且仅有一个抽象方法的接口,所以函数式接口就是可以适用于Lambda使用的接口 二.自定义函数式接口 格式: @FunctionalInterface //该注解可省, ...
- python 关于__init__()方法的用法
__init__()方法需要结合class一起来使用更加有效 关于__init__()的含义,查到解释是"负责对象的初始化",听起来挺懵逼的,还是结合实例来理解较好 直接看代码 c ...
- 使用 Go 构建一个最小的 API 应用
最近有项目要使用 Go 开发,作为一个. NET Core 选手,准备先撸一个包含 CRUD 的最小 MVP 项目练手. 要创建一个 TODO 应用,会创建下面这些接口: API Descriptio ...
- Bongo Cat挂机连点刷分教程(Steam版)
Bongo Cat是一个在Steam上风靡一时的游戏,通过每30分钟花费1000点击量赢取配饰并在Steam市场换取$, 这里可以用连点器刷分,最好是键盘,每30ms点击一次,点击时长30ms左右,每 ...
- stackbd:在一个块设备上堆叠另一个块设备
stackbd 是一个虚拟的块设备,它作为另一个块设备的前端,如 USB 闪存盘或循环设备.它将I/O请求传递给底层设备,同时它打印请求信息用于调试.它还有可能修改请求. 堆叠块设备(stackbd) ...
- freeswitch配置视频对接
概述 freeswitch是一款简单好用的VOIP开源软交换平台. 随着4G/5G网络的完善,视频呼叫的需求慢慢变多,本文介绍使用fs对接视频线路的配置方案. 环境 CentOS 7.9 freesw ...
- 异步IO与Tortoise-ORM的数据库
title: 异步IO与Tortoise-ORM的数据库 date: 2025/04/29 13:21:47 updated: 2025/04/29 13:21:47 author: cmdragon ...
- Spring基于注解的CRUD
目录 Spring基于注解的CRUD 代码实现 测试 方式一:使用Junit方式测试 方式二:使用@RunWith(SpringJUnit4ClassRunner.class)注解测试 Spring基 ...