codeforces_1075_C. The Tower is Going Home
http://codeforces.com/contest/1075/problem/C
题意:一个长宽均为1e9的棋盘,n个垂直障碍在x列无限长,m个水平障碍在第y行从第x1列到x2列。可以水平和垂直走。问从(1,1)走到(1e9,*)最少需要消除多少个障碍。

思路:只有遇到从1开始的水平障碍和一个垂直障碍相交时,棋子一定需要消除一个障碍,不从1开始的水平障碍都没有意义。只考虑第一个垂直障碍左边的情况,需要消除的障碍数时与第一个垂直障碍相交的水平障碍数。当选择消掉第一个垂直障碍时,可能会因为这一次消除而造成之前若干个水平障碍的消除是无用的。并且水平障碍的顺序可以任意,因而可以先升序排序,这样可以降低复杂度。所以,应该优先考虑消除垂直障碍。遍历从左开始消除垂直障碍的所有情况,取最小值。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std; const int N=;
const int M=; int main()
{
int n,m,cb[N],rb[N];
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=; i<=n; i++)
scanf("%d",&cb[i]);
cb[n+]=M;
int cntrb=;
for(int i=; i<m; i++)
{
int x1,x2,y;
scanf("%d%d%d",&x1,&x2,&y);
if(x1==)
rb[cntrb++]=x2;
}
sort(cb,cb+n+);
sort(rb,rb+cntrb);
int ans=*N;
if((n==&&m==)||(cntrb==))
ans=;
int tj=;
for(int i=; i<=n+; i++)
{
for(int j=tj; j<cntrb; j++)
{
if(rb[j]>=cb[i])
{
int tmp=cntrb-j+i-;
ans=min(ans,tmp);
tj=j;
break;
}
if(j==cntrb-)
ans=min(ans,i-);
}
}
printf("%d\n",ans);
}
return ;
}
codeforces_1075_C. The Tower is Going Home的更多相关文章
- Tower是个不错的项目管理开放平台
简单,易用,轻量级,挺多大项目都在用. 目前公司的项目也在使用,但是从高层到底下,随意惯了,最终没有用起来. 感觉适合年轻激情的创业公司团队来使用. 附上地址:https://tower.im/
- dwarf tower
dwarf tower(dwarf.cpp/c/pas)[问题描述]Vasya在玩一个叫做"Dwarf Tower"的游戏,这个游戏中有n个不同的物品,它们的编号为1到n.现在Va ...
- HDU1329 Hanoi Tower Troubles Again!——S.B.S.
Hanoi Tower Troubles Again! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- ZOJ-1239 Hanoi Tower Troubles Again!
链接:ZOJ1239 Hanoi Tower Troubles Again! Description People stopped moving discs from peg to peg after ...
- Ansible-Tower快速入门-6.查看tower的仪表板【翻译】
查看tower的仪表板 到这一步,我们已经可以在屏幕上看到tower的仪表板了,我们可以看到你目前"主机""资产清单"和"项目"的汇总信息, ...
- 自动运维:Ansible -ansible tower
文档主页:http://docs.ansible.com/参考文档:http://docs.ansible.com/ansible/参考文档:http://docs.ansible.com/ansib ...
- dp --- hdu 4939 : Stupid Tower Defense
Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ...
- 塔吊力矩限制器,塔吊黑匣子,塔吊电脑,tower crane
塔机力矩限制器,tower crane 适用于各种类型的固定臂塔机和可变臂塔机 塔机力矩限制器是塔式起重机机械的安全保护装置,本产品采用32位高性能微处理器为硬件平台,软件算法采用国内最先进的三滑轮取 ...
- UVa 437 The Tower of Babylon(经典动态规划)
传送门 Description Perhaps you have heard of the legend of the Tower of Babylon. Nowadays many details ...
随机推荐
- JavaScript中面向对象那点事
鉴于自己在JavaScript这方面比較薄弱.所以就找了一本书恶补了一下(被称为犀利书的JavaScript权威指南).书的内容尽管多了点,但这也充分说明了js中的东西还是挺多的.尽管我们的定位不是前 ...
- YTU 2903: A--A Repeating Characters
2903: A--A Repeating Characters 时间限制: 1 Sec 内存限制: 128 MB 提交: 50 解决: 30 题目描述 For this problem,you w ...
- 工作中常用到的JS校验
1. // 验证是否为空 2. function check_blank(obj, obj_name){ 3. if(obj.value != ''){ 4. return true; 5. }els ...
- 二:多线程--GCD
一.简单介绍 1.GCD全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”,纯C语言,提供了非常多强大的函数 2.GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方 ...
- hdu5475(线段树单点修改,统计区间乘积)
题目意思: 给定a*b*c*d*e*f*....,可以在某一步去掉前面的一个因子,每次回答乘积. #include <cstdio> #include <cstring> #i ...
- maven项目没有错,但是在项目头上有红叉的解决方法
转自:https://blog.csdn.net/myblog_dhy/article/details/41695107 我在使用maven的过程中,要导入某个maven项目,导入的过程中会弹出一个框 ...
- javascript 中==与===
1.==相等运算符 1.1如果操作数具有相同的类型,则判断其等同性,如果两个数的值相等,则返回true(相等),否则返回 false (不相等) 1.2如果两个操作数类型不同,则按如下规则: null ...
- ArcGIS for JavaScript 3.9 本机IIS部署
arcgis 官方网站经常会打不开,天朝人民都懂得!因此将arcgis for javascript 配置到本机访问 首先esri中国下载最新版3.9的API: http://support.esri ...
- 重启fpm
ps aux | grep php-fpm cat /etc/php-fpm.conf kill -USR2 `cat /run/php-fpm/php-fpm.pid
- bzoj 1609[Usaco2008 Feb]Eating Together麻烦的聚餐【dp】
设up[i][j]为第i位升序为j的最小修改数,down为降序 #include<iostream> #include<stdio.h> using namespace std ...