bzoj:1661 [Usaco2006 Nov]Big Square 巨大正方形
Description
农民 John 的牛参加了一次和农民 Bob 的牛的竞赛。他们在区域中画了一个N*N 的正方形点阵,两个农场的牛各自占据了一些点。当然不能有两头牛处于同一个点。农场的目标是用自己的牛作为4个顶点,形成一个面积最大的正方形(不必须和边界平行) 。 除了 Bessie 以外,FJ其他的牛都已经放到点阵中去了,要确定bessie放在哪个位置,能使得农民约翰的农场得到一个最大的正方形(Bessie不是必须参与作为正方形的四个顶点之一)。
Input
* Line 1: 一个整数 N,2<=N<=100
* Lines 2..N+1: 第 i+1 行描述点阵的第i行,有 N 个字符。字符集是: 'J' 表示这个点是农民 John 的牛, 'B'表示这个点是农民 Bob 的牛, '*' 表示这个点没有被占据。保证至少有一个点没有被占据。
Output
* Line 1: 最大正方形的面积,或者无解的话输出0。
Sample Input
J*J***
******
J***J*
******
**B***
******
Sample Output
输出解释:
如果 Bessie 可以占据 农民 Bob 的牛所占的点,那么可以生成一个面积为8
的正方形,但是她只能放到第3行第3列,形成一个最大的、面积为 4个正方形。


#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,ans=,an;
char map[][];
int main(){
scanf("%d",&n);
for (int i=;i<n;i++)
for (int j=;j<n;j++) while(map[i][j]!='J'&&map[i][j]!='*'&&map[i][j]!='B') map[i][j]=getchar();
for (int x1=;x1<n;x1++)
for (int y1=;y1<n;y1++){
if ((n--x1)*(n--x1)+(n--y1)*(n--y1)<=ans) break;
for (int x2=x1;x2<n;x2++)
for (int y2=y1+int(sqrt((ans-(x2-x1)*(x2-x1))>?(ans-(x2-x1)*(x2-x1)):));y2<n;y2++)
if (x1!=x2||y1!=y2)
if (map[x1][y1]=='J'&&map[x2][y2]=='J'){
an=(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);
if (ans>=an) continue;
if(!((x1-(y2-y1)<)||(y1+(x2-x1)>=n)||(map[x1-(y2-y1)][y1+(x2-x1)]=='B')||(x2-(y2-y1)<)||(y2+(x2-x1)>=n)||(map[x2-(y2-y1)][y2+(x2-x1)]=='B')||(map[x1-(y2-y1)][y1+(x2-x1)]=='*'&&map[x2-(y2-y1)][y2+(x2-x1)]=='*')))ans=an;
if(!((x1+(y2-y1)>=n)||(y1-(x2-x1)<)||(map[x1+(y2-y1)][y1-(x2-x1)]=='B')||(x2+(y2-y1)>=n)||(y2-(x2-x1)<)||(map[x2+(y2-y1)][y2-(x2-x1)]=='B')||(map[x1+(y2-y1)][y1-(x2-x1)]=='*'&&map[x2+(y2-y1)][y2-(x2-x1)]=='*')))ans=an;
}
}
printf("%d\n",ans);
}
简洁明快的西瓜风格
bzoj:1661 [Usaco2006 Nov]Big Square 巨大正方形的更多相关文章
- bzoj 1661: [Usaco2006 Nov]Big Square 巨大正方形【枚举】
每句两个顶点确定正方形,取max即可 #include<iostream> #include<cstdio> using namespace std; int n,x,y,s, ...
- 【BZOJ】1661: [Usaco2006 Nov]Big Square 巨大正方形(暴力)
http://www.lydsy.com/JudgeOnline/problem.php?id=1661 暴力大法好... 枚举对角线(注意,一种对角线2种情况就行了,自己想...) 然后可以算出其它 ...
- bzoj1661[Usaco2006 Nov]Big Square 巨大正方形*
bzoj1661[Usaco2006 Nov]Big Square 巨大正方形 题意: n*n的图中有一些J点,一些B点和一些空白点,问在空白点添加一个J点所能得到的有4个J点组成最大正方形面积.n≤ ...
- Bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路 dijkstra,堆,A*,次短路
1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 969 Solved: 468[S ...
- BZOJ 1724: [Usaco2006 Nov]Fence Repair 切割木板
题目 1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec Memory Limit: 64 MB Description Farmer ...
- BZOJ 1660: [Usaco2006 Nov]Bad Hair Day 乱发节( 单调栈 )
维护一个h严格递减的栈 , 出栈时计算一下就好了.. ------------------------------------------------------------------------- ...
- BZOJ 1726: [Usaco2006 Nov]Roadblocks第二短路( 最短路 )
从起点和终点各跑一次最短路 , 然后枚举每一条边 , 更新answer ---------------------------------------------------------------- ...
- BZOJ 1726: [Usaco2006 Nov]Roadblocks第二短路
1726: [Usaco2006 Nov]Roadblocks第二短路 Description 贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她 ...
- BZOJ 1660: [Usaco2006 Nov]Bad Hair Day 乱发节
Description Input * Line 1: 牛的数量 N. * Lines 2..N+1: 第 i+1 是一个整数,表示第i头牛的高度. Output * Line 1: 一个整数表示c[ ...
随机推荐
- 无 new 构造与链式调用
无 new 构造 最简单的想法 (function(window) { var jQuery = function() { return new _jQuery(); }; var _jQuery = ...
- 第四节:dingo/API 最新版 V2.0 之 Responses (连载)
因为某些某些原因,不能按时更新,唉.我会尽力,加快速度.(这句话不是翻译的哈) 原文地址--> https://github.com/dingo/api/wiki/Responses A fun ...
- ArcGIS API for JavaScript 4.2学习笔记[24] 【IdentifyTask类】的使用(结合IdentifyParameters类)(第七章完结)
好吧,我都要吐了. 接连三个例子都是类似的套路,使用某个查询参数类的实例,结合对应的Task类,对返回值进行取值.显示. 这个例子是Identify识别,使用了TileLayer这种图层,数据来自Se ...
- LAMP第一部分-环境搭建
1. 安装mysqlcd /usr/local/src/ wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686- ...
- Java_Date_02_截断日期到日
oracle 的 trunc 函数能很方便的将日期截断.现在有个需求,需要用java实现与 oracle 的 trunc 函数 相同的功能. 1.需求:将日期截断到日 即 将格式为 2018-01-0 ...
- .net 框架
目录 API 应用框架(Application Frameworks) 应用模板(Application Templates) 人工智能(Artificial Intelligence) 程序集处理( ...
- 微服务时代TestOps工程师学习总结
TestOps很新鲜,也是近期衍生的新型职位.那TestOps主要目的是推动整个研发体系与发布体系更多在质量方面.可以这样理解DevOps是从研发推动配合运维和测试,而TestOps是从测试角度推动研 ...
- Python+selenium+eclipse+pydev自动化测试环境搭建
一. 安装python 1.下载安装python 可访问python的官方网站:http://www.Python.prg找到下载页面下载需要的版本,可下载python2.x或者pyth ...
- [SharePoint]解决用户权限被无缘无故自动删除的问题
前几天在维护公司内网的时候接到了一个case, 说是某个用户的权限无缘无故的就会被SharePoint自动去掉. 刚开始我还不愿意相信这个用户的说法,认为可能是权限赋的方法不对,有可能是被其他人误删了 ...
- ul li自适应居中导航
<BODY> <div class="box"> <ul class="nav"> <li>邮箱管理</l ...