题目大意:有$k$种颜色,要求构造出一个$n\times n$的矩阵,填入这$k$种颜色,满足对于每一种颜色,其中填充这种颜色的每一个方格,满足其相连的四个格子的颜色的个数和种类相同(对于每一种颜色而言,即不同颜色之间没有关系)。要求$n\leqslant500$。$k\leqslant 1000$

题解:这个真的只能看题解,题解神仙

先考虑$k=4a(a\in\mathbb{N^*})$,令$n=\dfrac k2$,$(x,y)$填的数为:当$x\equiv0\pmod2$是时为$(x+y)\bmod n$,否则为$n+((x+y)\bmod n)$。

然后题解说,其他情况时,令$n=2\left\lceil\dfrac n4\right\rceil$,构造出$k=2n$时的答案,然后把所有大于$k$的数减去$n$就是答案。

卡点:

C++ Code:

#include <cstdio>
#include <iostream> int n, k;
int main() {
std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);
std::cin >> k;
if (k == 1) { std::cout << "1\n1\n"; return 0; }
std::cout << (n = k + 3 >> 2 << 1) << '\n';
for (int i = 0; i < n; ++i, std::cout.put('\n'))
for (int j = 0, t; j < n; ++j)
t = (i + j) % n + 1 + (i & 1) * n,
std::cout << (t > k ? t - n : t) << ' ';
return 0;
}

  

最新文章

  1. Linux环境变量设置
  2. Download Excel file with Angular
  3. OpenCV绘图
  4. 远程执行shellcode
  5. Spark常用函数(源码阅读六)
  6. LogNet4日志框架使用
  7. 4.CXF所支持的数据类型
  8. SQLite事务管理
  9. TesserOCR训练
  10. (转)jQuery验证控件jquery.validate.js使用说明+中文API
  11. nginx日志管理与限速
  12. 对浏览器css兼容性的学习理解及问题解决汇总
  13. GPRS优点介绍及GPRS上网相关知识(转)
  14. trigger和triggerhandler的区别
  15. maven:pom.xml中没有dependency标签错误
  16. vue PC端项目中解决userinfo问题
  17. iOS UI基础-9.0 UITableView基础
  18. Python学习笔记第十四周
  19. SFM(structure from motion)学习记录(一)
  20. Zuul Read Time out 错误

热门文章

  1. 复旦高等代数I(19级)每周一题
  2. kernel 获取ntoskrnl.exe基址
  3. kubernetes --- weave
  4. 【Gamma阶段】第三次Scrum Meeting
  5. Django纪要
  6. Intellij idea利用Statistic插件统计项目代码行数
  7. 013 mint-ui
  8. SVN 从主干合并到分支库
  9. Linux如何将未分配的硬盘挂载出来
  10. 【PHP】 PHP中插件机制的一种实现方案