2017暑假 动态规划

  • uva 10534 - Wavio Sequence

题意:“长度”对称的LIS。

思路:正、逆序求两次LIS,正序就ansi[i] 存放a[0]~a[i]LIS,逆序也差不多这样。。。然后拿着两个ans数组对比着找到满足条件的最大解。

代码如下:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3
 4 const int inf = 0x3f3f3f3f;
 5
 6 int main()
 7 {
 8     int n, in[10005], de[10005];
 9     while(~scanf("%d", &n))
10     {
11         for(int i = 0; i < n; i++)
12         {
13             scanf("%d", &in[i]);
14             de[n-i-1] = in[i];
15         }
16
17         int len = 1, ansi[10005], ansd[10005], dp[10005];
18         memset(dp, inf, sizeof(dp));
19         dp[len] = in[0];
20         for(int i = 0; i < n; i++)
21         {
22             if(in[i] > dp[len]) dp[++len] = in[i];
23             else
24                 *lower_bound(dp+1, dp+n+1, in[i]) = in[i];
25             ansi[i] = len;
26         }
27         len = 1, dp[len] = de[0];
28         memset(dp, inf, sizeof(dp));
29         for(int i = 0; i < n; i++)
30         {
31             if(de[i] > dp[len]) dp[++len] = de[i];
32             else
33                 *lower_bound(dp+1, dp+n+1, de[i]) = de[i];
34             ansd[n-i-1] = len;//n-i-1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
35         }
36
37         int ans = 0;
38         for(int i = 0; i < n; i++)
39         {
40             int temp = min(ansi[i], ansd[i]);
41             ans = max(ans, temp*2-1);
42         }
43         printf("%d\n", ans);
44     }
45     return 0;
46 }

ps: 第二次写!!!ansd[n-i-1] = len;这里n-i-1写成了i。。。wa了一下午QAQ。

时间: 2024-12-18 08:09:28

2017暑假 动态规划的相关文章

2017暑假集训前总结和规划

距离大一进来已经一年了啊,感觉还是啥也不会,哎,太差了,总结一下这一年都学了写什么吧! 大一寒假开始专题,刷过的有:dp,dfs和bfs,数论(gcd拓展gcd,欧拉定理等等,但是中国剩余定理没学,等复习的时候再学吧),并查集,最短路(bellman-fprd,dijkstra,floyd-warshall,spfa),最小生成树(prim,kruskal),线段树,二分三分 大一下学期有:拓扑排序,基础计算几何(直线线段相交,快速排除实验,跨立实验),矩阵快速幂,博弈基础(nim博弈,威佐夫博

2017暑假集训~心路历程

2017年暑假集训的个人赛阶段已经结束了. 回想这7场比赛,前几场发挥的还可以. 但是第4场之后开始状态开始下滑.第4场是在TOJ上做的,题数马马虎虎,就是罚时有点多. 第5场的FOJ的比赛打得十分糟糕.因为并不熟悉这个OJ, 赛前测试工作也没有作足. 比赛的时候各种意想不到的CE,WA.这样一来我前两小时只过了一题. 不过最后两小时至少翻到了不至于垫底的位置…… 第6场发挥也不好,被一道树形DP搞住了(这应该是我的强项),卡了一个半小时发现自己题目读错了.结果还是想不出来……然后另一道贪心因为

2017暑假就看了这几本书

写在前面 高效能人士的七个习惯:精华版.第2版 / (美) 史蒂芬·柯维著 心智时间:意识中的时间因素:the temporal factor in consciousness / (美) 本杰明·里贝特著 谈判力 / (美)罗杰·费希尔,(美)威廉·尤里,(美)布鲁斯·巴顿著影响力心理学 / (美)菲利普·津巴多,(美)迈克尔·利佩著[未完成]来源:长清图书馆 阅读用时:2017.7.7-2017.8.28共52天,书的容量并不是很大,看上去看的挺多,其实并没有,最后一本是很早之前就借了的,觉

2017暑假实践报告

第二年暑假在学校度过了,去年的时候还在成长阶段,今年就在修炼阶段,刚开始的一个多星期没有什么状态,但总的来说一个暑假的学习,还是学了不少东西,自己也成长了不少. 刚来的一个星期,老师给了一个数据结构的专题,先敲敲代码,找回手感,但是写的过程中并不容易,线段树各种应用,还是需要YY.但是慢慢的就好点了,能感觉到的状态在回升,感觉自己又开始熟悉键盘了,接下来的第二个专题二分贪心,就很恶心了,卡精度,贪心的时候,贪心的正确性检验,很痛苦. 接下来的多校训练就是重头戏了. 第一场多校训练,朝鲜的金策工业

2017暑假训练记录

目标: 大二上进队参加regional 准备专攻一下计算几何什么的,争取对队伍做些贡献-- 其他题目也会做 8月20日军训前努力提升自己吧 2017.06.11 敲了一些二维的点和直线和多边形的板子 poj1654 Area(多边形面积)

2017暑假集训——所见,所闻,所想,所悟

很久了,就想写个总结,想想过去的一年都做了什么,以后又该做什么,所以说,这与其说是这次暑假集训的总结不如说是来一年的总结吧: 一年了已经,时间还真是毫不留情啊,从小萌新成了老油子,刚军训完的时候还是个瘦子,结果现在成了一个小胖子,真是好难受,心好痛,所以打算大二减减肥,哈哈,这一年来,遇到了很多人,也明白了很多事,成长了许多,一直在做自己喜欢的事,但是还没有竭尽全力,如今知我所求,当竭尽全力才是,重要的还是两个字,自律.跳出生活的舒适区,敢于改变,学会自律,方才会有成长吧: 对于刚刚经历的暑假集

杭电2017暑假

6月29日 目标:早上 LeetCode 1-2道题 神经网络/深度学习 信号与系统 6月28日 杭电第一天 1.信号与系统 / 信号处理   傅里叶 小波 2.机器学习 深度学习 3.了解 脑电数据采集芯片TGAM 4.基础,数学 算法 英语 应该干什么? 0.健身 1.开始基础知识学习 2.神经网络->深度学习 3.信号与系统 概念上的了解

腾讯2017暑假实习生 - 软件开发类笔试

和意料之中差不多,因为自己搞的PHP方向,前几个学期专业课没好好学,期末都是低分飘过...牛客刷的也不多,所以做得很一般. 总结一下: 1.选择题30题:数据结构5道左右,数据库3道左右,C++10道左右,操作系统5道左右,算法设计3道左右,概率题3道左右,磁盘存储2道.都是基础题型,感觉范围和考研差不多的样子. 2.简答题2题: 第一题是数据结构和文件存储相关的计算题,相关概念搞清楚:索引.桶.hash.B+树 搞清楚应该不难; 第二题是编写一个"逆序数函数",输出一个仅包含&quo

2017暑假 二分

POJ 3258 - River Hopscotch 题意:奶牛弹跳力大PK~河上有若干石头,奶牛从一端跳到对岸即可.Farmer John觉得石头太多了,距离太近了没难度,要你帮他去掉m个石头,使得奶牛需要跳跃的最小距离能多大就多大(MAX). 思路:没错,就是最大化最小值,没错,就是二分~ 二分对象:最小距离d. check方式:cnt一下距离小于d的石头,<=m即可. ps:去掉一个石头之后下一个石头的前驱为当前石头的前驱,要记得更新但是不要直接改数据啊zz. 代码如下:  1 #incl