P2867 [USACO06NOV]大广场Big Square

题目描述

Farmer John's cows have entered into a competition with Farmer Bob's cows. They have drawn lines on the field so it is a square grid with N × N points (2 ≤ N ≤ 100), and each cow of the two herds has positioned herself exactly on a gridpoint. Of course, no two cows can stand in the same gridpoint. The goal of each herd is to form the largest square (not necessarily parallel to the gridlines) whose corners are formed by cows from that herd.

All the cows have been placed except for Farmer John's cow Bessie. Determine the area of the largest square that Farmer John's cows can form once Bessie is placed on the field (the largest square might not necessarily contain Bessie).

农民 John 的牛参加了一次和农民 Bob 的牛的竞赛。他们在区域中画了一个N*N 的正方形点阵,两个农场的牛各自占据了一些点。当然不能有两头牛处于同一个点。农场的目标是用自己的牛作为4个顶点,形成一个面积最大的正方形(不必须和边界平行) 。 除了 Bessie 以外,FJ其他的牛都已经放到点阵中去了,要确定bessie放在哪个位置,能使得农民约翰的农场得到一个最大的正方形(Bessie不是必须参与作为正方形的四个顶点之一)。

输入输出格式

输入格式:

Line 1: A single integer, N

Lines 2..N+1: Line i+1 describes line i of the field with N characters. The characters are: 'J' for a Farmer John cow, 'B' for a Farmer Bob cow, and '*' for an unoccupied square. There will always be at least one unoccupied gridpoint.

输出格式:

Line 1: The area of the largest square that Farmer John's cows can form, or 0 if they cannot form any square.

输入输出样例

输入样例#1: 复制

6
J*J***
******
J***J*
******
**B***
******

输出样例#1: 复制

4思路:暴力枚举对角线上的两个点,然后计算出中点坐标。然后可以根据平面向量计算出其余的两个对角线的坐标。判断是否合法即可,如果可以就取最大值。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 10000
using namespace std;
char s[110];
int n,num,ans;
int map[110][110];
struct nond{double x,y;
}cnt[MAXN];
bool dint(double x,int y){return y-0.001<=x and x<=y+0.001;
}
int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%s",s+1);for(int j=1;j<=n;j++){if(s[j]=='B')    map[i][j]=1;else if(s[j]=='J'){map[i][j]=2;cnt[++num].x=i;cnt[num].y=j;}}}for(int i=1;i<=num;i++)for(int j=i+1;j<=num;j++){double midx=(cnt[i].x+cnt[j].x)/2.0;//中点 double midy=(cnt[i].y+cnt[j].y)/2.0;//中点 double mx=(cnt[i].x-cnt[j].x)/2.0;  //向量 double my=(cnt[i].y-cnt[j].y)/2.0;    //向量 double dx=midx+(-my);double dy=midy+mx;if(dx<1||dx>n)    continue;if(dy<1||dy>n)    continue;double wx=midx+my;double wy=midy+(-mx);if(wx<1||wx>n)    continue;if(wy<1||wy>n)    continue;if(dx==wx&&dy==wy)    continue;int ax=int(dx+0.5),ay=int(dy+0.5);int bx=int(wx+0.5),by=int(wy+0.5);if(!dint(dx,ax))    continue;if(!dint(dy,ay))    continue;if(!dint(wx,bx))    continue;if(!dint(wy,by))    continue;if(map[ax][ay]==1||map[bx][by]==1)    continue;if(!map[ax][ay]&&!map[bx][by])    continue;int S=(dx-cnt[i].x)*(dx-cnt[i].x)+(dy-cnt[i].y)*(dy-cnt[i].y);ans=max(ans,S);}cout<<ans;
}

 

转载于:https://www.cnblogs.com/cangT-Tlan/p/7795490.html

洛谷 P2867 [USACO06NOV]大广场Big Square相关推荐

  1. 洛谷 P7453 [THUSCH2017] 大魔法师

    PS:如果读过题了可以跳过题目描述直接到题解部分 提交链接:洛谷 P7453 [THUSCH2017] 大魔法师 题目 题目描述 大魔法师小 L 制作了 n n n 个魔力水晶球,每个水晶球有水.火. ...

  2. 洛谷 P1230 智力大冲浪

    我的第一篇题解(辣鸡题解)洛谷 P1230 智力大冲浪 题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为 ...

  3. 洛谷P1879 [USACO06NOV]玉米田Corn Fields【状压dp】

    P1879 [USACO06NOV]玉米田Corn Fields 时间限制 1.00s 内存限制 125.00MB 题目描述 Farmer John has purchased a lush new ...

  4. 洛谷P1879 [USACO06NOV]玉米田Corn Fields

    P1879 [USACO06NOV]玉米田Corn Fields 题目描述 Farmer John has purchased a lush new rectangular pasture compo ...

  5. 洛谷 P1879 [USACO06NOV]玉米田Corn Fields

    题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ...

  6. AC日记——神奇的幻方 洛谷 P2615(大模拟)

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

  7. 洛谷P1230 智力大冲浪(贪心)

    P1230 智力大冲浪 题解:准着一个贪心思想,在尽可能短的时间内,做价值尽可能多的题. 因此,我们可以按照价值从大到小排个序,然后对于每一道题看在时间限制内可以做哪几道题.时间复杂度Θ(N2)\Th ...

  8. 洛谷P1230 智力大冲浪

    题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 m 元.先不要太高兴,因为这些钱还不一定都是你的.接下来主持人宣布了比赛规则: ...

  9. 做题记录 洛谷P1230 智力大冲浪

    题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: ...

最新文章

  1. 她在博士阶段破釜沉舟转换研究方向后,发表了32篇SCI
  2. Python进阶05 循环设计
  3. MariaDB的二进制包安装方法
  4. SQL - 18.触发器
  5. Bzoj 3226: [Sdoi2008]校门外的区间
  6. 今天我的天空瞬间明亮了
  7. 管家婆财贸双全TOP系列服务器,管家婆财贸双全II
  8. GB28181学习笔记2 SIP测试工具 Yate安装使用
  9. 宏发41F-1Z-C2接线
  10. 网络安全设备常见弱口令
  11. autoCAD绘制简单三维立体图形
  12. MySQL 分组后取最新记录
  13. 网络——数据交换方式
  14. ThinkAdmin漏洞(CVE-2020-25540 )复现
  15. html5怎么删除站点,dreamweaver里不用的站点怎么删除?
  16. 世界上几乎没有技术驱动型公司
  17. s4 android4.4.2,三星Galaxy S4(GT-I9500)开始Android 4.4.2升级
  18. 数模(2)——多属性决策模型
  19. 简单易用的Python爬虫,批量下载P站照片
  20. lxc(1):lxc安装

热门文章

  1. python os 检查同名_2020Python 爬虫面试题,高薪就业Python面试必看
  2. 一次违反常规的Java大厂面试经历,内含福利
  3. 一文读懂Faster R-CNN目标检测
  4. 【Kali渗透全方位实战】子域名的概念与探测(DNSenum工具和Sublist3r脚本的使用)
  5. 全卷积神经网路【U-net项目实战】肺结节分割案例分析:DSB3Tutorial
  6. 图像中里面的Ground Truth
  7. php 数组与数组之间去重,PHP开发中一维数组与二维数组去重功能实现教程
  8. 没有java home_【Java安装】必须有JAVA_HOME变量吗
  9. xshell导出文件用ftp到本地_使用xshell从远程服务器下载文件到本地
  10. 网站突然不收录?如何做到自审、自查、自纠?