题意

给你 \(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. p44_IP数据包格式

    一.IP数据报格式 二.IP分片 数据链路层每帧可封装数据有上限,IP数据超过的要分片. 标识:同一数据报的分片使用同一标识 标志: 片偏移(13bit):用于还原数据报顺序,指出某片在原分组1中的相 ...

  2. p70_域名解析系统DNS

    一.DNS作用 二.域名 www.cskaoyan.com. www 三级域名 cskaoyan 二级域名 com 顶级域名 三.域名服务器 根域名服务器:知道所有顶级域名服务器的域名和ip地址 顶级 ...

  3. Java中Map的entrySet()详解

    转发:原博客 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系.Map中采用Entry内部类来表示一个映射项,映射项包含Key和ValueMap.Entry里面包含getKey() ...

  4. Vue nextTick 学习历程

    nextTick 详解 这是官网的解释,比较简洁精炼,反正我是第一遍什么都没看懂 在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. 经过我一步步测试 ...

  5. 在java中进行日期时间比较的4种方法

    1. Date.compareTo() java.util.Date提供了在Java中比较两个日期的经典方法compareTo(). 如果两个日期相等,则返回值为0. 如果Date在date参数之后, ...

  6. 一个完全关于android编程的技术博客网站

    https://www.oschina.net/android/96/file-process

  7. python处理excel文件(xls和xlsx)

    一.xlrd和xlwt 使用之前需要先安装,windows上如果直接在cmd中运行python则需要先执行pip3 install xlrd和pip3 install xlwt,如果使用pycharm ...

  8. jstree 权限树 简单教程

    第一 :引用.略过 第二 : 初始化: //初始化加载 window.onload = function () { //获取树 信息 todo var result=[{ "id" ...

  9. JVM系列之:String.intern的性能

    目录 简介 String.intern和G1字符串去重的区别 String.intern的性能 举个例子 简介 String对象有个特殊的StringTable字符串常量池,为了减少Heap中生成的字 ...

  10. 微服务迁移记(五):WEB层搭建(3)-FreeMarker集成

    一.redis搭建 二.WEB层主要依赖包 三.FeignClient通用接口 以上三项,参考<微服务迁移记(五):WEB层搭建(1)> 四.SpringSecurity集成 参考:< ...