【51nod-1289】大鱼吃小鱼

题干:

有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼?Input第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。 
第2 - N + 1行:每行两个数A ii, B ii,中间用空格分隔,分别表示鱼的大小及游动的方向(1 <= A ii <= 10^9,B ii = 0 或 1,0表示向左,1表示向右)。Output输出1个数,表示最终剩下的鱼的数量。Sample Input
5
4 0
3 1
2 0
1 0
5 0
Sample Output
2


解题报告:

    用栈直接模拟,十分简单。向右游的就入栈,向左游的就依次判断出栈与否。如果栈为空并且来了一条往左游的鱼,那就ans++,最后ans+栈中元素的个数就是答案。

    本题亦可以直接模拟,但是较繁琐,有空可以一试。

ac代码:

#include<iostream>
#include<cstdio>
#include<stack>using namespace std;
int main()
{stack< int > s;int n,x,d,flag;int ans=0;int top=0;scanf("%d",&n);for(int i = 1; i<=n; i++) {
//		printf("\n****************************8\n") ;flag=0;scanf("%d%d",&x,&d);if(s.empty() && d==0) {ans++;}else if(s.empty()&&d==1) {s.push(x);}else if( !s.empty() && d==1 ) {s.push(x);}else {while(!s.empty()) {top=s.top();if(top>x) {flag=1;//表示向左游的这个鱼被吃掉了(就是 这鱼不够大 不足以吃掉所有的鱼)。 break;	}else s.pop();}if(flag==0) ans++;	}	}printf("%d\n",s.size()+ans);return 0 ;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过属性给实体赋值

获取实体属性 Type type family.GetType(); //family为实体对象 PropertyInfo[] infos type.GetProperties(); foreach (PropertyInfo info in infos){info.GetValue(family); //取值info.SetValue(bFamily, info.GetValue(family)); //赋值 }

【CF#801 A.】 Vicious Keyboard(字符串查找,水题)

题干&#xff1a;Tonio has a keyboard with only two letters, "V" and "K". One day, he has typed out a string s with only these two letters. He really likes it when the string "VK" appears, so he wishes to change at most one let…

关于ajax请求400问题解决

ajax请求&#xff1a;400 bad request 原因有两种&#xff1a; 参数不匹配&#xff0c;请求太长 如何解决 针对参数不匹配&#xff0c;只能一一对照 请求太长的话&#xff0c;api最好使用post方式请求&#xff0c;我遇到的问题就是post请求太长&#xff0c;这时候需要给参数…

【uva-673】 Parentheses Balance(括号匹配问题)

题干&#xff1a; You are given a string consisting of parentheses () and []. A string of this type is said to be correct:(a)if it is the empty string(b)if A and B are correct, AB is correct,(c)if A is correct, (A) and [A] is correct.Write a program that ta…

layui前端框架弹出框图标整理

1绿色对勾 2红色 3黄色问号 4黑色小锁 5红色哭脸 6绿色笑脸

【CF#757A】Gotta Catch Em' All!

题干&#xff1a;Bash wants to become a Pokemon master one day. Although he liked a lot of Pokemon, he has always been fascinated by Bulbasaur the most. Soon, things started getting serious and his fascination turned into an obsession. Since he is too young…

layui 折叠面板使用无效问题

静态折叠面板无法使用 解决方案&#xff1a;layui.js 引用位置应该放在距离layui.use临近的地方 动态设置折叠面板无法点击折叠展开 解决方案&#xff1a;动态加载完界面后&#xff0c;执行下面语句&#xff1a; layui.element.init();

【HDU - 1031 】Design T-Shirt(水题 排序)

题干&#xff1a;Soon after he decided to design a T-shirt for our Algorithm Board on Free-City BBS, XKA found that he was trapped by all kinds of suggestions from everyone on the board. It is indeed a mission-impossible to have everybody perfectly satisfie…

针对标签属性data-**的使用

在网站开发过程中&#xff0c;很多时候需要自定义一些标签属性&#xff0c;可以使用&#xff1a; 在html中&#xff1a; data-**"" 在js代码中取值&#xff1a; var **标签.data("**")

【HDU - 2203】 亲和串 (思维题,可选KMP)

题干&#xff1a;Problem Description人随着岁数的增长是越大越聪明还是越大越笨&#xff0c;这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考&#xff0c;因为他在很小的时候就知道亲和串如何判断了&#xff0c;但是发现&#xff0c;现在长大了却不知道怎么去…

【HDU - 4509】湫湫系列故事——减肥记II(合并区间模板 or 离散化标记 or 线段树)

题干&#xff1a;虽然制定了减肥食谱&#xff0c;但是湫湫显然克制不住吃货的本能&#xff0c;根本没有按照食谱行动&#xff01; 于是&#xff0c;结果显而易见… 但是没有什么能难倒高智商美女湫湫的&#xff0c;她决定另寻对策——吃没关系&#xff0c;咱吃进去再运动运动消…

layui中日期格式化方式

如何对日期进行格式化 layui.util.toDateString(日期值, yyyy-MM-dd HH:mm:ss.fff)

【51NOD - 1523】 非回文(dfs)

题干&#xff1a;一个字符串是非回文的&#xff0c;当且仅当&#xff0c;他只由前p个小写字母构成&#xff0c;而且他不包含长度大于等于2的回文子串。 给出长度为n的非回文串s。请找出字典序比s大的&#xff0c;而且字典序要最小的长度为n的非回文。 Input单组测试数据。 第一…

C# XML字符串与DataTable相互转换

不多说&#xff0c;直接上代码&#xff1a; //DataTable转Xml字符串 public static string ConvertDataTableToXML(DataTable xmlDS){MemoryStream stream null;XmlTextWriter writer null;try{stream new MemoryStream();writer new XmlTextWriter(stream, Encoding.Defa…

【HDU - 2093】 考试排名(排序+格式输出)

题干&#xff1a;C编程考试使用的实时提交系统&#xff0c;具有即时获得成绩排名的特点。它的功能是怎么实现的呢&#xff1f; 我们做好了题目的解答&#xff0c;提交之后&#xff0c;要么“AC”&#xff0c;要么错误&#xff0c;不管怎样错法&#xff0c;总是给你记上一笔&…

C# 实现将网络资源保存到本地

/// <summary>/// 单个文件保存从对方服务器到自己网站/// </summary>/// <param name"aUrl"></param>/// <param name"aPath"></param>/// <returns></returns>[HttpGet]public string FileSave(string …

【sdut 1751】 区间覆盖问题

区间覆盖问题Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description设x1 , x2 ,…… , xn 是实直线上的n 个点。用固定长度的闭区间覆盖这n 个点&#xff0c;至少需要多少个这样的固定长度闭区间?对于给定的实直线上的n个点和闭区间的长…

C# 读取根目录的json文件中的某个值

/// <summary>/// 读取JSON文件/// </summary>/// <param name"key">JSON文件中的key值</param>/// <returns>JSON文件中的value值</returns>public string Readjson(string key){//获取winform应用根目录string jsonfile Appl…

【nyoj 47】 过河问题(思维)

过河问题时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;5描述在漆黑的夜里&#xff0c;N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话&#xff0c;大家是无论如何也不敢过桥去的。不幸的是&#xff0c;N个人一共只带了一只…

layui数据表格循环数据给特殊行变颜色遇到的bug

数据表格加载玩数据后&#xff0c;进行颜色区分&#xff0c;然后再进行排序&#xff0c;发现颜色变化有bug 原因&#xff1a; //其中res.data数据并没有变化&#xff0c;只是渲染数据顺序发生了变化&#xff0c;这时候&#xff0c;如此循环便会出现问题 $.each(res.data, fun…