题意:

一个含n个数的序列a,每两个相邻的数相减得到一个新数,这些数组成一个新的序列。

假设全部得到的序列都满足非严格的单调性。则原序列为nice series。假设给出的序列

本来不满足单调性。它是ugly series。否则输出k,表示前k个序列都满足单调性,第k+1不满足。

算法:

模拟合并和推断单调性,假设不优化会Tle.

假设去掉前导0和后导0,由于0-0还是0,省去一部分操作。

可是为了避免得到的下一个序列的推断有误,应该前后各留一个0.

比方:

7

1 1 1 3 5 7 9

第一次变换得到 0 0 2 2 2 2 -->满足单调性

第二次 假设全然忽略前导0 则下一个序列变为 0 0 0

而实际上应该是 0 2 0 0 0不满足单调性

#include<cstdio>
#include<iostream>
#include<cstring>
#define maxn 100010 using namespace std; typedef long long ll;
ll a[maxn]; int main()
{
int T,n;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%I64d",&a[i]);
int l = 1,r = n;
int k = 0,f1,f2;
for(int i=0;i<n;i++)
{
while(l<r && !a[l])
l++;
if(l>1) //因为把前导0和后导0去掉了,可能会影响下一轮的推断
l = l-1; //所曾经面留一个0
else l = 1; //本来就没有前导0
while(l<r && !a[r])
r--;
if(r<n-i)
r = r+1; //后面留一个0
else r = n-i; //本来就没有后导0
if(l>=r) break;
f1 = f2 = 0;
for(int d=l;d<r;d++)
{
if(a[d+1]>a[d]) //假设单调递增
f1 = 1;
if(a[d+1]<a[d]) //假设单调递减
f2 = 1;
}
if(f1 && f2) //既有单调递增的段也有递减的部分,即不满足单调性
{
if(k==0)
printf("ugly series\n");
else printf("%d\n",k-1);
break;
}
for(int j=l;j<r;j++)
a[j]=a[j+1]-a[j];
r--; //得到下一个序列,个数减一
k++;
}
if(!f1 || !f2)
printf("nice series\n");
}
return 0;
} /*
7
1 1 1 3 5 7 9
ans = 1
*/

hdu 4928 Series 2 (优化+模拟)的更多相关文章

  1. HDU 4928 Series 2

    有了题解以后这题就成了一个模拟题.不过写了好久才把它写对…… Sad #include <iostream> #include <cstdio> #include <cs ...

  2. HDU 4927 Series 1(推理+大数)

    HDU 4927 Series 1 题目链接 题意:给定一个序列,要求不断求差值序列.直到剩一个,输出这个数字 思路:因为有高精度一步.所以要推理一下公式,事实上纸上模拟一下非常easy推出公式就是一 ...

  3. HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)

    HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...

  4. hdu 2829 Lawrence(斜率优化DP)

    题目链接:hdu 2829 Lawrence 题意: 在一条直线型的铁路上,每个站点有各自的权重num[i],每一段铁路(边)的权重(题目上说是战略价值什么的好像)是能经过这条边的所有站点的乘积之和. ...

  5. HDU 2920 分块底数优化 暴力

    其实和昨天写的那道水题是一样的,注意爆LL $1<=n,k<=1e9$,$\sum\limits_{i=1}^{n}(k \mod i) = nk - \sum\limits_{i=1}^ ...

  6. HDU 1014 Uniform Generator(模拟和公式)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1014 Uniform Generator Time Limit: 2000/1000 MS (Java ...

  7. 多重背包问题:悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(HDU 2191)(二进制优化)

    悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 HDU 2191 一道裸的多重背包问题: #include<iostream> #include<algorithm> #i ...

  8. HDU 5948 Thickest Burger 【模拟】 (2016ACM/ICPC亚洲区沈阳站)

    Thickest Burger Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  9. HDU 5920 Ugly Problem 【模拟】 (2016中国大学生程序设计竞赛(长春))

    Ugly Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

随机推荐

  1. 用sql语句查出和sql相关的性能计数器

    一台服务器上,用性能监视器死活显示不出来一部分计数器,没办法,用sql语句查了 --所有和sql相关的计数器 select * from sys.dm_os_performance_counters ...

  2. [Android exception] /data/app/com.tongyan.tutelage-1/lib/arm/libstlport_shared.so: has text relocations

    java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.tongyan.tutelage-1/lib/arm/libstlport_s ...

  3. 38、各Set实现类的性能分析

    HashSet和TreeSet是Set的两个典型实现,到底如何选择HashSet和TreeSet呢?HashSet的性能总是比TreeSet好(特别是最常用的添加.查询元素等操作),因为TreeSet ...

  4. mosquitto配置文件详解

    安装完成之后,所有配置文件会被放置于/etc/mosquitto/目录下,其中最重要的就是Mosquitto的配置文件,即mosquitto.conf,以下是详细的配置参数说明. # Config f ...

  5. 实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)

    首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下:  C++ Code  1 2   template < class _Ty, cl ...

  6. operator new 和 operator delete 实现一个简单内存泄漏跟踪器

    先来说下实现思路:可以实现一个Trace类,调用 operator new 的时候就将指向分配内存的指针.当前文件.当前行等信息添加进Trace 成员map容器内,在调用operator delete ...

  7. Python操作redis系列以 哈希(Hash)命令详解(四)

    # -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. Hset 命令用于 ...

  8. unity, editorWindow lose data when enter play mode

    我写了个editorWindow,其中有个成员变量m_x,在创建editorWindow的时候为m_x赋的值,而在editorWindow的OnGUI里把m_x显示出来. 当我开着这个editorWi ...

  9. Spring Cloud(八):分布式配置中心服务化和高可用

    在前两篇的介绍中,客户端都是直接调用配置中心的server端来获取配置文件信息.这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,serve ...

  10. vim-程序员的利器

    个人觉得vi使用熟练后就离不开了,用了它效率会提升不少,但是没了它可能还赶不上以前的速度,给惯坏了. 以下是本人无耻的复制和粘贴的:(附图一张方便学习) Vim目前已经有各主流系统的版本,尽管vim较 ...