题目大意:

输入n,m; ( 1 ≤ N ≤ 10000, 2 ≤ M ≤ 100 )

接下来n个数;Each integer is not greater than 10000 by it's absolute value.

判断他们按顺序做加减法后能否整除m

若能输出“Divisible”,否则输出“Not divisible”;

Sample Input

Sample #1
4 7
17 5 -21 15

Sample #2
4 5
17 5 -21 15

Sample Output

Sample #1
Divisible

Sample #2
Not divisible

对于第一个样例解释:

17 + 5 + -21 + 15 = 16
17 + 5 + -21 - 15 = -14
17 + 5 - -21 + 15 = 58
17 + 5 - -21 - 15 = 28
17 - 5 + -21 + 15 = 6
17 - 5 + -21 - 15 = -24
17 - 5 - -21 + 15 = 48
17 - 5 - -21 - 15 = 18

-14可整除7

#include <bits/stdc++.h>
using namespace std;
bool dp[][];
/// dp[i][j]表示第i个数时余数为j的状态存不存在 1为存在 0则不存在
int main()
{
int n,m,a;
while(~scanf("%d%d%d",&n,&m,&a))
{
memset(dp,,sizeof(dp));
dp[][(a%m+m)%m]=; // 到第1个数时 a%m 存在
for(int i=;i<=n;i++)
{
scanf("%d",&a);
a=fabs(a); a%=m; /// 防止出现负数 先取绝对值 对求余没影响
for(int j=;j<m;j++)
if(dp[i-][j]) // 若上一个数时 余j 的状态存在
dp[i][(j+a)%m]=dp[i][(j-a+m)%m]=;
/// 则可由 上个数余j的状态 推出
/// 到当前数时(+a或-a) 余(j+a)%m 和 余(j-a+m)%m
/// 两个状态可存在
}
if(dp[n][]) printf("Divisible\n");
else printf("Not divisible\n");
} return ;
}

NEERC 1999 Divisibility /// 同余DP oj22640的更多相关文章

  1. 同余dp

    先验知识: 余数的计算公式:c = a -⌊ a/b⌋ * b 其中,⌊ ⌋为向下取整运算符,向下取整运算称为Floor,用数学符号⌊ ⌋表示 题目: Consider an arbitrary se ...

  2. 2016 ACM-ICPC NEERC F. Foreign Postcards (概率DP)

    2016 ACM-ICPC NEERC F. Foreign Postcards 题意:有一串由C.W组成的字符串,每次截取长度为k(1<=k<=n且k随机)的前缀,如果该前缀首位为W,则 ...

  3. NEERC 1999 Advertisement /// oj22646

    题目大意: 输入k,n :k为每位慢跑者最少应看到的广告牌数 接下来n行 描述第 i 位慢跑者的途径路段 输出需要设立的广告牌数 接下来每行为设立地点 Sample Input 5 101 1020 ...

  4. 1745 Divisibility

    Divisibility Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14084 Accepted: 4989 Descrip ...

  5. Poj/OpenJudge 1042 Gone Fishing

    1.链接地址: http://bailian.openjudge.cn/practice/1042/ http://poj.org/problem?id=1042 2.题目: Gone Fishing ...

  6. 《Python核心编程》第五章:数字

    PS:[笔记+代码+图片]在GitHub上持续更新,欢迎star:https://github.com/gdouchufu/Core-Python-Programming 本章大纲 介绍Python支 ...

  7. POJ 1745 Divisibility (线性dp)

    Divisibility Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10598   Accepted: 3787 Des ...

  8. ZOJ 2042 Divisibility (DP)

    Divisibility Time Limit: 2 Seconds      Memory Limit:65536 KB Consider an arbitrary sequence of inte ...

  9. 算法训练 K好数 数位DP+同余定理

    思路:d(i,j)表示以i开头,长度为j的K好数的个数,转移方程就是 for(int u = 0; u < k; ++u) { int x = abs(i - u); if(x == 1) co ...

随机推荐

  1. JUC 一 ReentrantLock 可重入锁

    java.util.concurrent.locks ReentrantLock即可重入锁,实现了Lock和Serializable接口 ReentrantLock和synchronized都是可重入 ...

  2. IDEA 注解开发流程

    IDEA 注解开发流程  分为以下四步  分别是 1 导入依赖 2 配置文件 applicationContext.xml 3 在需要创建对象的类上添加注解 4  测试 详细步骤和代码如下 1 导入依 ...

  3. thinkphp 性能调试

    开发过程中,有些时候为了测试性能,经常需要调试某段代码的运行时间或者内存占用开销,系统提供了G方法可以很方便的获取某个区间的运行时间和内存占用情况. 例如: 富瑞联华大理石平台大理石平台检定规程 G( ...

  4. 开发中运行mysql脚本,发现提示mysql提示Column count doesn't match value count at row 1错误

    开发中运行mysql脚本,发现提示mysql提示Column count doesn't match value count at row 1错误, 调试后发现是由于写的SQL语句里列的数目和后面的值 ...

  5. Win7+Ubuntu11.10(EasyBCD硬盘安装)----转载

    Win7+Ubuntu11.10(EasyBCD硬盘安装) ubuntu 下载地址:http://mirrors.163.com/ubuntu-releases/12.04/ 1)首先还是分区,在计算 ...

  6. 为什么 TCP 建立连接是三次握手,关闭连接确是四次挥手呢?

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:小书go https://blog.csdn.net/qzcsu/article/details/72861891 背 ...

  7. 使用SDK方式进行微信授权

    1.在pom.xml中添加依赖 <dependency> <groupId>com.github.binarywang</groupId> <artifact ...

  8. centos yum install 找不到软件包

    yum install epel-release 然后再试试yum install 其他安装包

  9. 科普帖:深度学习中GPU和显存分析

    知乎的一篇文章: https://zhuanlan.zhihu.com/p/31558973 关于如何使用nvidia-smi查看显存与GPU使用情况,参考如下链接: https://blog.csd ...

  10. 21-1字符串相关api

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...