zoukankan      html  css  js  c++  java
  • hihocoder 1249(2015ACM/ICPC北京)

    题意:

    给你一块正方形的土地,里面有矩形的草地,要求把土地分成两份,满足以下两个条件

    1.两边的绿洲,左边>=右边,差值尽可能的小

    2.在满足1的情况下分给左边的土地尽快能的多

    而且绿洲不会出现覆盖


    思路:

    将绿洲压到你给一维矩阵中,然后从左往右加,当ls*2 >= sum,往后面寻找最近的一个p[i] != 0(即存在绿洲的地方)


    Orz:

    第一次没对,就YY绿洲可能超出了土地范围,然后哦一直WA

    现在才发现,当时只是没把有的数定义成long long超了,QAQ心好痛


    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    using namespace std;
    typedef long long ll;
    const int maxn = 10001000;
    const int INF = 0x3f3f3f3f;
    ll p[maxn];
    
    int main()
    {
        int n,T,len;
        ll sum,lef,top,w,h;
        scanf("%d",&T);
        while(T--)
        {
            memset(p,0,sizeof(p));
            scanf("%d%d",&len,&n);
            sum =  0;
            for(int i = 0;i < n;i++)
            {
                scanf("%lld%lld%lld%lld",&lef,&top,&w,&h);
                p[lef] += h;
                p[lef+w] -= h;
                sum += w*h;
            }
            ll ls = 0;
            for(int i = 1;i <= len;i++)
            {
                p[i] += p[i-1];
            }
    
            for(int i = 0;i <= len;i++)
            {
                ls += p[i];
                if(ls * 2 >= sum)
                {
                    int j;
                    for(j = i+1;p[j]==0 && j < len;j++);
                    printf("%d
    ",j);
                    break;
                }
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    22 组合电路中的竞争--冒险
    21 典型的组合电路模块(2)
    vhdl和verilog的区别
    17 TTL电路系列(2)
    树莓派Pico
    ESP8266/ESP32自动下载电路原理分析
    CH340芯片
    26. 删除排序数组中的重复项
    25. K 个一组翻转链表
    23. 合并K个排序链表
  • 原文地址:https://www.cnblogs.com/Przz/p/5409674.html
Copyright © 2011-2022 走看看