平常水题
来源:互联网 发布:php 数组按某一值排序 编辑:程序博客网 时间:2024/05/17 01:23
蚂蚁
Time limit per test: 0.5 seconds
Time limit all tests: 5.0 seconds
Memory limit: 256 megabytes
水平线上有 N 只蚂蚁,每只蚂蚁的位置及大小均不同。他们沿着 X 轴爬行,有的向左,有的向右,爬行的速度是一样的,两只蚂蚁相遇大一点的会吃掉小的。
现在从左到右给出每只蚂蚁的大小和爬行的方向(0 表示向左,1 表示向右)。问足够长的时间之后,能剩下多少只蚂蚁?
Input
第 1 行:一个整数 N,表示蚂蚁的数量 (1≤N≤105)。
第 2 到 N+1 行:每行两个数 Ai,Bi (1≤Ai≤109,Bi∈{0,1}),中间用空格分隔,分别表示蚂蚁的大小及爬
行的方向,Bi=0 表示向左,Bi=1 表示向右。
对于 3/8 的数据,存在 x 满足:所有坐标比 x 小的蚂蚁向左爬、坐标比 x 大的蚂蚁向右爬;或者所有坐标比 x 小的蚂蚁向右爬、坐标比 x 大的蚂蚁向左爬。
Output
输出最终剩下的蚂蚁的数量。
Examples
input
5
4 0
3 1
2 0
1 0
5 0
output
Time limit per test: 0.5 seconds
Time limit all tests: 5.0 seconds
Memory limit: 256 megabytes
水平线上有 N 只蚂蚁,每只蚂蚁的位置及大小均不同。他们沿着 X 轴爬行,有的向左,有的向右,爬行的速度是一样的,两只蚂蚁相遇大一点的会吃掉小的。
现在从左到右给出每只蚂蚁的大小和爬行的方向(0 表示向左,1 表示向右)。问足够长的时间之后,能剩下多少只蚂蚁?
Input
第 1 行:一个整数 N,表示蚂蚁的数量 (1≤N≤105)。
第 2 到 N+1 行:每行两个数 Ai,Bi (1≤Ai≤109,Bi∈{0,1}),中间用空格分隔,分别表示蚂蚁的大小及爬
行的方向,Bi=0 表示向左,Bi=1 表示向右。
对于 3/8 的数据,存在 x 满足:所有坐标比 x 小的蚂蚁向左爬、坐标比 x 大的蚂蚁向右爬;或者所有坐标比 x 小的蚂蚁向右爬、坐标比 x 大的蚂蚁向左爬。
Output
输出最终剩下的蚂蚁的数量。
Examples
input
5
4 0
3 1
2 0
1 0
5 0
output
2
题意:有n只蚂蚁,从左到右排列着,每只蚂蚁有自己的大小,如果两只蚂蚁相遇,则较大的蚂蚁会吃掉较小的蚂蚁并继续朝着原来的方向移动。(每只蚂蚁的大小不同,但速度相同,也就是说同方向移动的蚂蚁永远不会相遇,1代表蚂蚁向右移动,0代表蚂蚁向左移动。)
解题思路:简单模拟。主要是对栈的使用,栈的特质:后进先出。若是向右的移动的蚂蚁就放进栈里,若是向左的蚂蚁,则比较这只蚂蚁与最后放进栈(向左移动)的蚂蚁的大小。若向右的蚂蚁比向左的蚂蚁大,删除最后放进栈的蚂蚁,并继续比较栈剩下的蚂蚁大小,剩下的蚂蚁总数减一。若向右的蚂蚁比向向左的蚂蚁小,及继续枚举下一个蚂蚁。
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<map>#include<queue>#include<stack>using namespace std;stack<long long>k;int main(){int n,p;long long s;scanf("%d",&n);int ans = n;for(int i = 1;i <= ans;i++){scanf("%lld %d",&s,&p);if(p == 1){k.push(s);}else if(p == 0){while(!k.empty()){if(s > k.top()){n--;k.pop();}else{n--;break;}}}}printf("%d",n);return 0;}
阅读全文
0 0
- 平常水题
- 平常水题
- 平常水题
- 平常水题
- 平常水题
- 平常水题
- 平常水题
- 平常水题
- 平常水题
- 平常水题
- 平常水题
- 平常水题
- 平常水题 Educational Codeforces Round 26 C (错误总结)
- 平常人要走平常路?
- 平常水题 — Codeforces Round #415 (Div. 2) B. Summer sell-off (贪心 + 错误总结)
- 50道java编程小题,平常可以拿来练手
- 50道java编程小题,平常可以拿来练手
- 平常整理
- jQuery 7 关于css操作
- 1013. 数素数 (20)
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- RecyclerView的使用<注:ListView与GridView 的升级版>
- java中的反射机制
- 平常水题
- Struts2 源码分析
- 数据压缩实验四
- SVM的matlab实现——CVX工具箱应用
- bzoj 3112: [Zjoi2013]防守战线 单纯形
- 计网笔记之打洞机制和socket编程
- 【struts】struts导入源码和生成API文档
- Struts2 源码分析——拦截器的机制
- css 盲点补充(慢更)