题意:

一个含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 100010using 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;  //所曾经面留一个0else l = 1;   //本来就没有前导0while(l<r && !a[r])r--;if(r<n-i)r = r+1;  //后面留一个0else r = n-i;  //本来就没有后导0if(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
*/

转载于:https://www.cnblogs.com/wzzkaifa/p/6751790.html

hdu 4928 Series 2 (优化+模拟)相关推荐

  1. HDU 2389(二分最大匹配优化算法,Hopcroft-Carp)

    HDU 2389(二分最大匹配优化算法,Hopcroft-Carp) 题目链接: 大致题意; 您能帮助客人在下雨之前尽可能多地找到一把雨伞? 给定所有客人的位置和跑步速度,雨伞位置,到下雨开始时的时间 ...

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

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

  3. 多校第六场 HDU 4927 JAVA大数类+模拟

    HDU 4927 题目大意:给定一个长度为n的序列a,每次生成一个新的序列,长度为n-1,新序列b中bi=ai+1−ai,直到序列长度为1.输出最后的数. 思路:这题实在是太晕了,比赛的时候搞了四个小 ...

  4. HDU 4831 Scenic Popularity 暴力模拟

    Scenic Popularity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  5. hdu 5036 Explosion bitset优化floyd

    http://acm.hdu.edu.cn/showproblem.php?pid=5036 题意就是给定一副有向图,现在需要走遍这n个顶点,一开始出发的顶点是这n个之中的随便一个. 如果走了1,那么 ...

  6. hdu 2829 Lawrence 斜率优化

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=2829 Lawrence Time Limit: 2000/1000 MS (Java/Others)    ...

  7. HDU 4928 Series2

    题意: 0序列为 a1.a2.a3--an 根据运算规则ai=ai+1-ai计算i序列  如果序列单调则为合理序列  问从0开始到第几序列是合理的  如果一直合理就是nice  如果一开始就不合理就是 ...

  8. hdu 5568(dp+大数模拟)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5568 官方题解: #include <cstdio> #include <cstri ...

  9. hdu 4521(线段树优化dp)

    小明系列问题--小明序列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Pro ...

  10. HDU 4121 Xiangqi (算是模拟吧)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4121 题意:中国象棋对决,黑棋只有一个将,红棋有一个帅和不定个车 马 炮冰给定位置,这时当黑棋走,问你黑 ...

最新文章

  1. 使用AppleScript播放指定时间的电影片段
  2. Java 学习(21)--集合笔试题
  3. 学习STL map, STL set之数据结构基础
  4. 满汉楼(德鲁伊连接池+DBUtils+DAO+Mysql)保姆级别分析+代码实现
  5. Javac可以编译,Java显示找不到或无法加载主类
  6. linux内存锁定什么意思,Linux内存子系统——Locking Pages(内存锁定)
  7. 时尚达人必备的潮流壁纸桌面!
  8. AI 开发者不容错过的 20 个机器学习和数据科学网站
  9. 8086汇编语言将一串字符串内小写字母转换为大写字母,其余字符不变(全注释)
  10. 2017年终总结——恍恍惚惚又一年
  11. Magento1.9x 下新建多个站点
  12. JavaScript 学习笔记(八)前后端交互;Ajax进行前后端交互
  13. chai.js中文文档
  14. Illumina输出文件详解
  15. iOS处理语言工具CFStringTransform 的应用
  16. java基础(含JUC):论后端工程师的个人修为
  17. python笔记之NUMPY中的掩码数组numpy.ma.mask
  18. IT十年人生过客-二十七-艰难
  19. asp前端日历_ASP完成的日历代码实例程序
  20. C++字符串类std::string介绍

热门文章

  1. layui 自定义排序_layui使用心得
  2. error: two or more data types in declaration specifiers原因及解决方法
  3. 任正非谈鸿蒙系统研究,任正非谈鸿蒙系统 有优势 有信心打造生态
  4. idea中pom中有些配置为什么不提示_Delegate IDE build/run actions to maven 配置的影响
  5. java 约瑟夫环_java中约瑟夫环代码实现
  6. SLAM--DBow3
  7. OpenCV(0)---机器学习库
  8. java 实例方法递归_Java实现简单的递归操作方法实例
  9. 通过创建一条链来学习区块链 (1)
  10. 容器技术Docker K8s 48 服务网格(ASM)-阿里云服务网格使用