浪在ACM 集训队第九次测试赛

B  Battleship  

E  Masha and two friends

B 传送门

题意:

    战船上有占地n*n的房间cells[][],只由当cells[i][j]=='.'时才能够容纳水手。
已知水手需要k个连续的房间'.',可以是水平方向连续k个'.'或竖直方向的连续k个'.'。
问哪个坐标(x,y)含有最多的连续的k个房间,如果不存在,输出任意坐标。

题解:

  我的做法:暴力

  求出每个坐标最多含有多少种容纳水手的方式,找到最大的。

  具体细节看代码:

 #include<iostream>
#include<cstdio>
using namespace std;
const int maxn=+; int n,k;
char cells[maxn][maxn]; int Find(int a,int b,int c)
{
int res=;
while(a <= c)
{
if(a+k- >= c && a+k- <= b)
res++;
a++;
}
return res;
}
int update(int curX,int curY)//查找(curX,curY)含有的解
{
int upX=curX,downX=curX;
while(upX- >= && cells[upX-][curY] == '.')
upX--;
while(downX+ <= n && cells[downX+][curY] == '.')
downX++; int leftY=curY,rightY=curY;
while(leftY- >= && cells[curX][leftY-] == '.')
leftY--;
while(rightY+ <= n && cells[curX][rightY+] == '.')
rightY++; int res=Find(upX,downX,curX);
res += Find(leftY,rightY,curY);
return res;
}
void Solve()
{
int res=;
int x=,y=;
for(int i=;i <= n;++i)
for(int j=;j <= n;++j)
{
if(cells[i][j] != '.')
continue;
int curRes=update(i,j);
if(res < curRes)
{
res=curRes;
x=i,y=j;
}
}
printf("%d %d\n",x,y);
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=;i <= n;++i)
scanf("%s",cells[i]+);
Solve(); return ;
}

题目来源:CodeForces - 965B

E 传送门

  题解

2018.12.14 浪在ACM 集训队第九次测试赛的更多相关文章

  1. 2018.12.21 浪在ACM 集训队第十次测试赛

     浪在ACM 集训队第十次测试赛 A Diverse Substring B Vasya and Books C Birthday D LCM A 传送门 题解 B 传送门 题解: 这道题,就比较简单 ...

  2. 2018.10.2浪在ACM 集训队第二次测试赛

    2018.10.26 浪在ACM 集训队第二次测试赛 题目一览表 来源 考察知识点 A 1273 海港 NOIP 普及组 2016 差分数组+二分 B 1274 魔法阵     C 1267 金币   ...

  3. 2018.10.26 浪在ACM 集训队第二次测试赛

    2018.10.26 浪在ACM 集训队第二次测试赛 整理人:苗学林 A海港 参考博客:[1]:李继朋https://www.cnblogs.com/violet-acmer/p/9859006.ht ...

  4. 2018.12.7 浪在ACM 集训队第八次测试赛

    2018.12.7 浪在ACM 集训队第八次测试赛  https://blog.csdn.net/QLU_minoz/article/details/84886717   感谢苗学林同学C题和D题题解 ...

  5. 2018.10.26 浪在ACM 集训队第四次测试赛

    2018.10.26 浪在ACM 集训队第四次测试赛 题目一览表 来源 考察知识点 完成时间 A 生活大爆炸版 石头剪刀布  NOIP 提高组 2014   模拟???  2018.11.9 B 联合 ...

  6. 2018.10.2浪在ACM 集训队第三次测试赛

    2018.10.26 浪在ACM 集训队第三次测试赛 今天是暴力场吗???????可怕 题目一览表 来源 考察知识点 完成时间 A 1275 珠心算测试 NOIP 普及组 2014 暴力??? 201 ...

  7. 2018.10.19浪在ACM 集训队第一次测试赛

    2018.10.19浪在ACM 集训队第一次测试赛 待参考资料: [1]:https://blog.csdn.net/XLno_name/article/details/78559973?utm_so ...

  8. 2018.11.23 浪在ACM 集训队第六次测试赛

    2018.11.23 浪在ACM 集训队第六次测试赛 整理人:刘文胜 div 2: A: Jam的计数法 参考博客:[1] 万众 B:数列 参考博客: [1] C:摆花 参考博客: [1] D:文化之 ...

  9. 2018.11.16 浪在ACM 集训队第五次测试赛

    2018.11.16 浪在ACM 集训队第五次测试赛 整理人:李继朋 Problem A : 参考博客:[1]朱远迪 Problem B : 参考博客: Problem C : 参考博客:[1]马鸿儒 ...

随机推荐

  1. python数学第六天【指数族】

  2. 遍历map中的内容

    Map<String, CartItem> cartItems = cart.getCartItems();for(Map.Entry<String, CartItem> en ...

  3. 【C/C++】c文件重点总结

    c文件重点知识总结 程序文件数据文件--->分文本文件(ASCII文件)和映像文件(二进制文件) .区分是用记事本打开后能否看懂. 用二进制文件读写花费时间少,因为用文本文件需要有一个转换的过程 ...

  4. Javascript和Jquery语法对比总结

    目的 相信大家都知道jq是js的一个类库,是为了方便我们开发前端,但是笔者在刚开始学习js和jq时经常将两者的语法记混和混用,所以整理下两者实现相同功能之前的语法区别. 声明变量 javascript ...

  5. 第二十一天,pickle json xml shelve configparser模块

    今日内容 1.pcikle 专用于python语言的序列化 2.json 是一种跨平台的数据格式 也属于序列化的一种方式 3.xml 可拓展标记语言 一种编写文档的语法 也支持跨平台 比较json而言 ...

  6. Matplotlib学习---用matplotlib画饼图/面包圈图(pie chart, donut chart)

    我在网上随便找了一组数据,用它来学习画图.大家可以直接把下面的数据复制到excel里,然后用pandas的read_excel命令读取.或者直接在脚本里创建该数据. 饼图: ax.pie(x,labe ...

  7. bzoj 2761: [JLOI2011]不重复数字 (map||Treap)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2761 思路: map标记 实现代码: #include<bits/stdc++.h&g ...

  8. 爬虫_古诗文网(队列,多线程,锁,正则,xpath)

      import requests from queue import Queue import threading from lxml import etree import re import c ...

  9. LOJ #2537. 「PKUWC 2018」Minimax (线段树合并 优化dp)

    题意 小 \(C\) 有一棵 \(n\) 个结点的有根树,根是 \(1\) 号结点,且每个结点最多有两个子结点. 定义结点 \(x\) 的权值为: 1.若 \(x\) 没有子结点,那么它的权值会在输入 ...

  10. CS Academy Gcd on a Circle(dp + 线段树)

    题意 给你一个长为 \(n\) 的环,你可以把它断成任意 \(k\) 段 \((1 < k \le n)\) ,使得每一段的 \(\gcd\) 都 \(>1\) . 问总共有多少种方案,对 ...