CF1634C OKEA
链接:CF1634C OKEA
题意:将 1 1 1 到 n × k n\times k n×k 的正整数排成 n n n 行 k k k 列,使得每一行 k k k 个数所有子串的平均数都为整数。
题解
先大胆猜一下,要求这么苛刻的话合法的情况一定不多,经推导果然是这样。
要求所有子串的平均数都为整数,其实可以只看相邻两数。要求所有相邻两数平均数为整数,也就是要求它们奇偶性相同(两数之和能够被 2 2 2 整除)。因此我们可以推导出,每一行的数都分别奇偶性相同。
但因为要填的数是连续正整数,奇偶数的数量之间最多只会相差 1 1 1,因此如果在 k > 1 k>1 k>1 的情况下 n n n 不是偶数,就一定无法满足每一行的数都分别奇偶性相同的要求(此时需要的奇偶数数量差为 k k k)。而当 k = 1 k=1 k=1 的时候,或 k > 1 k>1 k>1 但 n n n 是偶数的时候一定有解(后者为什么有解构造一下即可)。
那么来看如何构造。
当 k = 1 k=1 k=1 的时候,可以直接按顺序输出 1 1 1 到 n n n。
而当 k > 1 k>1 k>1 时,由于要求每一行的数都分别奇偶性相同,所以把所有的奇数排成 k 2 \frac{k}{2} 2k 行,所有的偶数排成 k 2 \frac{k}{2} 2k 行。别忘了除了要求相邻两数平均数为整数,还要求连续任意个数平均数都为整数。而直接按顺序排恰好能够满足这个要求:
设连续 b b b 个奇偶性相同的数,开头的数为 a a a,则平均数为:
∑ i = 1 b a + 2 ( i − 1 ) b = a b + b ( b − 1 ) b = a + b − 1 \frac{\sum_{i=1}^{b}a+2(i-1)}{b}=\frac{ab+b(b-1)}{b}=a+b-1 b∑i=1ba+2(i−1)=bab+b(b−1)=a+b−1
可以证明其为整数。
综上,对输入分类讨论即可。
代码
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
int t,n,k;
int main(){scanf("%d",&t);while(t--){scanf("%d%d",&n,&k);if(n%2&&k>1){puts("NO");continue;}else{puts("YES");if(k==1){for(int i=1;i<=n;++i)printf("%d\n",i);}else{int cnt=0;for(int i=1;i<=n*k;i+=2){printf("%d",i),cnt++;if(cnt==k) puts(""),cnt=0;else printf(" ");}for(int i=2;i<=n*k;i+=2){printf("%d",i),cnt++;if(cnt==k) puts(""),cnt=0;else printf(" ");}}}}return 0;
}
CF1634C OKEA相关推荐
- 1634C. OKEA
C. OKEA 一道简单的数学问题,一行只能有奇数或者偶数,进行判断就行了 #include<bits/stdc++.h> using namespace std; const int N ...
- Codeforces 1634 C. OKEA ——简单思维
This way 题意: 给你一个n*k的矩形,你要在每个格子里面填一个数,数的范围是[1,n*k]并且每个数只能用一次,并且对于任意的i,l,r: m e a n ( a [ i ] [ l : r ...
- SAP FI CO模块常用事务代码
科目主数据维护 科目主数据维护 (集中) FS00 科目主数据维护 (帐目表中) FSP0 科目主数据维护 (公司代码下) FSS0 总帐科目凭证 输入总帐科目凭证 FB50/F-02 更改总 ...
- SAP CO T-Code
事务码 描述(中英文) 0KB1 Cost Elements: Master Data Report 成本要素:主数据报告 0KB2 Activity Types: Master Data Repor ...
- SAP CO TCode
事务码 描述(中英文) 0KB1 Cost Elements: Master Data Report 成本要素:主数 ...
- I MM CO T-CODE
事务码 描述(中英文) F.52 G/L: Acct Bal.Interest Calculation 总帐:计算科目余额利息 F-06 Post Incoming Payments 收款记帐 ...
- FI MM CO T-CODE
事务码 描述(中英文) F.52 G/L: Acct Bal.Interest Calculation 总帐:计算科目余额利息 F-06 Post Incoming Payments 收款记帐 ...
- T-Code (Controlling)
事务码 描述 0KB1 Cost Elements: Master Data Report 成本要素:主数据报告 0KB2 Activity Types: Master Data Report 作业类 ...
- SAP CO T-Code.
SAP CO T-Code 事务码 描述(中英文) 0KB1 Cost Elements: Master Data Report 成本要素:主数据报告 0KB2 Activity Types: Mas ...
最新文章
- [css] 你有用过sass中的Mixin功能吗?它有哪些作用?
- 如何在python中打开文件_Python文件处理:创建、打开、追加、读、写
- php可以用水晶报表吗,什么是水晶报表与水晶报表功能分析
- Dubbo搭建监控中心
- 会mysql不会sql_不是吧,不会有人还不知道MySQL中具实用的SQL语句
- Idea 集成Lombok插件
- 【源码】H5+JS混合实现《Just Do 8》app游戏源码分享
- 力扣两数之和jAVA_力扣----1.两数之和(JavaScript, Java实现)
- apk反编译 Android apktool下载 dex2jar下载 jd-gui下载
- 【重装Windows的十大理由】
- spark机器学习电影推荐
- Maven镜像(mirror)
- 阿里巴巴“牛逼”了,申请“行政干预”区块链专利
- 关于企业微信二次开发
- java web分层和层间数据传递 vo bo po
- 数学建模——五步建模法
- 美团点评2020校招测试方向笔试题
- struts2 文件上传为空
- Android 反编译初探-基础篇
- 《设计模式之禅》-建造者模式