题解 【Codeforces381A】 Sereja and Dima
本题是很好的双指针练习题。
关于双指针,详见洛谷日报#73。
我们可以用两个指针l和r表示题中两人接下来要比较的数字,用fl标记下一个将要取的人,并分别用两个计数器统计双方的答案。
因此,我们有了如下AC代码:
#include <bits/stdc++.h>//万能头文件 using namespace std;//使用标准名字空间 inline int read()//快速读入
{
int f=,x=;
char c=getchar(); while(c<'' || c>'')
{
if(c=='-')f=-;
c=getchar();
} while(c>='' && c<='')
{
x=x*+c-'';
c=getchar();
} return f*x;
} int n,a[]/*输入的数*/,ans[]/*答案*/,l/*左指针*/,r/*右指针*/,fl/*标记*/; int main()
{
n=read();//输入n for(register int i=; i<=n; i++)
{
a[i]=read();//输入每个数
} l=,r=n;//初始化指针 while(n--)//如果还有牌取
{
if(fl==)//如果是第一个人取
{
if(a[l]<a[r])//如果右边的比左边的牌大
{
ans[]=ans[]+a[r];//累加 --r;//移动指针
}
else//如果右边的牌比左边的小(或者等于)
{
ans[]=ans[]+a[l];//累加 ++l;//移动指针
} fl=;//接下来是第二个人取
}
else//如果是第二个人取
{
//代码和第一个人取几乎一样,只是改了累加的计数器
if(a[l]<a[r])
{
ans[]=ans[]+a[r]; --r;
}
else
{
ans[]=ans[]+a[l]; ++l;
} fl=;//接下来是第一个人取
}
} printf("%d %d",ans[],ans[]);//输出,注意顺序! return ;//完美结束
}
题解 【Codeforces381A】 Sereja and Dima的更多相关文章
- Codeforces Round #223 (Div. 2)--A. Sereja and Dima
Sereja and Dima time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- Codeforces Round #223 (Div. 2) A
A. Sereja and Dima time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- Codeforces 380D Sereja and Cinema (看题解)
Sereja and Cinema 首先我们可以发现除了第一个人, 其他人都会坐在已入坐人的旁边. 难点在于计算方案数.. 我们可以从外往里把确定的人用组合数算上去,然后缩小范围. #include& ...
- Codeforces Little Dima and Equation 数学题解
B. Little Dima and Equation time limit per test 1 second memory limit per test 256 megabytes input s ...
- 【题解】CF374C Inna and Dima
题面传送门 解决思路 本题是找最长路的图上问题,所以先考虑如何建图. 首先把每一个字母转化为数字,然后对于每一个点枚举四个方向,如果有下一个字母,就向那个点建一条边,可以用 \(vector\) 存图 ...
- CodeForces - 425E Sereja and Sets 题解
题目大意: 我们有一个集合 S,其中包含了 m 个不完全相同的区间[l1,r1],[l2,r2]…[lm,rm] (1≤li≤ri≤n,li,ri 都为整数). 定义 f(S)=k,表示集合 S 中能 ...
- CF460B Little Dima and Equation (水题?
Codeforces Round #262 (Div. 2) B B - Little Dima and Equation B. Little Dima and Equation time limit ...
- Codeforces Round #167 (Div. 2) D. Dima and Two Sequences 排列组合
题目链接: http://codeforces.com/problemset/problem/272/D D. Dima and Two Sequences time limit per test2 ...
- Codeforces Round #215 (Div. 2) B. Sereja and Suffixes map
B. Sereja and Suffixes Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset ...
随机推荐
- 《京东B2B业务架构演变》阅读
转载:https://mp.weixin.qq.com/s/5xmmuw8O-I_Fi5bzE-_baA?tdsourcetag=s_pcqq_aiomsg 京东 B2B 业务的定位是让各类型的企业都 ...
- 曼孚科技:AI语音交互领域常用的4个术语
语音交互是基于语音输入的新一代交互模式,比较典型的应用场景是各类语音助手. 本文整理了语音交互领域常用的4个术语,希望可以帮助大家更好地理解这门学科. 1. 语音合成标记语言(SSML) 语音合成标 ...
- tsocks代理git wget
使用clash时, 命令行的wget和git操作可能没有被代理 安装tsocks: apt-get install tsocks 修改配置文件: vi /etc/tsocks.conf 找到: ser ...
- PHPMailer发送邮件遇坑小记
一:phpmailer发送邮件成功了 数据库发送状态也更改 但是用户就是没收到邮件. 出现原因:发送邮件太多 导致邮箱服务器被腾讯封了 发送的邮件统统进入了邮件服务器的草稿箱里. 解决方案: 重新修改 ...
- 学Python必须背的42个常见单词,看看你都会吗?
这42个单词是学习Python必须背会的单词,也是代码中常见的单词.希望你能都背下来! ! 1. adult [ˈædʌlt] 成年人 2. authentication [ɔːˌθentɪˈke ...
- Net项目添加 WebAPI
1.新建一个 WebApiConfig.cs public static void Register(HttpConfiguration config) { // Web API 配置和服务 // ...
- php redis使用
访问连接 远程访问 //实例化 $redis=new Redis(); try{ $redis->connect('47.98.55.11','6379'); $redis->auth(' ...
- c++ 踩坑大法好 枚举
1,枚举是个啥? c++允许程序员创建自己的数据类型,枚举数据类型是程序员自定义的一种数据类型,其值是一组命名整数常量. ,wed,thu,fri,sat,sun}; //定义一个叫day的数据类型, ...
- mybatis(二):缘由
本是Apache的一个开源项目iBatis 2010年,iBatis由Apache Software Foundation(软件基金会)迁移到了Google Code(代码托管平台),并改名为MyBa ...
- Markdown上手使用
前言 学习Markdown主要是为了更好的编辑博客(捂脸),顺便学一学Markdown语法,毕竟MarkdownPad 2放着吃灰好久了(雾) MarkdownPad2 下载 链接:https://p ...