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的更多相关文章

  1. Tower是个不错的项目管理开放平台

    简单,易用,轻量级,挺多大项目都在用. 目前公司的项目也在使用,但是从高层到底下,随意惯了,最终没有用起来. 感觉适合年轻激情的创业公司团队来使用. 附上地址:https://tower.im/

  2. dwarf tower

    dwarf tower(dwarf.cpp/c/pas)[问题描述]Vasya在玩一个叫做"Dwarf Tower"的游戏,这个游戏中有n个不同的物品,它们的编号为1到n.现在Va ...

  3. 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 ...

  4. ZOJ-1239 Hanoi Tower Troubles Again!

    链接:ZOJ1239 Hanoi Tower Troubles Again! Description People stopped moving discs from peg to peg after ...

  5. Ansible-Tower快速入门-6.查看tower的仪表板【翻译】

    查看tower的仪表板 到这一步,我们已经可以在屏幕上看到tower的仪表板了,我们可以看到你目前"主机""资产清单"和"项目"的汇总信息, ...

  6. 自动运维:Ansible -ansible tower

    文档主页:http://docs.ansible.com/参考文档:http://docs.ansible.com/ansible/参考文档:http://docs.ansible.com/ansib ...

  7. dp --- hdu 4939 : Stupid Tower Defense

    Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...

  8. 塔吊力矩限制器,塔吊黑匣子,塔吊电脑,tower crane

    塔机力矩限制器,tower crane 适用于各种类型的固定臂塔机和可变臂塔机 塔机力矩限制器是塔式起重机机械的安全保护装置,本产品采用32位高性能微处理器为硬件平台,软件算法采用国内最先进的三滑轮取 ...

  9. UVa 437 The Tower of Babylon(经典动态规划)

    传送门 Description Perhaps you have heard of the legend of the Tower of Babylon. Nowadays many details ...

随机推荐

  1. JavaScript中面向对象那点事

    鉴于自己在JavaScript这方面比較薄弱.所以就找了一本书恶补了一下(被称为犀利书的JavaScript权威指南).书的内容尽管多了点,但这也充分说明了js中的东西还是挺多的.尽管我们的定位不是前 ...

  2. YTU 2903: A--A Repeating Characters

    2903: A--A Repeating Characters 时间限制: 1 Sec  内存限制: 128 MB 提交: 50  解决: 30 题目描述 For this problem,you w ...

  3. 工作中常用到的JS校验

    1. // 验证是否为空 2. function check_blank(obj, obj_name){ 3. if(obj.value != ''){ 4. return true; 5. }els ...

  4. 二:多线程--GCD

    一.简单介绍 1.GCD全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”,纯C语言,提供了非常多强大的函数 2.GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方 ...

  5. hdu5475(线段树单点修改,统计区间乘积)

    题目意思: 给定a*b*c*d*e*f*....,可以在某一步去掉前面的一个因子,每次回答乘积. #include <cstdio> #include <cstring> #i ...

  6. maven项目没有错,但是在项目头上有红叉的解决方法

    转自:https://blog.csdn.net/myblog_dhy/article/details/41695107 我在使用maven的过程中,要导入某个maven项目,导入的过程中会弹出一个框 ...

  7. javascript 中==与===

    1.==相等运算符 1.1如果操作数具有相同的类型,则判断其等同性,如果两个数的值相等,则返回true(相等),否则返回 false (不相等) 1.2如果两个操作数类型不同,则按如下规则: null ...

  8. ArcGIS for JavaScript 3.9 本机IIS部署

    arcgis 官方网站经常会打不开,天朝人民都懂得!因此将arcgis for javascript 配置到本机访问 首先esri中国下载最新版3.9的API: http://support.esri ...

  9. 重启fpm

    ps aux | grep php-fpm cat /etc/php-fpm.conf kill -USR2 `cat /run/php-fpm/php-fpm.pid

  10. bzoj 1609[Usaco2008 Feb]Eating Together麻烦的聚餐【dp】

    设up[i][j]为第i位升序为j的最小修改数,down为降序 #include<iostream> #include<stdio.h> using namespace std ...