博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #540 (Div. 3) B. Tanya and Candies
阅读量:4358 次
发布时间:2019-06-07

本文共 1133 字,大约阅读时间需要 3 分钟。

cnblog上的markdown编辑器不太好用。

这道题本来应该能做出来的,但当时就是没想到选定一个元素,把他去掉之后后边的补过来, 则只需要计算前几个的前n项分奇偶的和,加上前移一位后从后面数的分奇偶的和就行了。

我当时只想求一边的分奇偶的和,之后傻了吧唧的还想判断当前元素的奇偶性,再判断移动一位后当前需要加多少个数,搞得特别乱,所以就没做出来。

下面是代码。

#include 
#define N 200005using namespace std;int a[N],ltor[N],rtol[N],n,ans;int main() { ios::sync_with_stdio(false); cin.tie(0); cin>>n; for (int i=0;i
>a[i]; for (int i=0;i
=2?ltor[i-2]:0); //求从左到右的分奇偶项的前n项和 for (int i=n-1;i>=0;i--) rtol[i]=a[i]+rtol[i+2]; //求从右到左的分奇偶项的前n项和 for (int i=0;i
=2) { a=ltor[i-2]; b=ltor[i-1]; } else if (i==1) b=ltor[0]; a+=rtol[i+1]; b+=rtol[i+2]; ans+=(a==b); } cout<
<

里面有好几个值得学习的地方。

首先是分奇偶性前n项的和,这个看着容易,其实最开始的两位还是得想一想才能做出来,但要是记住这段代码的话,会快不少。

for (int i=0;i
=2?ltor[i-2]:0); //求从左到右的分奇偶项的前n项和 for (int i=n-1;i>=0;i--) rtol[i]=a[i]+rtol[i+2]; //求从右到左的分奇偶项的前n项和

转载于:https://www.cnblogs.com/yichuan-sun/p/10433168.html

你可能感兴趣的文章
No input file specified
查看>>
获取字符串中出现次数最多的字符
查看>>
Selenium3自动化问题一:selenium3在火狐浏览器执行driver.quit()报错2052解决方案
查看>>
hdoj1754 线段树--单点更新
查看>>
算法题之一(数字二进制形式中1的个数)
查看>>
python学习--去除空格
查看>>
3D渲染管线的概述
查看>>
数据挖掘看问题不能太局部,还要更全面一些
查看>>
HDU 3395 Special Fish
查看>>
Arduino 数字函数总结
查看>>
开店选址需经过的五道坎
查看>>
P1020 导弹拦截
查看>>
C# 对文本文件的几种读写方法总结
查看>>
git仓库使用
查看>>
数据结构-循环顺序队列&链队列
查看>>
xlistview(头xml)
查看>>
zencart常用表单模块
查看>>
Magic Zoom 使用说明
查看>>
杭电1114
查看>>
各类排序模版(计数排序、基数排序、桶排序、冒泡排序、选择排序、插入排序、希尔排序、归并排序、原地归并排序、快速排序、堆排序)...
查看>>