
区间DP
偶尔爆零的蒟蒻
成为你自己
展开
-
Codeforces Round 108(Problem - D Maximum Sum of Products)
题意:给定长度为nnn的数组a,ba,ba,b,你可以通过反转aaa的一段连续子序列,来求得max∑i=1nai⋅bimax\sum_{i=1}^{n}a_i·b_imax∑i=1nai⋅bi 区间DP 注意:三重循环会TLE 优化:计算小区间的反转与未反转的差,每次都利用中间的部分,左右端点另算,减少重复计算。 #include<bits/stdc++.h> using namespace std; #define ll long long int a[5005],b[5005]; ll原创 2021-04-30 19:07:31 · 113 阅读 · 1 评论 -
Codeforces_327A(前缀+区间DP)
题意 给定一个序列,只有01,必须选定一个区间取反,求最多有几个1 找到一个区间(0的个数减1的个数之差最大),加上之前的的1个数即可 //#pragma GCC optimize(2) //#pragma GCC optimize(3,"Ofast","inline") #include<iostream> #include<cstring> #include<algorithm> #include<map> #include<set> #..原创 2021-04-19 19:15:09 · 143 阅读 · 0 评论