Vijos 1165-火烧赤壁
描述
曹操平定北方以后,公元208年,率领大军南下,进攻刘表。他的人马还没有到荆州,刘表已经病死。他的儿子刘琮听到曹军声势浩大,吓破了胆,先派人求降了。
孙权任命周瑜为都督,拨给他三万水军,叫他同刘备协力抵抗曹操。
隆冬的十一月,天气突然回暖,刮起了东南风。
没想到东吴船队离开北岸大约二里距离,前面十条大船突然同时起火。火借风势,风助火威。十条火船,好比十条火龙一样,闯进曹军水寨。那里的船舰,都挤在一起,又躲不开,很快地都烧起来。一眨眼工夫,已经烧成一片火海。
曹操气急败坏的把你找来,要你钻入火海把连环线上着火的船只的长度统计出来!
格式
输入格式
第一行:N
以后N行,每行两个数:Ai Bi(表示连环线上着火船只的起始位置和终点,-10^9<=Ai,Bi<=10^9)
输出格式
输出着火船只的总长度
样例1
样例输入1
3
-1 1
5 11
2 9
Copy
样例输出1
11
Copy
提示
n<=20000
如果Ai=Bi是一个点则看作没有长度
来源
huyichen
.
.
.
.
.
分析
我们先定义两个数组,记录坐标,再全部赋给一个新的数组,进行排序,就可以判断是否可用(bz判断),再通过一个find函数,找到原位置,就可以算了。
然而本程序,在洛谷会被卡两个点,要开O2才能过……
.
.
.
.
.
程序:
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
long c[40100];
int n,m;
void read(long &x)
{x=0; int f=1; char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') f=-1; ch=getchar();}while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}x*=f;
}int find(long x)
{for (int i=1;i<=m;i++)if (c[i]==x) return i;
}int main()
{long ans=0,a[20100],b[20100];bool bz[40100];cin>>n;for (int i=1;i<=n;i++){read(a[i]);read(b[i]);c[++m]=a[i];c[++m]=b[i]; }sort(c+1,c+m+1);for (int i=1;i<=n;i++){a[i]=find(a[i]);b[i]=find(b[i])-1;for (int j=a[i];j<=b[i];j++)bz[j]=true;}for (int i=1;i<=m;i++)if (bz[i]) ans+=c[i+1]-c[i];cout<<ans;return 0;
}
转载于:https://www.cnblogs.com/YYC-0304/p/9499903.html
Vijos 1165-火烧赤壁相关推荐
- Vijos 1165 火烧赤壁
题目 题解 C 感受 快排 scanf与printf if语句 全局变量与局部变量 结构体 代码 题目 描述 曹操平定北方以后,公元208年,率领大军南下,进攻刘表.他的人马还没有到荆州,刘表已经病死 ...
- Vijos p1165 火烧赤壁 离散化+单调栈
题目链接:https://vijos.org/p/1165 题意:输入n(n <= 20,000)段线段的端点,问所有线段的长度总和为多少? input: 3 -1 1 5 11 2 9 out ...
- vijos 1006 晴天小猪历险记之Hill——数字三角形的终极变化
题目链接:https://vijos.org/p/1006 数字三角形原题看这里:http://www.cnblogs.com/huashanqingzhu/p/7326837.html 背景 在很久 ...
- vijos 1476 旅游规划题解
题目链接:https://vijos.org/p/1476 解:因为这一定是一棵树,所以我们多画几次图,就会发现所有的最长路径中心点都一样,且中心点把这条最长路径分成两段等长的路. 那么做法就很简单啦 ...
- Vijos P1848 记数问题【进制】
描述 试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1 到 11 中,即在 1.2.3.4.5.6.7.8.9.10.11 中,数字 1 出现了 4 ...
- Vijos P1131 最小公倍数和最大公约数问题【暴力】
最小公倍数和最大公约数问题 描述 输入二个正整数x0,y0(2≤x0≤100000,2≤y0≤1000000),求出满足下列条件的P.Q的个数. 条件:1.P.Q是正整数 2.要求P.Q以xO为最大公 ...
- Vijos P1103 校门外的树【线段树,模拟】
校门外的树 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,--, ...
- |Vijos|树状数组|P1512 SuperBrother打鼹鼠
https://vijos.org/p/1512 一个二维树状数组,注意树状数组不能出现0,把所有坐标+1即可,求子矩阵和为 sub(x2,y2) - sub(x1-1,y2) - sub(x2, y ...
- Vijos P1756 数字反转【进制】
背景 noip2011 NO.1 描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). ...
- Vijos P1449 字符串还原【密码】
背景 小K是一位蔚蓝教主的崇拜者(Orz教主er),有一天,他收到了一封匿名信,信告诉了小K由于他表现出色,得到了一次当面Orz教主的机会,但是要当面Orz教主可不那么容易,不是每个人都有资格Orz教 ...
最新文章
- .NET中的Command(命令)模式
- ZedGraph给LineChart添加数值
- 作业05之《6种质量属性战术》
- Qt Creator创建按钮
- 机器学习集群_机器学习中的多合一集群技术在无监督学习中应该了解
- hdu 1754 I Hate It(分块做法)
- Dagoin之modelform组件
- php7不解析下载,Centos7 配置apache和php,登陆web提示下载,不解析php文件
- [LeetCode] Spiral Matrix II
- mac上捕获Dock截图的方法
- 【matlab】syms x y 用法
- c语言编程定积分sinx,C语言用辛普森公式求sinx在0到π上的定积分的源程序
- MusicStore-1 Code First 通过非迁移实现建立数据库
- 林群院士:从数学谈教育
- IE6躲躲猫bug -IE6 Peekaboo Bug
- 网络异常无法连接远程服务器,《Chess Rush》网络异常进不去怎么回事 无法连接服务器解决方法...
- android英文参考文献,英文参考文献
- 高德地图实时定位显示图标和名字
- html5图片和两行文字垂直居中显示,何如让文字跟图片垂直居中对齐
- 计算机网络基础知识~简单易懂-有图有内容建议码友们点亮拇指+收藏呐~