浪在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学习自修第十一天【内置函数】

    1.基本内置函数 help() 帮助文档 dir() 列出当前文件的所有变量和方法 vars() 列出当前文件的所有变量及其值 type() 返回变量的类型 id() 返回变量的内存地址 len() ...

  2. SSM+shiro,所有配置文件,详细注释版,自用

    spring配置文件applicationContext.xml,放在resources下 <?xml version="1.0" encoding="UTF-8& ...

  3. orecal基本连接数据库简介

    整理自互联网 一. jdbc:oracle:thin:@192.168.3.98:1521:orcljdbc:表示采用jdbc方式连接数据库oracle:表示连接的是oracle数据库thin:表示连 ...

  4. vim的几个常用操作

    现在很少会有人用vim来写代码,所以vim更常用在server上面编辑配置文件或者少量代码编辑: vim操作命令非常之多,如果仅用作一个配置文件的编辑器,掌握几个常用的操作就够了: 常用的操作其实就是 ...

  5. How to ssh

    ssh -p 22 cuthead@127.0.0.1

  6. 包packages

    packages里面如何跨模块导入路径: print(dir()) 可以看到__file__ print(os.path.abspaht(__file__)) 可以看到当前绝对路径 import sy ...

  7. JarvisOJ BASIC 德军的密码

    已知将一个flag以一种加密形式为使用密钥进行加密,使用密钥WELCOMETOCFF加密后密文为 000000000000000000000000000000000000000000000000000 ...

  8. 【XSY2787】Mythological VII 贪心

    题目描述 有两个指针\(l,r\),初始时\(l=r=k\) 给你\(a_1,\ldots,a_n\),你要移动\(l,r\),\(l\)只能每次向左移一个数,\(r\)只能向右移一个数,要求任意时刻 ...

  9. 【CF633D】Fibonacci-ish

    题目描述 小y最近迷上了fibonacci数列,他定义了一种数列叫类fibonacci数列: 1.这个数列包含至少\(2\)个元素 2.\(f_0\)和\(f_1\)是任意选取的 3.\(f_{n+2 ...

  10. 数字平滑 前端插件JS&CSS库

    CDN DEMO 拷贝可用: <!DOCTYPE html> <link rel="stylesheet" href="https://cdn.boot ...