cf Canada cup A题
A. Jumping Ball
256 megabytes
standard input
standard output
In a new version of the famous Pinball game, one of the most important parts of the game field is a sequence of n bumpers. The bumpers are numbered with integers from 1 to n from left to right. There are two types of bumpers. They are denoted by the characters '<' and '>'. When the ball hits the bumper at position i it goes one position to the right (to the position i + 1) if the type of this bumper is '>', or one position to the left (to i - 1) if the type of the bumper at position i is '<'. If there is no such position, in other words if i - 1 < 1 ori + 1 > n, the ball falls from the game field.
Depending on the ball's starting position, the ball may eventually fall from the game field or it may stay there forever. You are given a string representing the bumpers' types. Calculate the number of positions such that the ball will eventually fall from the game field if it starts at that position.
Input
The first line of the input contains a single integer n (1 ≤ n ≤ 200 000) — the length of the sequence of bumpers. The second line contains the string, which consists of the characters '<' and '>'. The character at the i-th position of this string corresponds to the type of the i-th bumper.
Output
Print one integer — the number of positions in the sequence such that the ball will eventually fall from the game field if it starts at that position.
4
<<><
2
5
>>>>>
5
4
>><<
0
In the first sample, the ball will fall from the field if starts at position 1 or position 2.
In the second sample, any starting position will result in the ball falling from the field.
================================================================================================
题目大意:输入有n个字符组成的字符串,每个字符要么是">"要么是"<";当为前者时,位置i向右移动一位变成位置i+1(然后继续看i+1上的字符);当为后者时,位置i向左移动一位变成了位置i-1(然后继续看i-1上的字符).如果位置i移动后i+1>n或者i-1<1,则为出界。输出所有会造成出界的初始位置的数目。
题解:这题一开始没读懂题意,卡了一会(实际上水题啊);
思路一:观察每个字符串会发现只有"><"出现时,>前边的所有连续的>和<后边所有连续的<都不会出界。所以计算出字符串中所有的这种格式的字符数目sum,最后用n-sum即结果。
思路二:如果用法一,会发现处理起来有些麻烦;可以考虑它(法一)的对立面,从左边开始,连续的<一定会出界;从右边开始,连续的>一定会出界;所以,这两边续的总数,即最终结果.
代码如下:
#include <stdio.h>
#include <string.h>
#define maxn 200005
char str[maxn];
int cnt = 0;
int main()
{
int n;
int i,l = 0,r = 0;
scanf("%d",&n);
scanf("%s",str);
for(i = 0; i < n; i++)
if(str[i] =='<')
l++;
else
break;
for(i = n-1; i >= 0; i--)
if(str[i] =='>')
r++;
else
break;
printf("%d\n",l+r); }
cf Canada cup A题的更多相关文章
- 【Codeforces Round 725】Canada Cup 2016
模拟Canada Cup 2016,ABC三题,Rank1376 第三题卡住了 Codeforces 725 C 求出两个相同字符的位置,记为x和y. 然后考虑把相同的那个字符放在第一行的什么地方, ...
- Canada Cup 2016 D. Contest Balloons 好题。优先队列 + 简单贪心
http://codeforces.com/contest/725/problem/D 这题一看就是贪心的了,w - t最小的那个,肯定是优先打死. 但是一直都不会写,为什么呢,因为这个太像二分答案了 ...
- Canada Cup 2016 C. Hidden Word 构造模拟题
http://codeforces.com/contest/725/problem/C Each English letter occurs at least once in s. 注意到题目有这样一 ...
- Codeforces Round #354 (Div. 2)-C. Vasya and String,区间dp问题,好几次cf都有这种题,看来的好好学学;
C. Vasya and String time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Codeforces Canada Cup 2016
A. Jumping Ball time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- 贪心 CF 332 C 好题 赞
题目链接: http://codeforces.com/problemset/problem/332/C 题目意思: 有n个命令,要通过p个,某主席要在通过的p个中选择k个接受. 每个任务有两个值ai ...
- Canada Cup 2016 C. Hidden Word
C. Hidden Word time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- Canada Cup 2016 D. Contest Balloons
最近好弱做什么题目都是做一晚上 这是合肥站炼铜后遗症? 这题就是贪心 我已开始还写了1小时---三分-----. #include<bits/stdc++.h> using namespa ...
- Educational Codeforces Round 24 CF 818 A-G 补题
6月快要结束了 期末也过去大半了 马上就是大三狗了 取消了小学期后20周的学期真心长, 看着各种北方的学校都放假嗨皮了,我们这个在北回归线的学校,还在忍受酷暑. 过年的时候下定决心要拿块ACM的牌子, ...
随机推荐
- jquery.easyui使用详解,和遇到的问题,提供大家在使用的时候少走弯路(二)
上次解释了几个易犯错的地方,当然对于大神们那都是小菜一碟了,今天来说说后台请求数据,分页,返回json数据 废话不多说献上代码 private string QueryList(ArrayList a ...
- WPF学习笔记——TextBox的一些问题
1.如何判断TextBox是否为空? if(textbox.Text != string.empty) //或者 if(textbox.Text.Trim()!="") { } 2 ...
- Mac MySQL 转移 datadir
mysql默认的datadir在启动盘上面,有时database太大,于是决定将datadir迁到存储盘中 Step 1 将原datadir迁到存储盘 mv /usr/local/var/mysql ...
- LeetCode() Largest Number
全排列,超时,知道超时,只是想验证一下. class Solution { public: string largestNumber(vector<int>& nums) { so ...
- pyqt4:线程的串联运行方式
有些时候我们在pyqt中需要线程串行运行,而不是并发运行,用以下方式,这是在网上找的,暂存. > Hello > I have something like the foll scenar ...
- php mb_convert_encoding的使用
mb_convert_encoding( $str, $encoding1,$encoding2 ): $str,要转换编码的字符串 $encoding1,目标编码,如utf-8,gbk,大小写均可 ...
- 第一篇(C#中?与??)
不聊闲话,上干货~!(新手初上路,大牛莫喷,谢谢!) 先说?? 在C#中有个三元运算符 X= A==null?B:A 其中A为bool型.当A为空时,X的值为B;当A不为空时,X的值为A. 现在有个 ...
- 十分钟搞定微信企业帐号“echostr校验失败,请您检查是否正确解密并输出明文echostr”
问题域:在这里我们只解决密文可以正确解密,但微信验证提示“echostr校验失败,请您检查是否正确解密并输出明文echostr”的问题. 干货:没有正确验证的原因是:你给微信返回的是字符串,而微信需要 ...
- Search for a Range
Given a sorted array of integers, find the starting and ending position of a given target value. You ...
- 基于android平台的出题软件---- 每日30题
本app共编写了3个activity,1.Mainactivity作为主界面.2.surface,用来显示随机出的题.3.showresult,用来打印所有做过的题(含结果),一个类function用 ...