题意

给你 \(n\) 个数,每次求出相邻两个数的和组成新数列。经过 \(n-1\) 次操作后,得到一个数。求这个数 \(mod \ m\) 与哪些项无关。

如:当 \(m=2 \ , \ n=2\) 时 \(a_1 \ , \ a_2 , a_3 \Rightarrow a_1+a_2 \ , \ a_2+a_3 \Rightarrow \ a_1+2a_2+a_3\) 则与 \(a_2\) 无关

思路

由二项式定理知道结果系数是杨辉三角的第 \(n-1\) 行,问题转换成判断有多少个 \(C_{n-1}^{i}\) 可以整除 \(m\)。

考虑 \(m\) 与 \(C_{n-1}^{i}\) 的唯一分解,\(\prod_{i=1}^n fac_i^{index_i}\) 与 \(C_{n-1}^{i}\) 作比较,当所有的质因子都在 \(C_{n-1}^{i}\) 中出现并且次数都小于 \(C_{n-1}^{i}\) 的次数时,即可整除。

分解 \(C_{n}^{i}\) 时需要用到组合数的递推式:\(C_{n}^{i}=\frac{n-i+1}{i} \times C_{n}^{i-1}\)。分解时只考虑 \(\frac{n-i+1}{i}\),因为 \(C_{n}^{i-1}\) 在上一次中计算过了。

/************************************************
*Author : lrj124
*Created Time : 2019.08.09.21:03
*Mail : 1584634848@qq.com
*Problem : uva1635
************************************************/
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100000 + 10;
int n,m,m_index[maxn],factor[maxn],cnt,c_index[maxn],ans[maxn];
inline void init() {
for (int i = 2;i*i <= m;i++)
if (!(m%i)) {
factor[++cnt] = i;
for (;!(m%i);m /= i,m_index[cnt]++);
}
if (m > 1) {
factor[++cnt] = m;
m_index[cnt]++;
}
}
inline bool check(int N,int k) {
N = N-k+1;
for (int i = 1;i <= cnt;i++) {
for (;!(N%factor[i]);N /= factor[i],c_index[i]++);
for (;!(k%factor[i]);k /= factor[i],c_index[i]--);
}
for (int i = 1;i <= cnt;i++)
if (m_index[i] > c_index[i]) return false;
return true;
}
int main() {
//freopen("uva1635.in","r",stdin);
//freopen("uva1635.out","w",stdout);
while (cin >> n >> m) {
memset(m_index,0,sizeof(m_index));
memset(c_index,0,sizeof(c_index));
ans[0] = cnt = 0;
init();
for (int i = 1;i <= n-2;i++)
if (check(n-1,i)) ans[++ans[0]] = i+1;
printf("%d\n",ans[0]);
for (int i = 1;i <= ans[0];i++) printf("%s%d",i ^ 1 ? " " : "",ans[i]);
printf("\n");
}
return 0;
}

【UVa1635】Irrelevant Elements - 唯一分解定理的更多相关文章

  1. UVA1635 Irrelevant Elements —— 唯一分解定理 + 二项式定理

    题目链接:https://vjudge.net/problem/UVA-1635 (紫书320) 题解: 1.根据二项式定理, 可得递推公式: C(n,k) = (n-k+1)/k * C(n, k- ...

  2. UVA1635 Irrelevant Elements(唯一分解定理 + 组合数递推)

    http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51196 紫书P320; 题意:给定n个数a1,a2····an,依次求出相邻 ...

  3. POJ2167Irrelevant Elements[唯一分解定理 组合数 杨辉三角]

    Irrelevant Elements Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 2407   Accepted: 59 ...

  4. UVa1635 - Irrelevant Elements

    通过观察发现其规律符合杨辉三角 需要注意的是最后ai的系数是C(i-1,n-1) 那么,问题就可以变成判断C(0,n-1),C(1,n-1)....C(n-1,n-1)哪些是m的倍数 只需要计算出m的 ...

  5. Irrelevant Elements UVA - 1635 二项式定理+组合数公式+素数筛+唯一分解定理

    /** 题目:Irrelevant Elements UVA - 1635 链接:https://vjudge.net/problem/UVA-1635 题意:給定n,m;題意抽象成(a+b)^(n- ...

  6. 【组合数的唯一分解定理】Uva1635

    给出n.m,求得最终求和数列an=C(n-1,0)*x1 + C(n-1,1)*x2+...+C(n-1,n-1)*xn; 若xi与m无关,则an除以m的余数与xi无关,即余数不含xi的项: 输入:n ...

  7. Irrelevant Elements UVA-1635 (二项式定理)

    vjudge链接 原题链接 乍一看似乎没什么思路,但是写几个简单的例子之后规律就变得很明显. 比如当 n=5 时,每一步计算后的结果如下: a1 a1+a2 a1+2a2+a3 a1+3a2+3a3+ ...

  8. poj2773 —— 二分 + 容斥原理 + 唯一分解定理

    题目链接:http://poj.org/problem?id=2773 Happy 2006 Time Limit: 3000MS   Memory Limit: 65536K Total Submi ...

  9. B - Common Divisors (codeforces)数论算法基本定理,唯一分解定理模板

    You are given an array aa consisting of nn integers. Your task is to say the number of such positive ...

随机推荐

  1. HTTP请求方式及常见问题

    请求方式 当前HTTP一共有八种方式.有三种是有HTTP1.0提供,剩余五种则是有HTTP1.1提供 常见问题 啥是OPTIONS?有啥作用 是浏览器对复杂跨域请求的一种处理方式,在真正发送请求之前, ...

  2. java 之死循环

    public class StringTest { public static void main(String[] args) { System.out.println(getStringCount ...

  3. html头文件设置常用之<meta>设置

    也许很多开发人员并没有重视meta标签,我就是其中一个,但是meta标签的功能很强大,下面就来说说meta标签! <meta http-equiv="pragma" cont ...

  4. IDEA中项目的两种打包方式

    本文主要介绍在IDEA中怎么打包,及可以用哪种方式打包. 若是有指正或补充的,欢迎留言~  ٩(●̮̃•)۶ 接下来进入正题: IDEA中打包需要先进行配置,so,我们先打开<abbr titl ...

  5. Python os.fdopen() 方法

    概述 os.fdopen() 方法用于通过文件描述符 fd 创建一个文件对象,并返回这个文件对象.高佣联盟 www.cgewang.com Unix, Windows上可用. 语法 fdopen()方 ...

  6. PHP imageaffine - 返回经过仿射变换后的图像

    imageaffine — 返回经过仿射变换后的图像,剪切区域可选.高佣联盟 www.cgewang.com 语法 resource imageaffine ( resource $image , a ...

  7. 珍藏多年的学习资料300G+,赶紧免费领取,从此离大神更进一步

    将时间线拉到2014     2014年的寒冬,每天早晨六点钟,都会一个弱小的身影,从学校寝室出发,走在去实习公司的路上.经过食堂边的包子铺,他会顺手买两个包子,一杯豆浆,老板也会像往常一样热情的吆喝 ...

  8. 深入探究JVM之类加载与双亲委派机制

    @ 目录 前言 类的生命周期 加载 验证 准备 解析 初始化 案例一 案例二 案例三 案例四 类加载器 类加载器和双亲委派模型 破坏双亲委派模型 第一次 SPI Tomcat OSGI 总结 前言 前 ...

  9. 还分不清 Cookie、Session、Token、JWT?一篇文章讲清楚

    还分不清 Cookie.Session.Token.JWT?一篇文章讲清楚 转载来源 公众号:前端加加 作者:秋天不落叶 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证 ...

  10. K近邻算法(二)

    def KNN_classify(k, X_train, y_train, x): assert 1 <= k <= X_train.shape[0], "k must be v ...