题目大意:(来源)

t组输入,每组输入一个s
你需要输出一个r行c列的阵列,这个阵列中‘X’代表炸弹,‘.’表示没有炸弹
对于‘.’这些位置都会有一个数值,这个值取决于这个位置附近8个位置,这8个位置一共有几个炸弹,那么这个数值就是多少
你输出的r行c列阵列要满足将所有‘.’位置的数值加起来之和要等于s

解题思路:

有点蠢把,本来以为1000个不能恰好有125个8,结果发现放的方法错了,只要每个放雷的格子之间隔着放就行了(不用隔两个)
官方题解:

AC代码:

#include <bits/stdc++.h>
using namespace std;
int T, S, r, c;
char p[50][50];
int read() {int X = 0, p = 1;char c = getchar();for (; c > '9' || c < '0'; c = getchar()) if (c == '-') p = -1;for (; c <= '9' && c >= '0'; c = getchar()) X = X * 10 + c - '0';return X * p;
}
int main() {T = read();while (T--) {memset(p, 0, sizeof(p));S = read();if (S == 0) {printf("1 1\n.\n");continue;}else if (S <= 24) {r = 1, c = S + 1;for (int i = 1; i <= c; i++) {if (i & 1) p[r][i] = 'X';else p[r][i] = '.';}} else {r = 25, c = 25;for (int i = 1; i <= r; i++)for (int j = 1; j <= c; j++)p[i][j] = '.';int a = 0, b = 0, cnt_a = 0, cnt_b = 0;for (; 8 * a <= S; a++)if ((S - 8 * a) % 3 == 0 && (S - 8 * a) / 3 < 8) {b = (S - 8 * a) / 3;break;}if (a)for (int i = 2; i <= r && cnt_a < a; i += 2)for (int j = 2; j <= c && cnt_a < a; j += 2, cnt_a++) {p[i][j] = 'X';}if (b) for (int i = c; i >= 1 && cnt_b < b; i--, cnt_b++) p[r][i] = 'X';}printf("%d %d\n", r, c);for (int i = 1; i <= r; i++)for (int j = 1; j <= c; j++) {printf("%c", p[i][j]);if(j == c) printf("\n");}}return 0;
}

杭电多校2020 第十场 C - Mine Sweeper HDU - 6879相关推荐

  1. 2022杭电多校赛第八场

    2022杭电多校赛第八场 文章目录 2022杭电多校赛第八场 1004.Quel'Thalas 1001.Theramore 1011.Stormwind 1008.Orgrimmar 1005.Ir ...

  2. 2021杭电多校补题——第一场

    2021杭电多校补题--第一场 文章目录 Mod, Or and Everything Rocket land(待补) Puzzle loop(待补) Another thief in a Shop( ...

  3. 【杭电多校2020】第八场1003.Clockwise or Counterclockwise

    题目链接 思路: 如果输出结果是顺时针则叉积方向向内,当结果是逆时针时叉积方向向外. 代码: #include<bits/stdc++.h> #define int long long # ...

  4. HDU 5762 Teacher Bo (鸽笼原理) 2016杭电多校联合第三场

    题目:传送门. 题意:平面上有n个点,问是否存在四个点 (A,B,C,D)(A<B,C<D,A≠CorB≠D)使得AB的横纵坐标差的绝对值的和等于CD的横纵坐标差的绝对值的和,n<1 ...

  5. 【杭电多校2020】Go Running【几何】【最小点覆盖】

    题意:有一个数轴,若干人在某个时刻开始从某个点朝某个方向按111的速度走若干时间.已知nnn个条件,形如tit_iti​时刻xix_ixi​的位置有人,求最少可能的人数. ∑n≤5×105\sum n ...

  6. 【杭电多校2020】Lead of Wisdom【搜索】【复杂度证明】

    题意:nnn件物品,每种物品有一个种类tit_iti​,四个属性ai,bi,ci,dia_i,b_i,c_i,d_iai​,bi​,ci​,di​,每个种类最多选一件物品,求 (100+∑ai)(10 ...

  7. 【杭电多校2020】Total Eclipse【贪心】【并查集】

    题意:nnn个点mmm条边的无向图,每个点有一个正点权,每次选择一个连通子图,将里面的权值都减111.求所有点权为000的最小步数. T≤10,n≤105,m≤2×105T\leq 10,n\leq ...

  8. 【杭电多校2020】Fibonacci Sum【斐波拉契通项】【推式子】

    题意:设FiF_iFi​为斐波拉契数列,求 ∑i=0N(FiC)k\sum_{i=0}^N(F_{iC})^ki=0∑N​(FiC​)k 模109+910^9+9109+9 N,C≤1018,k≤10 ...

  9. 【杭电多校2020】Minimum Index【Lyndon Word】

    题意:给定字符串,求所有前缀的最小后缀. n≤2×107n\leq 2\times10^7n≤2×107 最小后缀就是Lyndon分解的最后一段.而Duval本质上是可以重复修改的增量算法,所以是可以 ...

最新文章

  1. python迭代数据类型_在大型数据集上自动迭代推断数据类型和最小项大小
  2. 关于解释List<Integer> list = new ArrayList<Integer>()
  3. Ubuntu下QT的安装详细教程
  4. java 反射api_个人编程学习网 - Java-操作反射其他的API
  5. html 移动app开发
  6. UVA11777 Automate the Grades【水题】
  7. ASP.NET 首页性能的4大做法
  8. linux基础及网新运维,Linux运维工程师常用到的Linux基础命令(一)
  9. vscode git提交步骤
  10. Elasticsearch docker中搭建ES服务集群,ik中文分词器,使用Kibana操作ES 搜索 spring Data Elasticsearch-增删改查API
  11. mt管理器错误信息java_DEX编辑
  12. edp接口规范_EDP接口是什么接口?EDP是什么的缩写?
  13. H5 video 自动播放(autoplay)不生效解决方案
  14. 74hc165C语言程序,74hc165级联用法(74hc165级联电路图及程序)
  15. MyBatis一发入魂(一)
  16. C# 修改本地以太网ip地址
  17. Adversarial validation
  18. conda虚拟环境pip装包总装载总环境中解决办法
  19. Linux中kil命令和pkill命令的区别
  20. java jdk 在哪_java jdk在哪

热门文章

  1. 对称图形输出问题的思考(例如pta打印沙漏)
  2. 玩偶奇兵剧情在线观看
  3. 几种存储过程的调用方法
  4. 云安全三大趋势:纵深防御、软件定义安全、设备虚拟化
  5. 很多人遇到过3194错误的解决方法,100%有效!
  6. 飞桨开源深度学习平台介绍
  7. 中国知网如何下载pdf格式的文献
  8. 电脑突然乱码,是黑客入侵?一招教你完美解决
  9. 名编辑电子杂志大师教程 | 把电子杂志嵌入网页
  10. 云物大智题库--物联网