Luogu关卡2-13线性数据结构(2017年10月)

Posted zhangwanying

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Luogu关卡2-13线性数据结构(2017年10月)相关的知识,希望对你有一定的参考价值。

任务说明:数组,链表,队列,栈,都是线性结构。巧用这些结构可以做出不少方便的事情。

约瑟夫问题  

P1115 最大子段和

做了这个题才颠覆了我对最大字段和的认识。

以前默认的解法就是用dp[i] 表示 a[0..i] 的和,然后用二重循环相减,求出最大子段和。

提交了发现才过了两个点,剩下的三个点TLE。

然后看了题解才发现原来可以这么做:就是用一个变量来记录读进来数字的当前子段和,如果发现这个变量(当前子段和)比零小,那么就把它置0。因为后面那一坨不论是啥,前面加个负数都不划算,所以这么解最优。

时间复杂度O(N), 空间复杂度O(1)

技术分享
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <vector>
 4 #include <climits>
 5 using namespace std;
 6 
 7 int main () {
 8     int n;
 9     cin >> n;
10     int ans = INT_MIN, dp = 0;
11     for (int i = 1; i <= n; ++i) {
12         int x;
13         cin >> x;
14         if (i == 1) {
15             dp = ans = x;
16         } else {
17             dp = dp + x > 0 ? dp + x : x;
18         }
19         ans = max(ans, dp);
20     }
21     cout << ans << endl;
22     return 0;
23 }
View Code

 

表达式括号匹配  

队列安排  

后缀表达式

以上是关于Luogu关卡2-13线性数据结构(2017年10月)的主要内容,如果未能解决你的问题,请参考以下文章

Luogu关卡2-14 树形数据结构(2017年10月)

Luogu关卡2-1简单的模拟(2017年10月)

Luogu关卡2-6贪心(2017年10月)

Luogu关卡1-8BOSS战-入门综合练习2(2017年10月)

Luogu关卡2-15动态规划的背包问题(2017年10月)

luogu_3383 模板线性筛素数