题目链接:【codeforces 577B】

问能不能在大小是n的数列中取出几个数,使得他们的和是m的倍数

如果n>m,那么无论n个数是多少,都可以,这是一个定理

所以我们要讨论的就是n<=m的时候

对于1 2 2 3这个数列

我们能得到的和有1   2  3   4  5   6

重复的就直接去掉

所以用set容器来保存前i个数能得到的和

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string>
#include <queue>
#include <vector>
#include <set>
#include <functional>
using namespace std;
int a[1000005];
int sum[1005];
int main()
{int n,m;scanf("%d%d",&n,&m);for(int i=0;i<n;i++){scanf("%d",&a[i]);}if(n>m) {printf("YES\n");return 0;} set<int>s;set<int>::iterator it;s.insert(a[0]%m);for(int i=1;i<n;i++){int l=-1;it=s.begin();int si=*it;if(si==0){printf("YES\n");return 0;}for(it=s.begin();it!=s.end();++it){l++;int si=*it;sum[l] = (si+a[i])%m;}for(int j=0;j<=l;j++) s.insert(sum[j]);s.insert(a[i]);}it=s.begin();int si=*it;if(si==0){printf("YES\n");return 0;}printf("NO\n");return 0;
}

codeforces 577B Modulo Sum相关推荐

  1. CodeForces - 577B Modulo Sum(dp+bitset优化)

    题目链接:点击查看 题目大意:给出一个长度为 n 的数列,现在问能否选出一个子序列,满足其累加之和可以整除 m 题目分析:可以当做背包去思考,dpi,jdp_{i,j}dpi,j​代表的是选了前 i ...

  2. Codeforces Round #319 (Div. 2)B. Modulo Sum DP

                                                             B. Modulo Sum time limit per test 2 seconds ...

  3. Modulo Sum

    题目链接:Problem - 577B - Codeforces Modulo Sum 求n个数中是否存在任意个数的和恰好能整除m​,n的范围是1e6,m的范围是1e3​. 抽屉原理可以证明当n> ...

  4. 「一题多解」【CodeForces 85D】Sum of Medians(线段树 / 分块)

    题目链接 [CodeForces 85D]Sum of Medians 题目大意 实现一个setsetset,支持插入,删除,求∑a5k+3∑a5k+3\sum a_{5k+3}.注意,setsets ...

  5. CF577B Modulo Sum(dp,抽屉原理 | bitset优化 | 二进制优化)

     洛谷链接: Modulo Sum - 洛谷 思路: 明显是一个背包问题,要求子序列和整除m,即sum%m = 0,所以边取模边求和即可.但是朴素做法的时间复杂度是O(nm),会TLE.有三种优化思路 ...

  6. Codeforces 1196B Odd Sum Segments

    https://codeforces.com/contest/1196/problem/B 题解:贪心 /* *@Author: STZG *@Language: C++ */ #include &l ...

  7. Educational Codeforces Round 37-F.SUM and REPLACE (线段树,线性筛,收敛函数)

    F. SUM and REPLACE time limit per test2 seconds memory limit per test256 megabytes inputstandard inp ...

  8. Codeforces 797B - Odd sum

    B. Odd sum 题目链接:http://codeforces.com/problemset/problem/797/B time limit per test 1 second memory l ...

  9. Codeforces 963A Alternating Sum 【数论+数学】

    官方题解这个样子我觉得说得比较清楚.Z我们可以朴素的预处理出来(注意乘法膜),q的话考点在于[分数取膜]即 (a/b)%P = a* inverse of b %P 这就涉及到算b的逆元,我用的是欧几 ...

最新文章

  1. 逆向建模软件介绍_逆向技术在2代机修理中的应用
  2. 阿里云主机CentOS添加硬盘
  3. 吴恩达ex3_吴恩达Machine Learning Ex3 python实现
  4. Python 进阶 —— 迭代器与生成器
  5. C++11/14::右值引用
  6. [译] 关于 SPA,你需要掌握的 4 层 (1)
  7. 关于SRE方法论的一些笔记
  8. PHP安装Xdebug
  9. vscode中设置切换终端快捷键
  10. 关于闰年和平年的每个月有多少天
  11. platfrom设备驱动框架
  12. 人工智能的软件研发管理系统
  13. [开发工具]记录MPLAB新老双IDE与C18编译器配置
  14. 第五章第三十八题(十进制转换八进制)(Decimal to octal)
  15. 一节计算机课作文500,难忘的一节课作文500字4篇
  16. 测绘专业计算机课程,测绘工程有哪些基础课程?
  17. {魔兽编辑器学习笔记} 一 安装编辑器、创建地图
  18. 评审8年终获发表,数学天才望月新一证明abc猜想,全球只有十几个数学家读懂但争议未消...
  19. html像素和em转换,CSS3中的弹性布局em运用入门详解 1em等于多少像素
  20. MPP数据库查询表占用空间

热门文章

  1. 大学计算机基础实验指导第一章答案,(教材)大学计算机基础实验指导与习题解答...
  2. Load balancer 负载均衡
  3. 网页图片无缝循环滚动html代码
  4. 电视hdr测试软件,4K电视HDR尽量选择yuv,效果最好,有效解决HDR下画面发白!
  5. Mac绘图软件:Paint X
  6. 【狂神说Java】Docker最新超详细版教程通俗易懂
  7. 竣达技术丨电池巡检微信云监控系统
  8. 工具条研究手记(2) - 认识CToolBar工具条类
  9. 依图胸部CT新冠肺炎智能评价系统:三大智能功能精准辅助医学分析|百万人学AI评选
  10. 【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现(更新完毕)