链接: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=1b​a+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相关推荐

  1. 1634C. OKEA

    C. OKEA 一道简单的数学问题,一行只能有奇数或者偶数,进行判断就行了 #include<bits/stdc++.h> using namespace std; const int N ...

  2. Codeforces 1634 C. OKEA ——简单思维

    This way 题意: 给你一个n*k的矩形,你要在每个格子里面填一个数,数的范围是[1,n*k]并且每个数只能用一次,并且对于任意的i,l,r: m e a n ( a [ i ] [ l : r ...

  3. SAP FI CO模块常用事务代码

    科目主数据维护 科目主数据维护 (集中) FS00   科目主数据维护 (帐目表中) FSP0   科目主数据维护 (公司代码下) FSS0 总帐科目凭证 输入总帐科目凭证 FB50/F-02 更改总 ...

  4. SAP CO T-Code

    事务码 描述(中英文) 0KB1 Cost Elements: Master Data Report 成本要素:主数据报告 0KB2 Activity Types: Master Data Repor ...

  5. SAP CO TCode

    事务码                                           描述(中英文) 0KB1 Cost Elements: Master Data Report 成本要素:主数 ...

  6. I MM CO T-CODE

    事务码 描述(中英文)  F.52 G/L: Acct Bal.Interest Calculation 总帐:计算科目余额利息  F-06 Post Incoming Payments 收款记帐  ...

  7. FI MM CO T-CODE

    事务码 描述(中英文)  F.52 G/L: Acct Bal.Interest Calculation 总帐:计算科目余额利息  F-06 Post Incoming Payments 收款记帐  ...

  8. T-Code (Controlling)

    事务码 描述 0KB1 Cost Elements: Master Data Report 成本要素:主数据报告 0KB2 Activity Types: Master Data Report 作业类 ...

  9. SAP CO T-Code.

    SAP CO T-Code 事务码 描述(中英文) 0KB1 Cost Elements: Master Data Report 成本要素:主数据报告 0KB2 Activity Types: Mas ...

最新文章

  1. [css] 你有用过sass中的Mixin功能吗?它有哪些作用?
  2. 如何在python中打开文件_Python文件处理:创建、打开、追加、读、写
  3. php可以用水晶报表吗,什么是水晶报表与水晶报表功能分析
  4. Dubbo搭建监控中心
  5. 会mysql不会sql_不是吧,不会有人还不知道MySQL中具实用的SQL语句
  6. Idea 集成Lombok插件
  7. 【源码】H5+JS混合实现《Just Do 8》app游戏源码分享
  8. 力扣两数之和jAVA_力扣----1.两数之和(JavaScript, Java实现)
  9. apk反编译 Android apktool下载 dex2jar下载 jd-gui下载
  10. 【重装Windows的十大理由】
  11. spark机器学习电影推荐
  12. Maven镜像(mirror)
  13. 阿里巴巴“牛逼”了,申请“行政干预”区块链专利
  14. 关于企业微信二次开发
  15. java web分层和层间数据传递 vo bo po
  16. 数学建模——五步建模法
  17. 美团点评2020校招测试方向笔试题
  18. struts2 文件上传为空
  19. Android 反编译初探-基础篇
  20. 《设计模式之禅》-建造者模式

热门文章

  1. 滴滴夜莺配置M3DB后transfer正常启动,但是端口监听失效,怎么解决?
  2. 水晶报表解决字段过长自动换行的问题
  3. 安卓熄屏快呼功能,熄屏及后台调用onKeyDown事件
  4. C#学习记录P8class-字段与方法
  5. p5.js案例(二):创意作品——USP消音版手枪模型
  6. 物联网工程实训 第 2天
  7. 盒子属性,浮动,定位
  8. Shell编程之免交互(Here Document、Expect(直接与嵌入执行))
  9. 迭代和递归的理解和区别
  10. VUE购物车总价计算