bzoj4506: [Usaco2016 Jan]Fort Moo(暴力)
4506: [Usaco2016 Jan]Fort Moo
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 145 Solved: 104
[Submit][Status][Discuss]
Description
Input
Output
一个整数,表示Bessie可以用她的堡垒覆盖的最大面积。
Sample Input
......
..X..X
X..X..
......
..X...
Sample Output
In the example, the placement of the optimal frame is indicated by 'f's below:
.ffff.
.fX.fX
Xf.Xf.
.ffff.
..X...
/*
预处理每个点能往上下左右扩展的距离
n^2枚举每个点n^2暴力扩展
复杂度n^4
emmm 加点优化就过了
*/
#include<bits/stdc++.h> #define N 201 using namespace std;
int n,m,ans,cnt;
int a[N][N];
int ex_up[N][N],ex_down[N][N],ex_L[N][N],ex_R[N][N];
char ch; int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++) for(int j=;j<=m;j++)
{
cin>>ch;
a[i][j]=(ch=='.'?:);
}
for(int i=;i<=n;i++) for(int j=;j<=m;j++)
{
cnt=;
while(j+cnt<=m && !a[i][j+cnt]) cnt++;
if(cnt) ex_R[i][j]=cnt-;
cnt=;
while(j-cnt>= && !a[i][j-cnt]) cnt++;
if(cnt) ex_L[i][j]=cnt-;
cnt=;
while(i-cnt>= && !a[i-cnt][j]) cnt++;
if(cnt) ex_up[i][j]=cnt-;
cnt=;
while(i+cnt<=n && !a[i+cnt][j]) cnt++;
if(cnt) ex_down[i][j]=cnt-;
}
ans=;
for(int i=;i<=n;i++) for(int j=;j<=m;j++)
{
if(!ex_R[i][j]) continue;
if((ex_R[i][j]+)*(ex_down[i][j]+)<=ans) continue;
for(int x=j;x<=j+ex_R[i][j];x++)
{
if(!ex_down[i][x]) continue;
for(int y=i;y<=i+ex_down[i][j];y++)
{
if(i+ex_down[i][x]>n || j+ex_R[y][j]>m) continue;
if(i+ex_down[i][x]>=y && j+ex_R[y][j]>=x) ans=max(ans,(x-j+)*(y-i+));
}
}
}
printf("%d\n",ans);
return ;
}
bzoj4506: [Usaco2016 Jan]Fort Moo(暴力)的更多相关文章
- [BZOJ4506] [Usaco2016 Jan]Fort Moo(DP?)
传送门 总之可以先预处理出来每个位置最多往上延伸多少 枚举两行,看看夹在这两行中间的列最大能构成多大的矩形 可以看出,必须得在一个两行都没有X的区间才有可能构成最大的答案 那么可以把这些区间处理出来, ...
- bzoj 4506: [Usaco2016 Jan]Fort Moo
4506: [Usaco2016 Jan]Fort Moo Description Bessie is building a fort with her friend Elsie. Like any ...
- DP【洛谷P3135】[USACO16JAN]堡哞Fort Moo
[洛谷P3135][USACO16JAN]堡哞Fort Moo Bessie和她的朋友Elsie正在建筑一个堡垒,与任何一个好的堡垒一样,这个需要一个强固的框架.Bessie想造一个轮廓是1m宽的空心 ...
- bzoj4512[Usaco2016 Jan] Build Gates
bzoj4512[Usaco2016 Jan] Build Gates 题意: 某人从农场的(0,0)出发,沿边界到处乱走,走过的地方会留下栅栏,等走完后问要在多少个栅栏上开门才能使整个农场连通,最多 ...
- bzoj4511:[Usaco2016 Jan]Subsequences Summing to Sevens
题目大意:给个序列,求最长的连续子序列使其为7的倍数 又是一道令人欢喜的不用怎么用脑的水题.. 边读入,边计算前缀和 分别保存前缀和%7结果为1,2,3,4,5,6的第一次的位置 然后减一减就知道长度 ...
- BZOJ4525——[Usaco2016 Jan]Angry Cows
1.题意:给一堆可以的限制长度的区间...区间的长度是你控制的...但是只有一个长度...求最短长度覆盖所有的点 2.分析:发现可以二分...那二分吧.....然后我们从头向后扫一遍直接判断能否直接覆 ...
- bzoj4525: [Usaco2016 Jan]Angry Cows
二分. #include<cstdio> #include<algorithm> #include<cstring> using namespace std; + ...
- bzoj4511: [Usaco2016 Jan]Subsequences Summing to Sevens
前缀和. 设f[i]为前缀和%7=i的第一个点.那么答案就是max(i-f[s[i]%7])了. #include<cstdio> #include<algorithm> #i ...
- 「BZOJ4510」「Usaco2016 Jan」Radio Contact 解题报告
无线电联系 Radio Contact 题目描述 Farmer John has lost his favorite cow bell, and Bessie the cow has agreed t ...
随机推荐
- Lucene_Hello(示例)
(1)创建project (2)导入Lucene的核心包 (3)编写代码建立索引 /lucene01/src/cn/hk/lucene/TestIndex.java: package cn.hk.lu ...
- hihoCoder#1082 然而沼跃鱼早就看穿了一切
原题地址 字符串匹配+替换 注意替换串和原串长度是不等的,所以替换完还要进行收缩 可以顺带练习一下KMP 代码: #include <iostream> #include <cstr ...
- [luoguP1136] 迎接仪式(DP)
传送门 每个字母只有两种选择,变成另一个或者不变. 所以f[i][j][k]表示前i个字母有j个j变成z,有k个z变成j 只需要比较j==k时的答案就行 #include <cstdio> ...
- noip模拟赛 少女
分析:每个连通块都是独立的,对一个连通块进行分析.如果边数>点数,显然是不可能的,因为每条边要分配给一个点,至少有一个点分配了两次以上.如果边数=点数,就形成了环,有两种方案,顺时针一个环,逆时 ...
- 【计算几何+极角排序+爆ll】E. Convex
https://www.bnuoj.com/v3/contest_show.php?cid=9147#problem/E [题意] 给定n个点的坐标,可以选择其中的四个点构造凸四边形,问最多能构造多少 ...
- Spring Data JPA 之 一对一,一对多,多对多 关系映射
一.@OneToOne关系映射 JPA使用@OneToOne来标注一对一的关系. 实体 People :用户. 实体 Address:家庭住址. People 和 Address 是一对一的关系. 这 ...
- [NOIP2006] 普及组
明明的随机数 STL真是偷懒神器 /*by SilverN*/ #include<algorithm> #include<iostream> #include<cstri ...
- NOIP2013提高组D2T3 华容道
n<=30 * m<=30 的地图上,0表示墙壁,1表示可以放箱子的空地.q<=500次询问,每次问:当空地上唯一没有放箱子的空格子在(ex,ey)时,把位于(sx,sy)的箱子移动 ...
- POJ 3469_Dual Core CPU
题意: N个模块可以在A,B两个核上运行,分别需要A[i]和B[i],模块之间需要传递数据,若两个模块在同一核上,则不需要花费,否则需要花费w[i].问最少需要花费多少? 分析: 用最小的费用将两个对 ...
- cogs——619. [金陵中学2007] 传话
619. [金陵中学2007] 传话 ★★ 输入文件:messagez.in 输出文件:messagez.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 兴趣小 ...