https://vjudge.net/problem/HDU-6879

题意:

给定S,r,c

构造一个r行c列的阵列。

对于没有炸弹的位置的数值为位置附近8个位置炸弹总数

保证炸弹总数S

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<bitset>
#include<cassert>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<deque>
#include<iomanip>
#include<list>
#include<map>
#include<queue>
#include<set>
#include<stack>
#include<vector>
#include <vector>
#include <iterator>
#include <utility>
#include <sstream>
#include <limits>
#include <numeric>
#include <functional>
using namespace std;
#define gc getchar()
#define mem(a) memset(a,0,sizeof(a))
#define debug(x) cout<<"debug:"<<#x<<" = "<<x<<endl; #define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pii;
typedef char ch;
typedef double db; const double PI=acos(-1.0);
const double eps=1e-6;
const int inf=0x3f3f3f3f;
const int maxn=1e5+10;
const int maxm=100+10;
const int N=1e6+10;
const int mod=1e9+7; const int dir[8][2] = {1, 0, 0, 1, -1, 0, 0, -1, -1, -1, -1, 1, 1, -1, 1, 1};
map< int, vector< vector<char> > > M;
int n = 0;
int main()
{
srand((int) time(0));
int T = 0;
cin >> T;
int random = 0;
int chg = 0; for (int I = 1; I<=50000;I++)
{
random = (rand() % 25) + 1;
chg = (rand() % 25) + 1;
vector< vector<char> > A(random, vector<char>(chg));
for(int i = 0;i<random;i++)
{
for(int j = 0;j<chg;j++)
{
if((rand()%2))
{
A[i][j] = 'X';
}
else
{
A[i][j] = '.';
} }
}
random = A.size();
chg = A[0].size();
int S = 0;
for(int i = 0;i<random;i++)
{
for(int j = 0;j<chg;j++)
{
if (A[i][j] == '.')
{
int counter = 0;
for (int L = 0;L<8;L++)
{
int dx = i + dir[L][0];
int dy = j + dir[L][1];
if ( (dx >= 0 && dx <= random-1) && (dy >= 0 && dy <= chg-1) )
{
if(A[dx][dy] == 'X')
{
counter++;
}
}
}
S += counter;
}
}
}
M[S] = A;
} while(T--)
{
cin >> n;
vector< vector<char> > A = M[n]; random = A.size();
chg = A[0].size();
cout << random << " " << chg << endl;
for (int i = 0;i<random;i++)
{
for (int j = 0;j<chg;j++)
{
cout << A[i][j];
if(j == chg - 1) cout << endl;
}
}
}
return 0;
}

  

C - Mine Sweeper的更多相关文章

  1. poj 2612 Mine Sweeper

    Mine Sweeper Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6429   Accepted: 2500 Desc ...

  2. 2020杭电多校 10C / HDU 6879 - Mine Sweeper (构造)

    HDU 6879 - Mine Sweeper 题意 定义<扫雷>游戏的地图中每个空白格子的值为其周围八个格子内地雷的数量(即游戏内临近地雷数量的提示) 则一张地图的值\(S\)为所有空白 ...

  3. ICPC2020上海B - Mine Sweeper II

    思维 [B-Mine Sweeper II_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)(重现赛)@hzy0227 (nowcoder.com)](https://codeforc ...

  4. 2020杭电多校 C / HDU 6879 - Mine Sweeper

    题意: t组输入,每组输入一个s 你需要输出一个r行c列的阵列,这个阵列中'X'代表炸弹,'.'表示没有炸弹 对于'.'这些位置都会有一个数值,这个值取决于这个位置附近8个位置,这8个位置一共有几个炸 ...

  5. 多级弹出菜单jQuery插件ZoneMenu

    ZoneMenu是一个菜单jQuery插件,只需占用页面上的一个小区域,却可以实现多级菜单. 在线体验:http://keleyi.com/jq/zonemenu/ 点击这里下载 完整HTML文件代码 ...

  6. HOJ题目分类

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  7. 中英文代码对比系列之Java一例

    原文: https://zhuanlan.zhihu.com/p/30905033. 作者为本人. 这个系列将对同一段代码进行中文命名和英文命名两个版本的比较. 目的包括, 演示中文命名, 发现命名时 ...

  8. 2017-11-09 中英文代码对比系列之Java一例

    原文: https://zhuanlan.zhihu.com/p/30905033. 作者为本人. 这个系列将对同一段代码进行中文命名和英文命名两个版本的比较. 目的包括, 演示中文命名, 发现命名时 ...

  9. FZU1920 Left Mouse Button(dfs)

     Problem 1920 Left Mouse Button Accept: 385    Submit: 719 Time Limit: 1000 mSec    Memory Limit : 3 ...

  10. [转]分享20佳好玩的 jQuery 游戏

    本文转自:http://www.cnblogs.com/lhb25/archive/2011/04/17/2001089.html jQuery是时下最流行的 JavaScript 库.现在,除了HT ...

随机推荐

  1. cf 870div2 abcd题解

    A题,先假设一个res从0开始,判断说谎人的个数用ans表示,如果res==ans则假设成立 #include<iostream> using namespace std; typedef ...

  2. odoo14的qweb打印单样式丢失问题

    问题:在开发odoo14的打印单过程中:Wkhtmltopdf打印插件已安装的情况下,发现样式丢失了,如下图 问题的原因: 1.可能是外网与内网服务转换时候造成的样式丢失,有时候是端口不一致导致的某些 ...

  3. Linux下如何使用perf/gdb/pstack分析性能与问题排查

    本文分享自天翼云开发者社区<Linux下如何使用perf/gdb/pstack分析性能与问题排查>,作者:5****m 在Linux系统中,perf.gdb和pstack是三个常用的性能分 ...

  4. 使用wxWidgets进行跨平台GUI开发(附1)

    补充说明wxWidgets在Windows下使用CMake的配置 wxWidgets官方提供了一个在Windows下使用CMake来构建wxWidgets库的方法,这样便于你自己用CMake构建项目. ...

  5. 指标管理+AI大模型深度融合,开启智能数据分析管理新时代

    随着企业数字化转型的加速,数据管理和分析变得越来越重要.传统的指标管理平台虽然已经能够帮助企业有效地收集.计算.管理和展示关键指标,但在业务分析层面,面对日益复杂的数据环境和业务需求,单纯依靠人工分析 ...

  6. HarmonyOS NEXT仓颉开发语言实战案例:健身App

    各位好,今日分享一个健身app的首页: 这个页面看起比之前的案例要稍微复杂一些,主要在于顶部部分,有重叠的背景,还有偏移的部分.重叠布局可以使用Stack容器实现,超出容器范围的偏移可以使用负数间距来 ...

  7. 使用Roslyn运行C#脚本时如何引用程序集

    使用Roslyn的CSharpScript类运行C#脚本时,会默认包含一部分程序集,默认包含的程序集引用可以直接使用,而其他程序集则需要额外提供引用.本文简单描述了使用Roslyn的CSharpScr ...

  8. java set TreeSet详解

    TreeSet 是sortedSet的唯一实现类,正如SortedSet名字暗示,TreeSet可以让集合元素处在排好序的状态. 与HashSet相比,TreeSet还额外提供了以下的方法(列出来,混 ...

  9. Docker 一键安装部署 JumpServer 堡垒机

    一.环境准备 bash   # 更新系统 sudo apt update && sudo apt upgrade -y # 安装 Docker sudo apt install -y ...

  10. .NET周刊【6月第5期 2025-06-29】

    国内文章 为什么说方法的参数最好不要超过4个? https://www.cnblogs.com/lmy5215006/p/18919081 本文探讨了调用协定的概念,包括参数传递方式.栈清理和寄存器使 ...