博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4928 Series 2 (优化+模拟)
阅读量:5330 次
发布时间:2019-06-14

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

题意:

一个含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
#include
#include
#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
1) //因为把前导0和后导0去掉了,可能会影响下一轮的推断 l = l-1; //所曾经面留一个0 else l = 1; //本来就没有前导0 while(l
=r) break; f1 = f2 = 0; for(int d=l;d
a[d]) //假设单调递增 f1 = 1; if(a[d+1]

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

你可能感兴趣的文章
单例模式的几种实现方式及对比
查看>>
第十二周学习记录
查看>>
HDU 1712 ACboy needs your help (分组背包模版题)
查看>>
共享内存
查看>>
从零开始学JavaWeb
查看>>
第33天-文件I/O _2(2013.09.03)
查看>>
讨厌的 StorageFolder.GetFileAsync 异常。
查看>>
Tomcat源码浅析
查看>>
Codeforces Round #256 (Div. 2) Multiplication Table
查看>>
计算三球交点坐标的快速算法
查看>>
SGU 546 解题报告
查看>>
HDU 1269 迷宫城堡
查看>>
my_ls-ailh
查看>>
python基础之字符串格式化
查看>>
实体类调用泛型父类中的静态方法中执行CRUD——第一版
查看>>
Extjs介绍(二)
查看>>
iOS block 基本用法及代替代理
查看>>
jQuery中$.ajax知识点总结
查看>>
iphone 弹出键盘,文本框自动向上移动。
查看>>
微信小程序开发7-JavaScript脚本
查看>>