【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

m比较小
a[i]直接看成a[i]%m就可以了。

有n个0..999之间的整数。。

如果有一个0那么就直接输出Yes.

否则要用那些数字凑0

则用cnt[0..999]记录每个数字出现的个数。

即n个物品,每个物品cnt[i]个。

然后凑和为0

->多重背包。

但每个物品的数量可能很多。

所以加一个二进制优化就好了。

把每个物品的数量转化成二进制。

转换成01背包的问题。

(物品的数目大概在1000*log2(1e6)的样子

然后容量是1000.

这时候就可以做了。

另解

如果n>m的话。

前缀和数组中肯定有sum[i]%m和sum[j]%m相同。

(抽屉原理,每个数字在0..m-1之间,然后有m+1个数字的话,显然不可能每个数字都相同。

则i+1..j之间的和就是m的倍数了。

所以直接输出YES.

否则做一个O(M^2)的背包就好。

【代码】

#include <bits/stdc++.h>
#define ll long long
using namespace std; const int M = 1e3+10; bool f[2][M];
int a[M],n,m;
vector<int> v; int main()
{
ios::sync_with_stdio(0),cin.tie(0);
#ifdef LOCAL_DEFINE
freopen("rush.txt","r",stdin);
#endif
cin >> n >> m;
for (int i = 1;i <= n;i++) {
int x;cin >>x;x%=m;
a[x]++;
} if (a[0]>0){
cout<<"YES"<<endl;
return 0;
} for (int i = 1;i < m;i++)
if (a[i]>0){
int temp = 1;
while (a[i]>=temp){
v.push_back((1LL*temp*i)%m);
a[i]-=temp;
temp*=2;
}
if (a[i]>0) v.push_back((1LL*a[i]*i)%m);
}
if (!v.empty()){
f[0][v[0]] = 1;
if (v[0]==0) return cout<<"YES"<<endl,0;
for (int i = 1;i <(int)v.size();i++){
for (int j = 0;j < m;j++) f[i&1][j] = 0;
for (int j = 1;j <= m-1;j++)
if (f[(i&1)^1][j]){
int k = (j+v[i])%m;
f[i&1][j] = 1;
f[i&1][k] = 1;
}
f[i&1][v[i]] = 1;
if (f[i&1][0]) return cout<<"YES"<<endl,0;
}
}
cout<<"NO"<<endl;
return 0;
}

【Henu ACM Round#18 B】Modulo Sum的更多相关文章

  1. 【Henu ACM Round#18 F】Arthur and Walls

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑,为什么一个连通块里面的空格没有变成一个矩形? 如果不是形成矩形的话. 肯定是因为某个2x2的单张方形里面. 只有一个角是墙.其 ...

  2. 【Henu ACM Round#18 E】Anya and Cubes

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每个数字有3种选择. 1.选中它. 2.选中它且加阶乘符号 3.不选中它(即计算和的时候不考虑它) 如果我们直接暴力写的话复杂度是\ ...

  3. 【Henu ACM Round#18 D】Looksery Party

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 假设现在每个人收到的信息条数存在cnt里面 那个人猜的条数为target 则如果cnt[i]==target[i] 则我们就让第i个 ...

  4. 【Henu ACM Round#18 C】Ilya and Sticks

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用cnt[i]记录数字i出现的次数就好. 然后i从1e6逆序到1 如果cnt[i+1]和cnt[i]>0同时成立的话. 那么得 ...

  5. 【Henu ACM Round#18 A】 Multiplication Table

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 遍历i从1..n 看看x%i==0以及x/i<=n是否成立. [代码] #include <iostream> u ...

  6. 【Henu ACM Round#17 C】Kitahara Haruki's Gift

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 判断sum/2这个价值能不能得到就可以了. 则就是一个01背包模型了. 判断某个价值能否得到. f[j]表示价值j能否得到. f[0 ...

  7. 【Henu ACM Round#24 D】Iterated Linear Function

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把B提取出来就是一个等比数列了. 求和一下会发现是这种形式. \(B*\frac{(A^n-1)}{A-1}+A^n*x\) 则求一 ...

  8. 【Henu ACM Round#17 D】Hexagons!

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 题目的图吓人. 找下规律就会发现从内到外是1,6,12,18 即1,16,26,36... 即1+6(1+2+3+...) 等差求和 ...

  9. 【Henu ACM Round#14 D】Kefa and Dishes

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 状态压缩动规. 可以写成记忆化搜索的形式. f[bit][p] 表示选取的菜的情况为bit(用0..2^(N)-1的二进制形式表示各 ...

随机推荐

  1. jackson 解析json含有不规则的属性的json字符串的方法

    对于json中含有点号,等其它特殊的,不是规范的java变量名的字符,能够使用一个注解来处理. 贴代码: import com.fasterxml.jackson.annotation.JsonPro ...

  2. Linux平台不同解压缩命令的使用方法

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.co ...

  3. WebView Js注入

    注入前: 注入后: 主界面: package com.example.webviewjsdemo; import android.os.Bundle; import android.app.Activ ...

  4. bzoj3438: 小M的作物(那年花开最小割)

    3438: 小M的作物 题目:传送门 题解: 最小割标准水题(做了几天的最小割之后表示是真的水) 为什么水:博主已经做过两道基本一样的题目了... 详情参考:bzoj3894 代码: #include ...

  5. 安卓开发--AsyncTask

    package com.cnn.asynctask; import android.app.Activity; import android.content.Intent; import androi ...

  6. C#后台请求其它网站页面

    /// <summary> /// 指定Post地址使用Get 方式获取全部字符串 /// </summary> /// <param name="url&qu ...

  7. PostgreSQL Replication之第九章 与pgpool一起工作(3)

    9.3 理解pgpool的架构 一旦我们安装了pgpool,是时候来讨论软件架构了.从一个用户的角度看,pgpool就像一个 正常的数据库服务器,您可以想连接任何其他服务器一样连接到它: pgpool ...

  8. PostgreSQL Replication之第八章 与pgbouncer一起工作(2)

    8.2 安装pgbouncer 在我们深入细节之前,我们将看看如何安装pgbouncer.正如PostgreSQL一样,您可以采取两种途径.您可以安装二进制包或者直接从源代码编译.在我们的例子中,我们 ...

  9. ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(上)

    前言 在上篇文章中,详细分析了RACSignal是创建和订阅的详细过程.看到底层源码实现后,就能发现,ReactiveCocoa这个FRP的库,实现响应式(RP)是用Block闭包来实现的,而并不是用 ...

  10. c#做对比软件

    一些 HTML内容比较/文本差异比较 开源代码 1. DiffPlex - a .NET Diff Generator    http://diffplex.codeplex.com/SourceCo ...