题目链接:Kattis-battleship

题目大意:这道题目意思真的好坑。。

两个军队作战,互相射击对方的船,输入m,n,k,然后分别输入两个军队的地图。#表示该坐标上为船,_表示该坐标上为水。(两幅地图不相关)

给出k个射击坐标,

A先开始射击:如果A射击到B船,则继续射击。直到子弹用完 or B方无船 or A射击到水面-->则换B射击

注意: B方无船,A停止射击。

为了公平,A,B的回合次数一样,由于A先开始射击,也就是说:A射击时如果B无船了。B还能继续射击一回合而不是直接终止

==>即:把A射击x回合 + B射击y回合 当作一轮。 一轮结束后再进行结算

结算:if (ship_a == 0 || ship_b == 0) break;

另外: m 和 n 需注意不要反了

以下是代码:

#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <functional>
#include <numeric>
#include <string>
#include <set>
#include <map>
#include <stack>
#include <vector>
#include <queue>
#include <deque>
#include <list>
using namespace std;
string a[50];
string b[50];
int x[2005];
int y[2005];
int main()
{int _;cin >> _;while(_--){int n,m,t;cin >> m >> n >> t;for (int i = 0; i < n; i++) cin >> a[i];for (int i = 0; i < n; i++) cin >> b[i];int ship_a = 0, ship_b = 0;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (a[i][j] == '#') ship_a++;}}for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (b[i][j] == '#') ship_b++;}}int ans = 0;for (int i = 0; i < t; i++){cin >> x[i] >> y[i];}for (int i = 0; i < t;){//   cout << "1." << x[i] << " " << y[i] << " " << b[n - y[i] - 1][x[i]] << endl;//1.if (b[n - y[i] - 1][x[i]] == '#' && i < t){while(b[n - y[i] - 1][x[i]] == '#' && i < t){b[n - y[i] - 1][x[i]] = '_';ship_b--;if (ship_b == 0) break;i++;}i++;}else i++;//  cout << "2." << x[i] << " " << y[i] << " " << a[n - y[i] - 1][x[i]] << endl;//2.if (a[n - y[i] - 1][x[i]] == '#' && i < t){while(a[n - y[i] - 1][x[i]] == '#' && i < t){a[n - y[i] - 1][x[i]] = '_';ship_a--;if (ship_a == 0) break;i++;}i++;}else i++;if (ship_a == 0 || ship_b == 0) break;}if (ship_a ==  ship_b || (ship_a > 0 && ship_b > 0)) cout << "draw\n";else if (ship_a) cout << "player one wins\n";else cout << "player two wins\n";}return 0;
}

Kattis - battleship【模拟】相关推荐

  1. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  2. curl模拟post请求

    另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...

  3. flask_模拟请求post,get

    #coding:utf-8 import requestsres = requests.post(url="http://192.168.135.105:8888/",data={ ...

  4. 模拟内存计算如何解决边缘人工智能推理的功耗挑战

    模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...

  5. 为放大器模拟输入模块提供可靠的输入过电压保护

    为放大器模拟输入模块提供可靠的输入过电压保护 Signal Chain Basics #159: Provide robust input overvoltage protection for amp ...

  6. 模拟Servlet本质

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

  7. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计

    目录 Flink模拟双十一实时大屏统计 需求 数据 编码步骤: 1.env 2.source 3.transformation 4.使用上面聚合的结果,实现业务需求: 5.execute 参考代码 实 ...

  8. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  9. 杨老师课堂_Java核心技术下之控制台模拟文件管理器案例

    背景需求介绍: 编写一个模拟文件管理器的程序,实现控制台对文件和文件夹的管理操作. 要求在此程序中: 当用户输入指令 1 时,代表"指定关键字检索文件",此时需要用户输入检索的目录 ...

  10. 模拟文件上传(一):手动文件上传

    关于上传文件,首先我的第一个案例是一个文本文件的上传,简单容易上手! 首先我们上传文件肯定就属于实体内容部分了:所以不能过GET方式请求了,要通过POST方式请求: 因为: 1.get方式是URL传值 ...

最新文章

  1. 学习社区以及网站总结
  2. Go 语言编程 — net/http — HTTP 客户端
  3. 令人作呕的OpenSSL
  4. 【Nutch2.2.1基础教程之2.1】集成Nutch/Hbase/Solr构建搜索引擎之一:安装及运行【单机环境】...
  5. 前端综合能力系列之git与gitflow
  6. php 5.3.3 漏洞,PHP 5.3.10多个拒绝服务漏洞
  7. 数学建模清风第二次直播:模拟退火算法
  8. JavaWeb学习总结(十二):Session
  9. moss2010 sharepoint 2010配置人员搜索
  10. 77岁“核弹老人”,前后半生都令人动容!
  11. 二进制编译安装mysql_二进制编译安装mysql
  12. hp打印机怎么连接电脑_hp打印机驱动怎么安装 惠普打印机驱动程序安装方法【详解】...
  13. (转)API接口防止参数篡改和重放攻击
  14. 多个C文件共用一些变量
  15. java开发_读写txt文件操作
  16. 技术人不会学习,35 岁必然要焦虑!
  17. 字节跳动社招面试记录,java异常处理关键字
  18. sqlite 常用命令
  19. 模式分解的无损性判断
  20. excel怎么合并表格

热门文章

  1. python从某行开始读_python 读取行
  2. Windows7下IPV6设置方法详解
  3. NEXMO 发送国际短信,遇到的问题
  4. 阿里网盘rar再打包分享工具
  5. A-priori算法的优化实现
  6. 研报笔记:光大证券多因子系列1-3
  7. 【EXLIBRIS】不奪
  8. c++中char的用法详解
  9. 应聘总经理的答卷,供大家打分!(二)
  10. 莱布尼兹其实离开我们并不遥远