[洛谷P3929]SAC E#1 - 一道神题 Sequence1
题目大意:给你一串数列,问你能否改变1个数或不改,使它变成波动数列?
一个长度为n的波动数列满足对于任何i(1 <= i < n),均有:
a[2i-1] <= a[2i] 且 a[2i] >= a[2i+1](若存在) 或者
a[2i-1] >= a[2i] 且 a[2i] <= a[2i+1](若存在)
解题思路:贪心地扫一遍即可。一共只有两种情况。
我们对于每种队列,记录下它前一个元素和当前元素,如果它不符合当前队列要求,就使计数器加1,并把它改成±∞(改成最大或最小值肯定能满足后面一个数的条件,因此不需要考虑后一个数)。
然后两个计数器当中有一个<2就输出Yes,否则No。
时间复杂度$O(n)$。
C++ Code:
#include<cstdio>
using namespace std;
int n;
int main(){
while(~scanf("%d",&n)){
int cnt1=0,pre1,pre2,cnt2=0;
scanf("%d",&pre2);
pre1=pre2;
for(int i=2;i<=n;++i){
int now;
scanf("%d",&now);
if((i&1)&&now>pre1){
++cnt1;
pre1=-0x3f3f3f3f;
}else
if((i&1^1)&&now<pre1){
++cnt1;
pre1=0x3f3f3f3f;
}else
pre1=now;
if((i&1)&&now<pre2){
++cnt2;
pre2=0x3f3f3f3f;
}else
if((i&1^1)&&now>pre2){
++cnt2;
pre2=-0x3f3f3f3f;
}else
pre2=now;
}
if(cnt1<2||cnt2<2)puts("Yes");else
puts("No");
}
return 0;
}
[洛谷P3929]SAC E#1 - 一道神题 Sequence1的更多相关文章
- 洛谷P3929 SAC E#1 - 一道神题 Sequence1【枚举】
题目描述 小强很喜欢数列.有一天,他心血来潮,写下了一个数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种:波动数列. 一个长度为n的波动数列满足对于任何i(1 <= i < n),均有: ...
- 洛谷 P3927 SAC E#1 - 一道中档题 Factorial【数论//】
题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服,立刻就要算这个数在k进制表示下末尾0的个数. 但是SOL菌太菜了于是请 ...
- 洛谷P3928 SAC E#1 - 一道简单题 Sequence2
提交地址 题目背景 小强和阿米巴是好朋友. 题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强. ...
- 洛谷-P3927 SAC E#1 - 一道中档题 Factorial
原址 题目背景 数据已修改 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. ...
- [洛谷3930]SAC E#1 - 一道大水题 Knight
Description 他们经常在一起玩一个游戏,不,不是星际争霸,是国际象棋.毒奶色觉得F91是一只鸡.他在一个n×n的棋盘上用黑色的城堡(车).骑士(马).主教(象).皇后(副).国王(帅).士兵 ...
- [洛谷P3927]SAC E#1 - 一道中档题 Factorial
题目大意:求$n!$在$k(k>1)$进制下末尾0的个数. 解题思路:一个数在十进制转k进制时,我们用短除法来做.容易发现,如果连续整除p个k,则末尾有p个0. 于是问题转化为$n!$能连续整除 ...
- SAC E#1 - 一道神题 Sequence1
题目背景 小强和阿米巴是好朋友. 题目描述 小强很喜欢数列.有一天,他心血来潮,写下了一个数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种:波动数列. 一个长度为n的波动数列满足对于任何i(1 < ...
- 洛谷P3926 SAC E#1 - 一道不可做题 Jelly【模拟/细节】
P3926 SAC E#1 - 一道不可做题 Jelly [链接]:https://www.luogu.org/problem/show?pid=3926 题目背景 SOL君(炉石主播)和SOL菌(完 ...
- l洛谷 P3926 SAC E#1 - 一道不可做题 Jelly
P3926 SAC E#1 - 一道不可做题 Jelly 题目背景 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢吃蒟蒻果冻.而SOL菌也很喜欢蒟蒻果冻. 有一 ...
随机推荐
- 001.ActiveMQ概述
1. 概念 ActiveMQ是Apache推出的,一款开源的,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现的消息中间件(Message Oriented Middleware ...
- Intellij IDEA安装与使用,完整详细。
https://blog.csdn.net/qq_41879385/article/details/81952656 https://www.jetbrains.com/idea/download/# ...
- 脚本_实时显示网卡eth0上的数据流量
#!bin/bash#功能:使用死循环,实时显示网卡eth0发送的数据包流量#作者:liusingbonwhile : do echo "本地网卡eth0的数据流量信息如下:&q ...
- JSON string 在内存中转流 MemoryStream 代码,以及需要注意的问题utf-8问题
MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes("字符串"); string str = ...
- Unable to load annotation processor factory
很多人在项目开发中都会遇到项目名称左上角有个红叉,有些是Jar问题,有些是代码问题,有些是编译问题,对于我这种强迫症的是受不了这种情况发生的,如果不影响项目启动还好,废话少说,今天工作就出现了一个问题 ...
- 第三方-FastDFS分布式文件系统
1.什么是FastDFS? FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标, ...
- HDU-5685 Problem A 求乘法逆元
题目链接:https://cn.vjudge.net/problem/HDU-5685 题意 给一个字符串S和一个哈希算法 $ H(s)=\prod_{i=1}^{i\leq len(s)}(S_{i ...
- redis搭建与安装
redis提供五种数据类型:string,hash,list,set及zset(sorted set). 第一部分:安装redis 希望将redis安装到此目录 1 /usr/local/redis ...
- ASP.NET-文件上传代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- 如何检查 Android 应用的内存使用情况
Android是为移动设备而设计的,所以应该关注应用的内存使用情况.尽管Android的Dalvik虚拟机会定期执行垃圾回收操作,但这也不意味着就可以忽视应用在何时何处进行内存分配和释放.为了提供良好 ...