随笔分类 -  动态规划

摘要:题意 解析 找出每个可以分割的地方,然后看能不能选,01背包 代码 #include<bits/stdc++.h> using namespace std; const int N = 100 + 10; int n,m; int a[N],b[N],f[N],cnt,pos; int main() 阅读全文
posted @ 2023-02-16 16:22 Isaac233 阅读(16) 评论(0) 推荐(0)
摘要:题意 解析 前缀或双指针 代码 //前缀 #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n,k; int a[N],b[N],c[N],d[N]; int main(){ scanf("%d %d", 阅读全文
posted @ 2023-02-16 16:21 Isaac233 阅读(19) 评论(0) 推荐(0)
摘要:题意 解析 官方解法dp f[i][j] 代表选到第i个字符串,全都和第i个字符串以j为首开始的部分一样的最小代价 f[i][j] = min(f[i][j],f[i-1][k]+j) (条件是第i-1个字符从k开始的部分和第i个字符串从j开始的部分相同) 答案为f[n][i]里的最小值 第一个字符 阅读全文
posted @ 2023-02-16 16:17 Isaac233 阅读(25) 评论(0) 推荐(0)
摘要:题意 解析 我写的朴素的二维前缀和,这样比较麻烦 可以这样, f1[i][j]代表当前行第一个到第j个的前缀和 f1[i][j]=f1[i][j-1]+a[i][j] f2[i][j]代表当前列第一个到第i个的前缀和 f2[i][j]=f2[i-1][j]+a[i][j] 判断f1[i][j],f2 阅读全文
posted @ 2023-02-16 16:13 Isaac233 阅读(18) 评论(0) 推荐(0)
摘要:题意 Polycarp在他的微博上发布了一张有趣的照片。他的很多朋友就开始在微博上转发这张图片,这个事情可以被一个字符串描述:name1 reposted name2,意思是说name1这个人转发了name2这个人。题目保证name1肯定是还没有转发过照片的,name2这个人已经有这个照片了。数据范 阅读全文
posted @ 2023-02-16 16:10 Isaac233 阅读(23) 评论(0) 推荐(0)
摘要:题意 输入 #1 ++-+- +-+-+ 输出 #1 1.000000000000 输入 #2 +-+- +-?? 输出 #2 0.500000000000 输入 #3 +++ ??- 输出 #3 0.000000000000 解析 我是找规律做的。算出最后总体的差值x,求出有cnt个问号。 假设正 阅读全文
posted @ 2022-12-30 00:05 Isaac233 阅读(20) 评论(0) 推荐(0)
摘要:题意 解析 水题,普及-,没意思 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e5 + 10,M = 1e6 + 10; ll n,m,v[N],sum1[N],sum2[N 阅读全文
posted @ 2022-12-29 23:55 Isaac233 阅读(17) 评论(0) 推荐(0)
摘要:题意 解析 f[i][j]代表第i幅画最后一次被j画了所花的时间,受到两个的限制,画当前这个画的前一个画家画完了,当前这个画家画完了前面那张画了,取max。 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; c 阅读全文
posted @ 2022-12-28 23:41 Isaac233 阅读(15) 评论(0) 推荐(0)
摘要:题意 解析 考察前缀知识。做的时候我好蠢,一直在想怎么前缀,大范围减小范围,怎么消除不同数字是否重复出现的影响。后来发现是自己蠢了,不就是求个后缀么。 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; cons 阅读全文
posted @ 2022-12-28 00:10 Isaac233 阅读(15) 评论(0) 推荐(0)
摘要:题意 解析 前缀和水题,就是在所有长度为k的区间里找个最小的。 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 2e5 + 10,M = 1e6 + 10; int n,m,a[N 阅读全文
posted @ 2022-12-28 00:08 Isaac233 阅读(14) 评论(0) 推荐(0)