zoukankan      html  css  js  c++  java
  • poj 2029 Get Many Persimmon Trees

    题意:

    给出一个矩阵,其中某些格子有树,用给定的一个规模的方框去圈,问最多可以圈到多少树。

    思路:

    二维树状数组裸题。

    代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <algorithm>
     4 using namespace std;
     5 const int N = 105;
     6 int c[N][N];
     7 int w,h;
     8 int lowbit(int x)
     9 {
    10     return x&(-x);
    11 }
    12 void add(int x,int y)
    13 {
    14     for (int i = x;i <= w;i += lowbit(i)) c[i][y] += 1;
    15 }
    16 int getsum(int x,int y)
    17 {
    18     int ans = 0;
    19     for (int i = x;i > 0;i -= lowbit(i)) ans += c[i][y];
    20     return ans;
    21 }
    22 int main()
    23 {
    24     int n;
    25     while (scanf("%d",&n) != EOF && n)
    26     {
    27         scanf("%d%d",&w,&h);
    28         memset(c,0,sizeof(c));
    29         for (int i = 0;i < n;i++)
    30         {
    31             int x,y;
    32             scanf("%d%d",&x,&y);
    33             add(x,y);
    34         }
    35         int s,t;
    36         scanf("%d%d",&s,&t);
    37         int ans = 0;
    38         for (int i = s;i <= w;i++)
    39         {
    40             for (int j = t;j <= h;j++)
    41             {
    42                 int tmp = 0;
    43                 for (int k = j - t + 1;k <= j;k++)
    44                 {
    45                     tmp += getsum(i,k) - getsum(i-s,k);
    46                 }
    47                 ans = max(ans,tmp);
    48             }
    49         }
    50         printf("%d
    ",ans);
    51     }    
    52     return 0;
    53 }
  • 相关阅读:
    开源mvcpager分页控件分页实例
    「YNOI2016」自己的发明
    「SNOI2017」一个简单的询问
    势能分析(splay分析)
    「Ynoi2018」未来日记
    「JOISC 2016 Day 1」棋盘游戏
    「ZJOI2014」璀灿光华
    「ZJOI2019」线段树
    「科技」区间众数
    「ZJOI2017」树状数组
  • 原文地址:https://www.cnblogs.com/kickit/p/9073484.html
Copyright © 2011-2022 走看看