4136:矩形分割
总时间限制: 1000ms 内存限制: 65536kB
描述
平面上有一个大矩形,其左下角坐标(0,0),右上角坐标(R,R)。大矩形内部包含一些小矩形,小矩形都平行于坐标轴且互不重叠。所有矩形的顶点都是整点。要求画一根平行于y轴的直线x=k(k是整数) ,使得这些小矩形落在直线左边的面积必须大于等于落在右边的面积,且两边面积之差最小。并且,要使得大矩形在直线左边的的面积尽可能大。注意:若直线穿过一个小矩形,将会把它切成两个部分,分属左右两侧。

输入
第一行是整数R,表示大矩形的右上角坐标是(R,R) (1 <= R <= 1,000,000)。
接下来的一行是整数N,表示一共有N个小矩形(0 < N <= 10000)。
再接下来有N 行。每行有4个整数,L,T, W 和 H, 表示有一个小矩形的左上角坐标是(L,T),宽度是W,高度是H (0<=L,T <= R, 0 < W,H <= R). 小矩形不会有位于大矩形之外的部分。
输出
输出整数n,表示答案应该是直线 x=n。 如果必要的话,x=R也可以是答案。
样例输入
1000
2
1 1 2 1
5 1 2 1
样例输出
5

问题链接:Bailian4136 矩形分割
问题简述:(略)
问题分析:这个问题用差分来解决。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian4136 矩形分割 */#include <bits/stdc++.h>using namespace std;const int N = 1000000;
long long d[N + 2];int main()
{memset(d, 0, sizeof d);int r, n;scanf("%d%d", &r, &n);while (n--) {int l, t, w, h;scanf("%d%d%d%d", &l, &t, &w, &h);d[l + 1] += h, d[l + w + 1] -= h;       // 差分}long long sum = d[0];for (int l = 1; l <= r; l++)d[l] += d[l - 1], sum += d[l];int ans = r;long long end = sum;for (int i = 1; i <= r; i++) {d[i] += d[i - 1];long long t = d[i] + d[i] - sum;if (0 <= t && t <= end) ans = i, end = t;}printf("%d\n", ans);return 0;
}

Bailian4136 矩形分割【差分】相关推荐

  1. 矩形分割(洛谷P1324题题解,Java语言描述)

    题目要求 题目链接 分析 用贪心做. 理由是:从行或列中优先选择一个当前最大的,让最大的值乘以最小的权,可以得到最小值,即最优解. 贪心需要排序,为啥选择Integer[]而不是int[]呢?因为不然 ...

  2. 在绘制USB2.O设备接口差分线时,应注意以下几点要求:

    在绘制USB2.O设备接口差分线时,应注意以下几点要求: ①在元件布局(PCB Layout)时,应将USB2.O芯片放置在离地层最近的信号层,并尽量靠近USB插座,缩短差分线走线距离. ②差分线上不 ...

  3. [CODEVS 3044] 矩形面积求并

    描述 输入n个矩形,求他们总共占地面积(也就是求一下面积的并) http://codevs.cn/problem/3044/ 分析 先贴个Matrix67的讲离散化的博客地址: http://www. ...

  4. nssl1467-U【差分】

    正题 题目大意 n∗nn*nn∗n的矩阵,每次让一个下三角形内数字加上一定权值.求最后所有位置的异或和 解题思路 我们发现如果我们对于没行做前缀和的话,我们需要修改的位置就是一个竖直下去的一列和斜着的 ...

  5. python opencv旋转_Python opencv实现与rotatedrect类似的矩形旋转,pythonopencv,RotatedRect

    本文原理:先旋转矩形到指定角度,然后提取矩形外轮廓,从而获取旋转后的矩形坐标点. #!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Author: t ...

  6. 差分数组|小a的轰炸游戏-牛客317E

    小a的轰炸游戏 题目链接:https://ac.nowcoder.com/acm/contest/317/E 思路 这题考查的是对差分数组原理和前缀和的理解. 四个数组分别记录朝着四个方向下放的个数最 ...

  7. 双绞线与PCB差分信号布线

    目录: 一.双绞线 1.双绞线的概述 2.双绞线消除干扰的原理 1)双绞线对外部干扰的抑制   2)同一电缆内部各线对之间的串扰 二.PCB差分布线介绍 1.概述 2.差分和共模方式 3.差分信号线的 ...

  8. 基于皮肤分割的磨皮算法

    查阅了博客上绝大多数关于皮肤分割和磨皮美颜的算法,然后自己找了各位博主的代码,有自己将各部分代码组合修改调试,最终写了份参照代码.至于引用哪些博主的代码,找的博客太多分不清楚了,有博主看到引用代码可以 ...

  9. 车牌定位--颜色分割

    车牌定位是车牌识别中第一步,也是最重要的一步. 由于中国车牌种类多样,颜色不一, 再加上车牌经常有污损,以及车牌周围干扰因素太多,都成为了车牌定位的难点. 这里首先使用最简单算法来描述车牌定位,以及他 ...

最新文章

  1. Xamarin Essentials教程使用指南针Compass
  2. rust怎么传送坐标_德国人怎么学电机——浅谈电机模型(十一):异步电机:绕线转子电机(一)...
  3. 动态引入/添加js脚本
  4. matlab max与min获取矩阵最大最小值函数
  5. 奖品好low !! -- 说说开源中国oschina的年度评选
  6. C++_结构体的定义和使用_结构体数组---C++语言工作笔记025
  7. LCA RMQ+ST表学习笔记
  8. Codeforces #499 Div2 E (1010C) Border
  9. 一、annotation
  10. OCR文字识别技术总结(二)
  11. 全球计算机科学与技术排名,最新全球高校“计算机科学与信息系统”排名,哪些985表现出色?...
  12. NDT 算法和一些常见配准算法
  13. Annie——一个简洁强大的轻量级视频下载神器
  14. Unity3d随机数生成
  15. 高级电工、模电、数电、电力拖动实验室成套设备
  16. 前端通信实现l聊天室
  17. Mac谷歌浏览器关闭自动更新,下载历史版本方法,解决不自动提示保存密码的问题
  18. 市面上哪款输入法最好用,对比出结论
  19. handsome 404页面
  20. 通过bitmap改变图片的大小

热门文章

  1. C#调用GDAL算法进度信息传递
  2. c语言贪吃蛇源代码window32,Win32贪吃蛇源代码。背景非常简单
  3. c# 调用java webservice 参数获取不到_用C#.NET调用Java开发的WebService传递int,double问题,出现java无法获得值!...
  4. 技术篇-符号制作-线符号制作
  5. C#在控制台工程中嵌入winform窗体
  6. ColorMatrixFilter 色彩矩阵滤镜
  7. linux实现NFS自启动,Linux下NFS的搭建
  8. oracle服务器文件路径,ORACLE 数据库如何通过修改数据文件路径进行数据迁移
  9. android 多类型参数,Android的数据绑定-类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...
  10. 一个按钮多个ajax,如何为表格中的多个按钮设置AJAX调用