Codeforces 888E - Maximum Subsequence
888E - Maximum Subsequence
题意
给出一些数字,现在选择 \(k\) 个不同的下标对应的数字,问它们的和模 \(m\) 最大为多少?
分析
用到了 meet-in-the-middle 的思想,能极大的优化 DFS 的暴力。
数字的个数 \(n\) 只有 \(35\),但直接暴力 \(2^{35}\) 显然不行。
我们可以分别暴力左右 \(\frac{n}{2}\) 个数,分别丢到两个 \(set\) 中,遍历第一个 \(set\) ,二分查找第二个 \(set\) 。
复杂度:\(O(2^{\frac{n}{2}}log(2^{\frac{n}{2}}))\) 也就是 \(O(\frac{n}{2}*2^{\frac{n}{2}})\)。
code
#include<bits/stdc++.h>
using namespace std;
int n, m, a[44];
set<int> st[2];
void dfs(int s, int l, int r) {if(l == r) {st[r == n].insert(s);return;}dfs((s + a[l]) % m, l + 1, r);dfs(s, l + 1, r);
}
int main() {cin >> n >> m;for(int i = 0; i < n; i++) cin >> a[i];dfs(0, 0, n / 2);dfs(0, n / 2, n);st[0].insert(0);st[1].insert(0);int ans = 0;for(int i : st[0]) {int x = m - i - 1;auto it = st[1].upper_bound(x);it--;ans = max(ans, *it + i);}cout << ans << endl;return 0;
}
转载于:https://www.cnblogs.com/ftae/p/7820015.html
Codeforces 888E - Maximum Subsequence相关推荐
- 贪心 ---- E. Maximum Subsequence Value[位运算]
E. Maximum Subsequence Value 题目大意:有点难解释..建议自己看题.我这里就粗略解释:给定一个数组aaa,要求选出具有最大价值的子序列.假设此子序列的长度为kkk,那么最大 ...
- 第一周 01-复杂度2 Maximum Subsequence Sum
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to ...
- PAT甲级1007 Maximum Subsequence Sum :[C++题解]DP,最大子序列和、求最优的区间方案
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: dp题. 这道题糅合了两个知识点: dp求最值(区间之和) 动态求区间方案:区间之和相等的条件下:要求区间左端点最靠前,如果左端点相 ...
- 1007 Maximum Subsequence Sum
1007 Maximum Subsequence Sum (25 分) Given a sequence of K integers { N1, N2, ..., NK }. A c ...
- Codeforces 484B Maximum Value(高效+二分)
题目链接:Codeforces 484B Maximum Value 题目大意:给定一个序列,找到连个数ai和aj,ai%aj尽量大,而且ai≥aj 解题思路:类似于素数筛选法的方式,每次枚举aj,然 ...
- PAT甲级 -- 1007 Maximum Subsequence Sum (25 分)
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to ...
- 【测试点5】1007 Maximum Subsequence Sum (25 分)
立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given a sequence of K integers { N1 , N2 , -, NK }. A co ...
- PAT 1007 Maximum Subsequence Sum
1007 Maximum Subsequence Sum (25 分) Given a sequence of K integers { N1, N2, ..., NK }. A c ...
- 01-复杂度2 Maximum Subsequence Sum (25 分)
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to ...
- 【PAT - 甲级1007】Maximum Subsequence Sum (25分)(前缀和)
题干: Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined ...
最新文章
- JavaWeb学习总结(二):Tomcat服务器学习和使用(一)
- htm怎么让图片和搜索框在同一行_对于优化来说,内链应该怎么使用你知道吗?...
- sql server权限_保护SQL Server审核的访问权限
- 百度地图离线_3大主流导航地图,你用的哪个?
- 国内python镜像源记录
- 三维实景建模技术的应用
- 怎么设置html按钮的文字垂直居中显示,word文档如何设置页面文字垂直居中
- 二元一次方程整数解c语言,c语言求解,求解二元一次方程?
- java 内存 检测_Java内存使用情况检测代码
- Mysql从入门到入魔——3. 查询、排序、WHERE过滤
- oFono学习笔记(一):oFono中增加消息与接口
- Unity阴阳师画符教学
- CReFF缓解长尾数据联邦学习(IJCAI 2022)
- 计算机 不识u盘,电脑不认u盘了怎么办?
- 免费分享《精通C#游戏编程》
- 【电力电子】【2015】基于输出总谐波失真的三种逆变器的比较研究
- ES压测工具(四):esrally实例操作
- 砥砺前行!华为构建开放共赢云生态
- Python之城市旅游数据分析
- python3爬虫系列24之重庆微博地铁客运量爬取且可视化输出