摘要: 状态表示:dp[i]是必须以A[i]结尾的连续序列。 那么只有两种情况: 这个最大和的连续序列只有一个元素,即以A[i]开始,以A[i]结尾。 这个最大和的连续序列有多个元素,即从前面某处A[p]开始(p<i),一直到A[i]结尾。 对第一种情况,最大和就是A[i]本身。 对第二种情况,最大和是dp 阅读全文
posted @ 2021-02-01 19:43 Dazzling! 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 动态规划是一种非常精妙的算法思想,它没有固定的写法、极其灵活,常常需要具体问题具体分析。和之前介绍的大部分算法不同,一开始就直接讨论动态规划的概念并不是很好的学习方式,反而先接触一些经典模型会有更好的效果。因此本章主要介绍一些动态规划的经典模型,并在其中穿插动态规划的概念,让读者慢慢接触动态规划。同 阅读全文
posted @ 2021-02-01 18:09 Dazzling! 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 1、分治策略(Divide and Conquer) 将原问题分解为若干个规模较小但类似于原问题的子问题(Divide),递归的求解这些子问题(Conquer),然后再合并这些子问题的解来建立原问题的解。因为在求解大问题时,需要递归的求小问题,因此一般用递归的方法实现,即自顶向下。 2、动态规划(D 阅读全文
posted @ 2021-02-01 16:22 Dazzling! 阅读(121) 评论(0) 推荐(0) 编辑
摘要: set和map的结合题吧,虽然不难,但还是值得记录一下。 多case,注意清空操作,因为这个$\color$了两发。 const int N=110; int a[N],b[N]; set<int> num,group; map<int,int> mp[N]; int n; int main() { 阅读全文
posted @ 2021-02-01 10:19 Dazzling! 阅读(67) 评论(0) 推荐(0) 编辑
摘要: set裸题,话说题目一开始就点明并不是太简单,不要做的太快,交的时候还犹豫了一下。。。 交完:水题=_= 。 const int N=1e5+10; set<char> S; string s1,s2; int main() { getline(cin,s1); getline(cin,s2); f 阅读全文
posted @ 2021-02-01 09:51 Dazzling! 阅读(25) 评论(0) 推荐(0) 编辑
摘要: map裸题吧,当然由于数字大小在 \([1,10^4]\) ,所以开数组记录也是可以的。 const int N=1e5+10; int a[N]; map<int,int> mp; int n; int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i] 阅读全文
posted @ 2021-02-01 09:42 Dazzling! 阅读(25) 评论(0) 推荐(0) 编辑