【AtCoder - 5659 】>< (思维题)
><
直接写中文了
Problem Statement
给定的是长度为N-1的字符串S. S中的每个字符都是<或>。
当对所有i(1≤i≤N-1)都满足以下条件时,N个非负整数a1,a2,[cdots],aN的序列被认为是满足的
- 如果Si = <:ai <ai + 1
- 如果Si =>:ai> ai + 1
找出N个非负整数的良好序列的元素的最小可能和。
约束条件
- 2≤N≤5×105
- S是长度为N-1的字符串,由<和>组成
Input
输入来自标准输入,格式如下:
S
Output
找出N个非负整数的良好序列的元素的最小可能和。
Sample Input 1
<>>
Sample Output 1
3
a =(0,2,1,0)是一个好序列,其总和为3。没有一个好序列,其总和小于3
Sample Input 2
<>>><<><<<<<>>><
Sample Output 2
28
题目链接:
https://vjudge.net/problem/AtCoder-5659
不难发现找到"<>"这个即可
"<>"左右两边的个数设为l,r;大的一个为maxn,小的一个为minn ,则两边的和为(maxn+1)/2*maxn+(minn+1)/2*minn-minn
"><"左右两边的个数设为l,r;两边的和为(l+1)/2*l+(r+1)/2*r
所以只要遍历一遍s即可,碰到"<>"另外讨论,其他情况假设有n个"<"或者">",则ans+=(n+1)/2*n;
AC代码
#include <bits/stdc++.h>
#define Mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define MEM(x, y) memset(x, y, sizeof(x))
#define Maxn 1000000000000 + 10
using namespace std;
string s;
ll len;
ll ans;
void solve(ll start, ll sum, ll flag) //搜索起始位置,上一次共有sum个连续的<或者>,上一次有没有出现<>
{
ll i;
ll f = ;
ll cnt = ; //计数
char r = s[start];
for (i = start + ; i < len; i++)
{
if (s[i] == r)
cnt++;
else
{
if (r == '<' && s[i] == '>') //存在<>,f=1
f = ;
break;
}
}
if (flag == )
{
if (cnt > sum)
{
if (cnt > )
{
ans += (cnt + ) * cnt / ;
ans -= sum;
}
else
{
ans += ;
ans -= sum;
}
}
else
{
if (cnt > )
{
ans += (cnt + ) * cnt / ;
ans -= cnt;
}
else
{
ans += ;
ans -= cnt;
}
}
if (i >= len)//遍历完成
return;
return solve(i, cnt, f);
}
else
{
if (cnt > )
ans += (cnt + ) * cnt / ;
else
{
ans += ;
}
if (i >= len)//遍历完成
return;
return solve(i, cnt, f);
}
}
int main()
{
ans = ;
cin >> s;
len = s.size();
solve(, , );
cout << ans << endl;
}
【AtCoder - 5659 】>< (思维题)的更多相关文章
- Atcoder Grand Contest 001E - BBQ Hard(组合意义转化,思维题)
Atcoder 题面传送门 & 洛谷题面传送门 Yet another 思维题-- 注意到此题 \(n\) 数据范围很大,但是 \(a_i,b_i\) 数据范围很小,这能给我们什么启发呢? 观 ...
- Atcoder Grand Contest 013 E - Placing Squares(组合意义转化+矩阵快速幂/代数推导,思维题)
Atcoder 题面传送门 & 洛谷题面传送门 这是一道难度 Cu 的 AGC E,碰到这种思维题我只能说:not for me,thx 然鹅似乎 ycx 把题看错了? 首先这个平方与乘法比较 ...
- zoj 3778 Talented Chef(思维题)
题目 题意:一个人可以在一分钟同时进行m道菜的一个步骤,共有n道菜,每道菜各有xi个步骤,求做完的最短时间. 思路:一道很水的思维题, 根本不需要去 考虑模拟过程 以及先做那道菜(比赛的时候就是这么考 ...
- cf A. Inna and Pink Pony(思维题)
题目:http://codeforces.com/contest/374/problem/A 题意:求到达边界的最小步数.. 刚开始以为是 bfs,不过数据10^6太大了,肯定不是... 一个思维题, ...
- ZOJ 3829 贪心 思维题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...
- 洛谷P4643 [国家集训队]阿狸和桃子的游戏(思维题+贪心)
思维题,好题 把每条边的边权平分到这条边的两个顶点上,之后就是个sb贪心了 正确性证明: 如果一条边的两个顶点被一个人选了,一整条边的贡献就凑齐了 如果分别被两个人选了,一作差就抵消了,相当于谁都没有 ...
- C. Nice Garland Codeforces Round #535 (Div. 3) 思维题
C. Nice Garland time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记
PJ考试可能会用到的数学思维题选讲 by Pleiades_Antares 是学弟学妹的讲义--然后一部分题目是我弄的一部分来源于洛谷用户@ 普及组的一些数学思维题,所以可能有点菜咯别怪我 OI中的数 ...
- UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...
- HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)
HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...
随机推荐
- Docker实战笔记命令篇
拉取一个镜像 docker pull ubuntu:14.04 查看系统中的镜像 docker images 运行镜像并进入 docker run -it ubuntu:14.04 查看运行的容器 d ...
- MongoDB 学习笔记之 replica set搭建
Replica set搭建: 修改mongodb.conf文件,指明replSet 登入客户端,指定副本集成员,进行初始化, 如果priority需要调整,使用reconfig()方法.Seconda ...
- centos7 scrapy安装
1.anaconda3安装 wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh 安装报错,可能是源的问题 ...
- cocos2d-x 3.2,Label,Action,Listener,Menu Item等简单用法
转载自:http://blog.csdn.net/pleasecallmewhy/article/details/34931021 创建菜单(Menu Item) // 创建菜单 auto menuI ...
- java零碎知识(每种数据类型默认值,多大,取值范围)
只要记下字节就好了 其它不必死记,取值范围:没有正负的,2的 字节数*8次方-1 , 凡是有正负的2的 (字节数*8)-1次方 -1 比如: 1.byte(有正负):先计算是2的几次方:字节数1*( ...
- Spring Security 入门(一)
当你看到这篇文章时,我猜你肯定是碰到令人苦恼的问题了,我希望本文能让你有所收获. 本人几个月前还是 Spring 小白,几个月走来,看了 Spring,Spring boot,到这次的 Spring ...
- jquery 获取input的值
$("input").attr("value") -- 获取的是input的默认值 $("input").val() ...
- [JoyOI1519] 博彩游戏
题目限制 时间限制 内存限制 评测方式 题目来源 1000ms 131072KiB 标准比较器 Local 题目背景 Bob最近迷上了一个博彩游戏…… 题目描述 这个游戏的规则是这样的:每花一块钱可以 ...
- 关于_GNU_SOURCE宏
是在features.h中用于特性控制的一个功能测试宏 /user/include/features.h /* If _GNU_SOURCE was defined by the user, turn ...
- Rancher 2.1平台搭建及使用
一.概述 1.1.什么是Rancher Rancher是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器. Rancher可以轻松地管理各种环境的Kubernetes,满足IT需求 ...