[ An Ac a Day ^_^ ] HihoCoder 1249 Xiongnu's Land 线性扫描
拿到了icpc北京站的参赛名额 感谢亮哥~
虽然是地狱之战 但也要全力以赴!
题意:
有一片沙漠 n片绿洲 让你用一条线分成两部分
左≥右 而且分割线要尽量靠右 问线的位置
思路:
网上说可以二分 没太看懂……
还有一种思路就是线性扫描
将二维的图化成一维的线 然后从头扫一遍
遇到左≥sum/2时试探着向右继续扫
最后输出答案
不知道为啥hihocoder能过uvalive死活就是过不去……
- #include<stdio.h>
- #include<iostream>
- #include<algorithm>
- #include<math.h>
- #include<string.h>
- #include<string>
- #include<map>
- #include<set>
- #include<vector>
- #include<queue>
- #define M(a,b) memset(a,b,sizeof(a))
- using namespace std;
- typedef long long ll;
- const int inf=0x3f3f3f;
- const int maxn=1e6+;
- ll line[maxn];
- int main(){
- int T;
- scanf("%d",&T);
- while(T--){
- int sq;
- scanf("%d",&sq);
- int n;
- scanf("%d",&n);
- int x,y,w,h;
- M(line,);
- ll sum=;
- for(int i=;i<n;i++){
- scanf("%d%d%d%d",&x,&y,&w,&h);
- for(int j=x;j<x+w;j++){ //将二维的图转化成一维的线 使时间复杂度达到线性时间O(n)
- line[j]+=h;
- sum+=h;
- }
- }
- sum++;
- sum/=;
- ll cal=;
- for(int i=;i<=sq;i++){ //扫描
- cal+=line[i];
- if(cal>=sum){ //已经符合题意
- i++;
- while(line[i]==&&i<sq) i++; //试探着继续扫
- printf("%d\n",i);
- break;
- }
- }
- }
- return ;
- }
- /*
- 2
- 1000
- 2
- 1 1 2 1
- 5 1 2 1
- 1000
- 1
- 1 1 2 1
- */
[ An Ac a Day ^_^ ] HihoCoder 1249 Xiongnu's Land 线性扫描的更多相关文章
- 二分+贪心 hihocoder 1249 Xiongnu's Land (15北京A)
题目传送门 题意:有多个矩形分布在[0, 0]到[R, R]的的范围内,画一条竖线分割成两块矩形,使得左边包括矩形的面积大于等于右边的面积,在这个前提下使得画的竖线尽量远 分析:二分答案,当面积相等时 ...
- 【hihocoder 1249 Xiongnu's Land】线性扫描
2015区域赛北京赛区的三水,当时在赛场上没做出的原因是复杂度分析不正确导致把方法想复杂了.近来复习复杂度分析,觉得不能只是笼统地看渐进复杂度(big-O),更应根据算法的伪码计算真正的以基本操作数为 ...
- UVALive 7261 Xiongnu's Land (扫描线)
Wei Qing (died 106 BC) was a military general of the Western Han dynasty whose campaigns against the ...
- hihocoder 1249(2015ACM/ICPC北京)
题意: 给你一块正方形的土地,里面有矩形的草地,要求把土地分成两份,满足以下两个条件 1.两边的绿洲,左边>=右边,差值尽可能的小 2.在满足1的情况下分给左边的土地尽快能的多 而且绿洲不会出现 ...
- (UVALive 7261)Xiongnu's Land 二分
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- hiho1249 Xiongnu's Land
题目链接:http://hihocoder.com/problemset/problem/1249 题目大意:有一个大正方形里面有好多不重叠的小矩形,怎么找出一条竖线分割这个正方形,使得两边的矩形面积 ...
- 2015北京区域赛 Xiongnu's Land
Wei Qing (died 106 BC) was a military general of the Western Han dynasty whose campaigns against the ...
- UVALive - 7261 Xiongnu's Land
思路: 先二分下界,再二分上届. #include <bits/stdc++.h> using namespace std; #define MP make_pair #define PB ...
- [转]SPICE仿真软件基础(整理)
现在常用的SPICE仿真软件为方便用户使用都提供了较好的用户界面,在用仿真库中的元器件连成原理图后就可以进行仿真(当然要设置必要的仿真参数),但实际上只是用原理图自动产生了SPICE的格式语句,还是要 ...
随机推荐
- Shell终端收听音乐--网易云音乐命令行版
Musicbox:网易云音乐命令行版本 高品质网易云音乐命令行版本,简洁优雅,丝般顺滑,基于Python编写. 这款命令行的客户端使用 Python 构建,以 mpg123 作为播放后端: Vim 式 ...
- 解析Properties文件
/** * 传入需要解析的文件属性,传入文件的路径 * @param para 需要获取的属性名称.也就是键值对中的键名称 * @param filepath * @return */ public ...
- line-height属性详解
line-height属性详解:http://www.cnblogs.com/dolphinX/p/3236686.html
- Python学习笔记——基础篇【第五周】——正则表达式(re)
目录 1.简介 2.字符匹配 1.简介:就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译 ...
- mysql 数据库知识
order by 字段 将查到的list集合按指定字段升序排序 order by 字段 DESC 将查到的list集合按指定字段降序排序 GROUP BY 语句用于结合合计函数,根据一个或多 ...
- C#中的DataSet添加DataTable问题
最近在使用DataTable来给前台控件绑定数据,开始时查了网上的一些给DataSet添加DataTable时需要注意的地方,一般都要添加表名并且使用DataTable.Copy()方法,否则会报错, ...
- Homestead 使用总结
homestead Laravel Homestead是一个官方预封装的Vagrant"箱子" 内置 Nginx.PHP 5.6.MySQL.Postgres.Redis.Memc ...
- Mac下MySQL的安装与配置
之前一直用的是阿里云的服务器,在服务器上装了一个MySQL,但是今天发现到期了,而且续费时发现之前的大学生优惠不能用了,可是明明到6月份,大学生才毕业啊,shit!!!所以没办法只能在自己电脑上装一个 ...
- 第六十二节,html分组元素
html分组元素 学习要点: 1.分组元素总汇 2.分组元素解析 本章主要探讨HTML5中分组元素的用法.所谓分组,就是用来组织相关内容的HTML5元素,清晰有效的进行归类. ...
- <? extends T>和<? super T>
转自:Java泛型中extends和super的区别? 另,问题来源:Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同? <? ext ...