12 2022 档案

摘要:题意 解析 如果对于一个 a 数列中的一个最小的数a[x],它可能和多个在 b 数列的数相匹配,显然,我需要先试试 b 数列中最小的一个 b[y],如果可行,那么赶紧配对,再试试 a 数列中第 2 小和 b 数列中第 2 小的;否则,如果 a[x] >b[y] 说明既然 b 数列最小的已经不行了,那 阅读全文
posted @ 2022-12-30 00:11 Isaac233 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题意 解析 一开始以为是动态规划专题,想复杂了。其实就是模拟,每次挑最大的减。 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 100 + 10,M = 1e6 + 10; int 阅读全文
posted @ 2022-12-30 00:06 Isaac233 阅读(14) 评论(0) 推荐(0) 编辑
摘要:题意 输入 #1 ++-+- +-+-+ 输出 #1 1.000000000000 输入 #2 +-+- +-?? 输出 #2 0.500000000000 输入 #3 +++ ??- 输出 #3 0.000000000000 解析 我是找规律做的。算出最后总体的差值x,求出有cnt个问号。 假设正 阅读全文
posted @ 2022-12-30 00:05 Isaac233 阅读(16) 评论(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 阅读(13) 评论(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 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题意 解析 考察前缀知识。做的时候我好蠢,一直在想怎么前缀,大范围减小范围,怎么消除不同数字是否重复出现的影响。后来发现是自己蠢了,不就是求个后缀么。 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; cons 阅读全文
posted @ 2022-12-28 00:10 Isaac233 阅读(10) 评论(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 阅读(9) 评论(0) 推荐(0) 编辑
摘要:题意 解析 纯暴力枚举,先计算总1数。第一维枚举左端点,第二维枚举右端点,第三维从左端点跑到右端点计算当前区间如果原来是1则减1,原来是0则加1。 前缀和优化。一个翻转是1-a[x],区间反转就是这个区间长度-区间和,然后加上剩余的区间和即可。 区间DP。f[i][j]代表的是将i~j这段反转后的最 阅读全文
posted @ 2022-12-28 00:06 Isaac233 阅读(12) 评论(0) 推荐(0) 编辑
摘要:题意 解析 前缀和思想。 f[i]用来代表到第i+1位有多少个满足s[k] == s[k+1] 所以题目求从l~r,即求f[r-1] - f[l-1] 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; cons 阅读全文
posted @ 2022-12-28 00:01 Isaac233 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题意 最后要形成形如前面从1~k范围内全为负数,从k+1~n范围内全为正数,没有0的存在, 那此时最少应该改变几个值。 解析 ca[i]统计前面到i一共有多少个>=0的,cb[i]代表后面到i一共有多少个<=0的 划分分界点k,求最小的ca[k] + cb[k+1]。 代码 #include<bit 阅读全文
posted @ 2022-12-27 23:59 Isaac233 阅读(18) 评论(0) 推荐(0) 编辑
摘要:题意 解析 3个物品的完全背包。f[i][j]代表选到第i件物品此时恰凑成长度j的数量的最大值 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 4000 + 10,M = 1e6 阅读全文
posted @ 2022-12-27 23:54 Isaac233 阅读(14) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示