P2733 家的范围 Home on the Range

o 26通过
o 61提交
• 题目提供者该用户不存在
• 标签USACO
• 难度普及+/提高

  • 提交 讨论 题解

最新讨论
• 暂时没有讨论
题目背景
农民约翰在一片边长是N (2 <= N <= 250)英里的正方形牧场上放牧他的奶牛。(因为一些原因,他的奶牛只在正方形的牧场上吃草。)遗憾的是,他的奶牛已经毁坏一些土地。( 一些1平方英里的正方形)
题目描述
农民约翰需要统计那些可以放牧奶牛的正方形牧场(至少是2x2的,在这些较大的正方形中没有一个点是被破坏的,也就是说,所有的点都是“1”)。
你的工作要在被供应的数据组里面统计所有不同的正方形放牧区域(>=2x2)的个数。当然,放牧区域可能是重叠。
输入输出格式
输入格式:

第 1 行:N,牧区的边长。
第 2 到 n+1 行:N个没有空格分开的字符。0 表示 "那一个区段被毁坏了";1 表示 " 准备好被吃"。
输出格式:

输出那些存在的正方形的边长和个数,一种一行。
输入输出样例
输入样例#1:

6
101111
001111
111111
001111
101101
111001
输出样例#1:

2 10
3 4
4 1
说明
题目翻译来自NOCOW。
USACO Training Section 3.3

分析:既然是要求每个边长的正方形个数,那么肯定要把所有边长的正方形求出来,对于这种正方形的问题,我们只需要记录下以某个点为基准的的正方形的边长即可,我选的是右下角,设f[i][j]为右下角为(i,j)的正方形的最大边长,很显然f[i][j] = min(f[i-1][j],f[i][j-1],f[i-1][j-1]) + 1,所有<=f[i][j]的边长的正方形都有一个,所有每求出一个f[i][j],累加答案即可.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std;
int n, f[][], ans[];
char a[][]; int main()
{
scanf("%d", &n);
for (int i = ; i <= n; i++)
for (int j = ; j <= n; j++)
cin >> a[i][j];
for (int i = ; i <= n; i++)
for (int j = ; j <= n; j++)
{
if (a[i][j] == '')
f[i][j] = min(f[i][j - ], min(f[i - ][j], f[i - ][j - ])) + ;
for (int k = ; k <= f[i][j]; k++)
ans[k]++;
}
for (int i = ; i <= n; i++)
if (ans[i])
printf("%d %d\n", i, ans[i]);
//while (1); return ;
}

洛谷P2733 家的范围 Home on the Range的更多相关文章

  1. 洛谷——P2733 家的范围 Home on the Range

    P2733 家的范围 Home on the Range 题目背景 农民约翰在一片边长是N (2 <= N <= 250)英里的正方形牧场上放牧他的奶牛.(因为一些原因,他的奶牛只在正方形 ...

  2. 洛谷 P2733 家的范围 Home on the Range Label:二维数组前缀和

    题目背景 农民约翰在一片边长是N (2 <= N <= 250)英里的正方形牧场上放牧他的奶牛.(因为一些原因,他的奶牛只在正方形的牧场上吃草.)遗憾的是,他的奶牛已经毁坏一些土地.( 一 ...

  3. 洛谷 P2733 家的范围 Home on the Range

    题目背景 农民约翰在一片边长是N (2 <= N <= 250)英里的正方形牧场上放牧他的奶牛.(因为一些原因,他的奶牛只在正方形的牧场上吃草.)遗憾的是,他的奶牛已经毁坏一些土地.( 一 ...

  4. 洛谷—— P2733 家的范围 Home on the Range

    https://www.luogu.org/problem/show?pid=2733 题目背景 农民约翰在一片边长是N (2 <= N <= 250)英里的正方形牧场上放牧他的奶牛.(因 ...

  5. P2733 家的范围 Home on the Range

    又是一校内模拟赛见的题 不知道为什么出题人怎么这么喜欢USACO的Farmer John的他的牛... 感觉这道题不是特别的难,但也不很水 同机房的神仙们都说这个题是一道二维前缀和的裸题,但我当时的确 ...

  6. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  7. P2733 家的范围 Home on the Range-弱DP

    P2733 家的范围 Home on the Range 思路 :转化为以每个点为右下角的 最大正方形的边长 #include<bits/stdc++.h> using namespace ...

  8. 洛谷 P3258 BZOJ 3631 [JLOI2014]松鼠的新家

    题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在”树“上. 松鼠想邀请小熊维尼前 ...

  9. 洛谷P5664 Emiya 家今天的饭 问题分析

    首先来看一道我编的题: 安娜写宋词 题目背景 洛谷P5664 Emiya 家今天的饭[民间数据] 的简化版本. 题目描述 安娜准备去参加宋词大赛,她一共掌握 \(n\) 个 词牌名 ,并且她的宋词总共 ...

随机推荐

  1. perl中的grep函数介绍

    grep函数 (如果你是个的新手,你可以先跳过下面的两段,直接到 Grep vs.loops 样例这一部分,放心,在后面你还会遇到它) <pre>grep BLOCK LISTgrep E ...

  2. SVN并行开发管理策略

    总的原则:trunk保证相对稳定.分支合并到主干时将冲突降至最低. (1)       trunk用于集成.测试.发布,可以提交fixbug代码,但不允许直接提交新特性. (2)       特性在分 ...

  3. (C/C++) Interview in English - Basic concepts.

    Question Key words Anwser A assignment operator abstract class It is a class that has one or more pu ...

  4. System.InvalidOperationException: Sequence contains no elements

    foreach (var keyCode in unexpectedKeyCodesDetected) { string unexpected = expectedCapturedKeyCodes.W ...

  5. cf111D Petya and Coloring 组合数学,二项式反演

    http://codeforces.com/contest/111/problem/D Little Petya loves counting. He wants to count the numbe ...

  6. 关于htmlspecialchars实体字符转码的问题

    php对post过来的数据进行实体字符转码,我的页面编码是gb2312,刚开始是这样: $post = htmlspecialchars ( $post); 取到的$post值为空,但是有时候是好的( ...

  7. ylbtech-Unitity-CS:Hello world

    ylbtech-Unitity-CS:Hello world 1.A,效果图返回顶部   1.B,源代码返回顶部 1.B.1,Hello1.cs public class Hello1 { publi ...

  8. Notepad++隐藏的用法

    Notepad++是一个非常强大的文本编辑器. 它里面有很多有用的插件. 我认为对我比较有帮助的一个是NppExporter.它可以将Notepad++中彩色的代码原样的复制到Word中. 想要获得彩 ...

  9. Collection集合List、Set

    Collection集合,用来保存一组数据的数据结构. Collection是一个接口,定义了所有集合都应该包含的特征和行为 Collection派生出了两类集合 List和Set List接口:Li ...

  10. java学习_文件工具类

    工具类里面的方法全部都是静态的,调用的时候不需要实例化