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相关推荐

  1. 贪心 ---- E. Maximum Subsequence Value[位运算]

    E. Maximum Subsequence Value 题目大意:有点难解释..建议自己看题.我这里就粗略解释:给定一个数组aaa,要求选出具有最大价值的子序列.假设此子序列的长度为kkk,那么最大 ...

  2. 第一周 01-复杂度2 Maximum Subsequence Sum

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  3. PAT甲级1007 Maximum Subsequence Sum :[C++题解]DP,最大子序列和、求最优的区间方案

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: dp题. 这道题糅合了两个知识点: dp求最值(区间之和) 动态求区间方案:区间之和相等的条件下:要求区间左端点最靠前,如果左端点相 ...

  4. 1007 Maximum Subsequence Sum

    1007 Maximum Subsequence Sum (25 分) Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A c ...

  5. Codeforces 484B Maximum Value(高效+二分)

    题目链接:Codeforces 484B Maximum Value 题目大意:给定一个序列,找到连个数ai和aj,ai%aj尽量大,而且ai≥aj 解题思路:类似于素数筛选法的方式,每次枚举aj,然 ...

  6. PAT甲级 -- 1007 Maximum Subsequence Sum (25 分)

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  7. 【测试点5】1007 Maximum Subsequence Sum (25 分)

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given a sequence of K integers { N​1​​ , N​2​​ , -, N​K​​ }. A co ...

  8. PAT 1007 Maximum Subsequence Sum

    1007 Maximum Subsequence Sum (25 分) Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A c ...

  9. 01-复杂度2 Maximum Subsequence Sum (25 分)

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  10. 【PAT - 甲级1007】Maximum Subsequence Sum (25分)(前缀和)

    题干: Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined ...

最新文章

  1. JavaWeb学习总结(二):Tomcat服务器学习和使用(一)
  2. htm怎么让图片和搜索框在同一行_对于优化来说,内链应该怎么使用你知道吗?...
  3. sql server权限_保护SQL Server审核的访问权限
  4. 百度地图离线_3大主流导航地图,你用的哪个?
  5. 国内python镜像源记录
  6. 三维实景建模技术的应用
  7. 怎么设置html按钮的文字垂直居中显示,word文档如何设置页面文字垂直居中
  8. 二元一次方程整数解c语言,c语言求解,求解二元一次方程?
  9. java 内存 检测_Java内存使用情况检测代码
  10. Mysql从入门到入魔——3. 查询、排序、WHERE过滤
  11. oFono学习笔记(一):oFono中增加消息与接口
  12. Unity阴阳师画符教学
  13. CReFF缓解长尾数据联邦学习(IJCAI 2022)
  14. 计算机 不识u盘,电脑不认u盘了怎么办?
  15. 免费分享《精通C#游戏编程》
  16. 【电力电子】【2015】基于输出总谐波失真的三种逆变器的比较研究
  17. ES压测工具(四):esrally实例操作
  18. 砥砺前行!华为构建开放共赢云生态
  19. Python之城市旅游数据分析
  20. python3爬虫系列24之重庆微博地铁客运量爬取且可视化输出

热门文章

  1. 加入域报错(找不到网络路径)
  2. 来了来了!github开源作业车间调度平台正式上线!
  3. 从零基础入门Tensorflow2.0 ----一、3.3 实战深度神经网络(激活函数)
  4. 地图Web服务API接口——搜索POI(以高德地图为例)
  5. CSS学习总结(5)——列表/表格/链接/鼠标光标样式
  6. Python 定时器制作
  7. “空天地”一体化的遥感农业保险简介
  8. 自定义RatingBar
  9. 向贵人讨教,实现共赢
  10. 黑进mysql_连接到MySQL数据库