hdu 4928 Series 2 (优化+模拟)
题意:
一个含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 (优化+模拟)相关推荐
- HDU 2389(二分最大匹配优化算法,Hopcroft-Carp)
HDU 2389(二分最大匹配优化算法,Hopcroft-Carp) 题目链接: 大致题意; 您能帮助客人在下雨之前尽可能多地找到一把雨伞? 给定所有客人的位置和跑步速度,雨伞位置,到下雨开始时的时间 ...
- HDU 2920 分块底数优化 暴力
其实和昨天写的那道水题是一样的,注意爆LL $1<=n,k<=1e9$,$\sum\limits_{i=1}^{n}(k \mod i) = nk - \sum\limits_{i=1}^ ...
- 多校第六场 HDU 4927 JAVA大数类+模拟
HDU 4927 题目大意:给定一个长度为n的序列a,每次生成一个新的序列,长度为n-1,新序列b中bi=ai+1−ai,直到序列长度为1.输出最后的数. 思路:这题实在是太晕了,比赛的时候搞了四个小 ...
- HDU 4831 Scenic Popularity 暴力模拟
Scenic Popularity Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- hdu 5036 Explosion bitset优化floyd
http://acm.hdu.edu.cn/showproblem.php?pid=5036 题意就是给定一副有向图,现在需要走遍这n个顶点,一开始出发的顶点是这n个之中的随便一个. 如果走了1,那么 ...
- hdu 2829 Lawrence 斜率优化
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2829 Lawrence Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 4928 Series2
题意: 0序列为 a1.a2.a3--an 根据运算规则ai=ai+1-ai计算i序列 如果序列单调则为合理序列 问从0开始到第几序列是合理的 如果一直合理就是nice 如果一开始就不合理就是 ...
- hdu 5568(dp+大数模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5568 官方题解: #include <cstdio> #include <cstri ...
- hdu 4521(线段树优化dp)
小明系列问题--小明序列 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Pro ...
- HDU 4121 Xiangqi (算是模拟吧)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4121 题意:中国象棋对决,黑棋只有一个将,红棋有一个帅和不定个车 马 炮冰给定位置,这时当黑棋走,问你黑 ...
最新文章
- 使用AppleScript播放指定时间的电影片段
- Java 学习(21)--集合笔试题
- 学习STL map, STL set之数据结构基础
- 满汉楼(德鲁伊连接池+DBUtils+DAO+Mysql)保姆级别分析+代码实现
- Javac可以编译,Java显示找不到或无法加载主类
- linux内存锁定什么意思,Linux内存子系统——Locking Pages(内存锁定)
- 时尚达人必备的潮流壁纸桌面!
- AI 开发者不容错过的 20 个机器学习和数据科学网站
- 8086汇编语言将一串字符串内小写字母转换为大写字母,其余字符不变(全注释)
- 2017年终总结——恍恍惚惚又一年
- Magento1.9x 下新建多个站点
- JavaScript 学习笔记(八)前后端交互;Ajax进行前后端交互
- chai.js中文文档
- Illumina输出文件详解
- iOS处理语言工具CFStringTransform 的应用
- java基础(含JUC):论后端工程师的个人修为
- python笔记之NUMPY中的掩码数组numpy.ma.mask
- IT十年人生过客-二十七-艰难
- asp前端日历_ASP完成的日历代码实例程序
- C++字符串类std::string介绍
热门文章
- layui 自定义排序_layui使用心得
- error: two or more data types in declaration specifiers原因及解决方法
- 任正非谈鸿蒙系统研究,任正非谈鸿蒙系统 有优势 有信心打造生态
- idea中pom中有些配置为什么不提示_Delegate IDE build/run actions to maven 配置的影响
- java 约瑟夫环_java中约瑟夫环代码实现
- SLAM--DBow3
- OpenCV(0)---机器学习库
- java 实例方法递归_Java实现简单的递归操作方法实例
- 通过创建一条链来学习区块链 (1)
- 容器技术Docker K8s 48 服务网格(ASM)-阿里云服务网格使用