poj-2029 Get Many Persimmon Trees

my code:

/*
 * 2029.cpp
 *
 *  Created on: 2011-7-6
 *      Author:
 */

#include <iostream>
#include <cstring>
using namespace std;

const int MAXN = 100 + 5;
bool tree[MAXN][MAXN] = {};      //坐标上是否有树
int d[MAXN][MAXN] = {};        //一维矩阵上的树的总数(坐标表示1*1元)
int ans[MAXN][MAXN] = {};       //s * t 矩阵上的树的总数(坐标表示1*1元)
int imax = -1;

int main(){
    int n, w, h, s, t;
    while(cin >> n){
        if(n == 0)
            break;

        cin >> w >> h;

        memset(tree, 0, sizeof(bool) * MAXN * MAXN);

        int tmp_x, tmp_y;
        for(int i=0; i<n; i++){
            cin >> tmp_x >> tmp_y;
            tree[tmp_x][tmp_y] = 1;
        }

        cin >> s >> t;



        memset(d, 0, sizeof(int) * MAXN * MAXN);
        memset(ans, 0, sizeof(int) * MAXN * MAXN);
        imax = -1;


        for(int i=1; i<=w-s+1; i++){
            for(int j=1; j<=h; j++){
                for(int k=0; k<s; k++){
                    d[i][j] += tree[i+k][j];
                }
            }
        }

        for(int i=1; i<=w-s+1; i++){
            for(int j=1; j<=h-t+1; j++){
                for(int k=0; k<t; k++){
                    ans[i][j] += d[i][j+k];
                }

                if(imax < ans[i][j])
                    imax = ans[i][j];
            }
        }


        cout << imax << endl;
    }


    return 0;
}

其他code:【转】

1)  DP

思路:基础DP。预处理存所有矩形[(1,1)(i,j)]里面的树的总数量。枚举小矩形的位置,然后DP,状态转移方程:ans = max(dp[i][j] - dp[ii-1][j] - dp[i][jj-1] + dp[ii-1][jj-1])。也可以用树状数组,但是没这个必要,树状数组能修改点的情况,这里每个点的情况是固定的。

 

源代码:(312K, 16MS)

#include<iostream>
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
const int MAX = 105;

 

int map[MAX][MAX];
int dp[MAX][MAX];

 

int main(){
    int n, i, j, ii, jj;
    int W, H, w, h;
    while(cin >> n && n){
        memset(map, 0, sizeof(map));
        memset(dp, 0, sizeof(dp));
        cin >> W >> H;
        while(n --){
            int x, y;
            cin >> x >> y;
            map[y][x] = 1;
        }
        cin >> w >> h;
        for(i = 1; i <= H; i ++)
            for(j = 1; j <= W; j ++)
                dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] + map[i][j];
        int ans = 0;
        for(i = 1; i <= H; i ++)
            for(j = 1; j <= W; j ++){
                ii = i - h + 1;
                jj = j - w + 1;
                if(ii < 1 || jj < 1) continue;
                ans = max(ans, dp[i][j] - dp[ii-1][j] - dp[i][jj-1] + dp[ii-1][jj-1]);
            }
        cout << ans << endl;
    }
    return 0;
}

2)  树状数组

感觉这样用树状数组,也有点小暴力~~

#include<iostream>
#include<cstring>
using namespace std;
const int N = 105;
int c[N][N];
int lowbit(int x)
{
return x&(-x);
}
void  update(int x, int y)
{
for(int i = x; i < N; i+=lowbit(i))
for(int j = y; j < N; j+=lowbit(j))
c[i][j]++;
}
int sum(int x, int y)
{
int ans = 0;
for(int i = x; i > 0; i -= lowbit(i))
for(int j = y; j > 0; j -= lowbit(j))
ans += c[i][j];
return ans;
}
void init()
{
memset(c,0,sizeof(c));
}
int main()
{
    int n,w,h,x,y;
    while(cin>>n && n)
    {
        init();
        cin>>w>>h;
        for(int i = 0; i < n; i++)
        {
            cin>>x>>y;
            update(x,y);
        }
        cin>>x>>y;
        int ans = 0;
        for(int i = 1; i <= w-x+1; i++)
        for(int j = 1; j <= h-y+1; j++)
        {
            ans = max(ans,sum(i+x-1,j+y-1)+sum(i-1,j-1)-sum(i+x-1,j-1)-sum(i-1,j+y-1));
        }
    cout<<ans<<endl;
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 字符串 去除_java 字符串中去除特定的字符

java String字符串 去除特定的字符 程序如下package com.xing.test;import java.util.regex.Matcher;import java.util.regex.Pattern;/**** author Yinxing**/public class NotString {public static void main(String[] args) {// TODO Auto-generated method stubString st…

深度学习了40万个表情,一大波AI 表情包来了

自从有了表情包&#xff0c;跟人聊天时的第一反应&#xff0c;就是去找找看有什么适合的表情。有一类表情包&#xff0c;形式是文字图&#xff0c;尤其能够精妙地抒发和传递感情。在这一点上&#xff0c;可能全世界的网友都一样。好用的表情永远不嫌多&#xff0c;而且似乎总是…

网关Ocelot功能演示安排的明明白白~~~

前言网关(Gateway)在微服务架构中至关重要&#xff0c;可以将其理解为是外部客户端(前端、MVC后台等调用方)与后台服务的连接点&#xff0c;通过这层可以做统一的处理&#xff0c;比如路由、身份认证和授权、服务治理等&#xff1b;网关的好处&#xff1a;统一入口&#xff0c;…

今天学习jquery 希望开个好头

暑假和学长们一起做一个项目&#xff0c;是asp.net&#xff0c;看了杨中科老师的视频&#xff0c;虽然只看了后面关于asp.net的部分&#xff0c;但还是感到jquery是十分强大的。所以下定决心&#xff0c;这个暑假搞一搞jquery&#xff0c;感受一下写的更少&#xff0c;做的更多…

python图片读取优化_python读取raw binary图片并提取统计信息的实例

用python语言读取二进制图片文件&#xff0c;并提取非零数据统计信息(例如&#xff1a;max&#xff0c;min&#xff0c;skewness and kurtosis)python新手&#xff0c;注释较少&#xff0c;欢迎指教import structimport mathimport numpyimport scipy.statsfilename input(ent…

通过Dapr实现一个简单的基于.net的微服务电商系统

本来想在Dpar 1.0GA时发布这篇文章&#xff0c;由于其他事情耽搁了放到现在。时下微服务和云原生技术如何如荼&#xff0c;微软也不甘示弱的和阿里一起适时推出了Dapr&#xff08;https://dapr.io/&#xff09;&#xff0c;园子里关于dapr的文章不太多&#xff0c;所以今天就借…

基于 Python 自建分布式高并发 RPC 服务

RPC&#xff08;Remote Procedure Call&#xff09;服务&#xff0c;也即远程过程调用&#xff0c;在互联网企业技术架构中占据了举足轻重的地位&#xff0c;尤其在当下微服务化逐步成为大中型分布式系统架构的主流背景下&#xff0c;RPC 更扮演了重要角色。Google 开源了 gRPC…

poj-1980 Unit Fraction Partition **

/* * 本以为这题剪枝会很难&#xff0c;没想到1A了。。32ms * 这个题的难点是分数的处理。。不要用double。。精度难以把握。。 **/#include <cstdio>#include <cmath>using namespace std;int p, q, a, n, tot; //如题目定义&#xff0c;tot为答案//p1/q1 和 …

java对象实例_深入理解Java对象实例生成的例子!(转)

深入理解Java对象实例生成的例子!(转)[more]代码如下:class A {public int Avar;public A() {System.out.println("AAA");doSomething();}public void doSomething() {Avar 1111;System.out.println("A.doSomething()");}}public class B extends A {publ…

程序员江湖鄙视链大全,看看你处于链条的哪一级?

有人的地方就有江湖。程序员&#xff0c;是一个知识、智商、都异于常人的 群体&#xff0c;有人总结了程序员江湖等级鄙视链的方法和流程。老婆漂亮的程序员鄙视老婆不漂亮的程序员鄙视有女友的程序员鄙视单身狗程序员而在单身狗之间&#xff0c;才有了语言&#xff0c;编辑器和…

java什么是静态_什么是java静态

什么是java静态java静态包括静态变量、静态方法、静态初始化块&#xff0c;以下是静态的详解。(推荐教程&#xff1a;java教程)1. 什么是静态变量大家都知道&#xff0c;我们可以基于一个类创建多个该类的对象&#xff0c;每个对象都拥有自己的成员&#xff0c;互相独立。然而在…

如何在 .NET 程序万种死法中有效的生成 Dump (上)

一&#xff1a;背景相信很多人都知道通过 任务管理器 抓取dump&#xff0c;虽然简单粗暴&#xff0c;但无法满足程序的无数种死法&#xff0c;比如&#xff1a;内存膨胀&#xff0c;程序爆炸CPU爆高&#xff0c;程序累死应用无响应&#xff0c;用户气死意外退出&#xff0c;和人…

Google上面关于cas的文章

http://code.google.com/p/j2eewiki/wiki/CASinstallServer转载于:https://blog.51cto.com/flash51/614827

74款app源码,值得你拥有的干货

最近&#xff0c;小编一直在整理一些app的源码&#xff0c;如&#xff1a;BiliClient&#xff08;仿bilibili客户端&#xff09;、WeChat高仿微信、知乎专栏App、Compass&#xff08;MIUI指南针的社区开源版&#xff09;等。现在小编打算将这些资料免费分享给大家&#xff01;&…

监控系统简介:使用 Prometheus 与 Grafana

注&#xff1a;本文虽以 Docker 进行演示&#xff0c;但 Docker 并不是必须的&#xff0c;相关软件也可以直接安装到计算机上背景如果我们是Web应用的开发者&#xff0c;会对响应时间、接口的稳定性等比较敏感&#xff0c;在站点尚未部署到生产环境时&#xff0c;我们有充足的时…

7500 cpuz跑分 i5_核心硬盘 i5 7500性能测试_DIY攒机酷品测试-中关村在线

下面我们进入CPU测试环节。为保测试性准确可靠&#xff0c;以下测试均采用Windows 10 1周年版 64位正版系统&#xff0c;且不对操作系统进行任何优化&#xff0c;用以获取最大的系统稳定性与兼容性。Intel 酷睿i5 7500i5 7500 CPU-ZFritz Chess BenchmarkFritz Chess Benchmark…

Android Ap 开发 设计模式第七篇:生成器模式

Builder Pattern 模式解读 生活在深圳这所高速发展的城市&#xff0c;高楼大厦林立。所谓万丈高楼平地起&#xff0c;在我们感慨楼层的高耸之外&#xff0c;更要配服楼层的建造者和设计者。大楼首先得打稳地基、搭建骨架&#xff0c;再由下往上一层层盖上去。而这样的架构从程序…

MySQL 创始人:写代码比打游戏还爽,程序员应该多泡开源社区

编者按&#xff1a;根据StackOverflow的最新调查&#xff0c;MySQL仍然是全世界最流行的数据库&#xff0c;受访的开发者中有44.3%的人在使用&#xff0c;超过了第二位的SQL Server 10多个百分点。可是你知道MySQL是怎么诞生的吗&#xff1f;openocean 的一篇有关MySQL开发者Mi…

tomcat如何修改java版本_Java程序员必备——Tomcat配置技巧Top10

一、配置系统管理(Admin Web Application)大多数商业化的J2EE服务器都提供一个功能强大的管理界面&#xff0c;且大都采用易于理解的Web应用界面。Tomcat按照自己的方式&#xff0c;同样提供一个成熟的管理工具&#xff0c;并且丝毫不逊于那些商业化的竞争对手。Tomcat的Admin …

祝福!微软 46 周年生日快乐!

46 年前的今天&#xff0c;即 1975 年 4 月 4 日&#xff0c;比尔盖茨&#xff08;Bill Gates&#xff09;和保罗艾伦&#xff08;Paul Allen&#xff09;共同创立了微软公司。他们是小时候认识的朋友及高中同学&#xff0c;并对电脑编程充满激情。1975 年 1 月&#xff0c;MIT…