例10-6 uva1635(唯一分解定理)
题意:给定n个数a1,a2····an,依次求出相邻两个数值和,将得到一个新数列,重复上述操作,最后结果将变为一个数,问这个数除以m的余数与那些数无关?
思路:最后观察期规律符合杨辉三角,那么,问题就可以变成判断C(0,n-1),C(1,n-1)。。。。C(n-1,n-1)哪些是m的倍数,所以只需考虑m唯一分解后在C(i,n-1)中的情况
公式:C(k,n)=(n-i+1)*c(i-1,n)/k. 然后利用递推公式检查m的因子,只要(n-i+1)/i是m倍数即可
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <map>
#include <vector>
using namespace std;
typedef long long ll;
typedef unsigned long long ull; int pm[1000],nm[1000];
int cur; void ini(int m) //分解m
{
cur = 0;
memset(pm,0,sizeof(pm));
memset(nm,0,sizeof(nm));
for(int i = 2; i*i <= m ; i ++)
{
if(m % i == 0)
{
pm[cur] = i;
while(m % i == 0)
{
m /= i;
nm[cur]++;
}
cur++;
}
}
if(m > 1)
{
pm[cur] = m;
nm[cur++] = 1;
}
} bool can_do(int x,int y) //检查因子
{
bool flag=true;
for(int i=0; i<cur; ++i)
{
while((x%pm[i]==0) && (x/=pm[i]))
nm[i]--;
while((y%pm[i]==0) && (y/=pm[i]))
nm[i]++;
if(nm[i]>0)
flag=false;
}
return flag;
}
int ans[100050]; int main()
{
int m,n;
while(~scanf("%d%d",&n,&m))
{
ini(m);
int tot = 0;
for(int i = 1; i <= n; i++)
{
if(can_do(n-i,i)) //n-i = (n-1)-i+1
{
ans[tot++] = i+1;
}
}
printf("%d\n",tot);
if(tot != 0)
{
for(int i = 0; i < tot-1; i++)
if(ans[i])
printf("%d ",ans[i]);
printf("%d",ans[tot-1]); }
printf("\n");
}
return 0;
}
例10-6 uva1635(唯一分解定理)的更多相关文章
- 例10-3 uva10375(唯一分解定理)
题意:已知C(m,n) = m!/(n!(m-n)!),已知p,q,r,s,求C(p,q)/C(r,s) 思路: 全部分解成质因子,相乘则加,除则减 #include <iostream> ...
- LightOJ-1236 Pairs Forming LCM 唯一分解定理
题目链接:https://cn.vjudge.net/problem/LightOJ-1236 题意 给一整数n,求有多少对a和b(a<=b),使lcm(a, b)=n 注意数据范围n<= ...
- 【组合数的唯一分解定理】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 ...
- 唯一分解定理(以Minimun Sum LCM UVa 10791为例)
唯一分解定理是指任何正整数都可以分解为一些素数的幂之积,即任意正整数n=a1^p1*a2^p2*...*ai^pi:其中ai为任意素数,pi为任意整数. 题意是输入整数n,求至少2个整数,使得它们的最 ...
- LightOJ 1341 - Aladdin and the Flying Carpet (唯一分解定理 + 素数筛选)
http://lightoj.com/volume_showproblem.php?problem=1341 Aladdin and the Flying Carpet Time Limit:3000 ...
- FZU 1075 分解素因子【数论/唯一分解定理/分解素因子裸模板】
[唯一分解定理]:https://www.cnblogs.com/mjtcn/p/6743624.html 假设x是一个正整数,它的值不超过65535(即1<x<=65535),请编写一个 ...
- POJ 1845-Sumdiv(快速幂取模+整数唯一分解定理+约数和公式+同余模公式)
Sumdiv Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- UVa10375:选择与除法(唯一分解定理)
The binomial coefficient C(m,n) is defined as Given four natural numbers p, q, r, and s, compute the th ...
- Divisors (求解组合数因子个数)【唯一分解定理】
Divisors 题目链接(点击) Your task in this problem is to determine the number of divisors of Cnk. Just for ...
- NOIP2009Hankson 的趣味题[唯一分解定理|暴力]
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现 在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲 ...
随机推荐
- 日志 --BUG记录
2014-12-15日 在做520wawa的免费推广 部署web应用时 错把path设置为"/*",导致启动tomcat时,导致错误 <Context path=&quo ...
- 记一次SQL调优/优化(SQL tuning)——性能大幅提升千倍以上
好久不写东西了,一直忙于各种杂事儿,恰巧昨天有个用户研发问到我一个SQL调优的问题,说性能太差,希望我能给调优下,最近有些懒,可能和最近太忙有关系,本来打算问问现在的情况,如果差不多就不调了,那哥们儿 ...
- float、absolute、inline-block三者区别
0.前言 float属性在css2中是一个热门的属性,被广泛应用于布局之中,同时由于不当使用float带来的问题也非常多,本文结合自己对float的理解以及实际项目中碰到float的相关问题,做一个详 ...
- 测试驱动开发实践3————从testList开始
[内容指引] 运行单元测试: 装配一条数据: 模拟更多数据测试列表: 测试无搜索列表: 测试标准查询: 测试高级查询. 一.运行单元测试 我们以文档分类(Category)这个领域类为例,示范如何通过 ...
- it's a big trick
今天,正式的登上了我注册已久的博客园,最初注册园子得出发点是记录生活点滴和学习工作的心得的,那就不忘初心,从头开始吧. 从校园到工作,从东北到南方 我们毕业啦 谁说毕业遥遥无期,转眼就要各奔东西. 是 ...
- Mego开发文档 - 建模高级主题
建模高级主题 在建模过程中我们还有许多其他情况,这里列出本框架中的有用特性来用于解决此类问题. 函数映射 我们可以将指定的CLR函数映射到数据库中的系统函数或自定义函数,该特性用于补充框架中未提供的数 ...
- j2ee基础(1)servlet的生命周期
Servlet的生命周期 Servlet 生命周期规定了 Servlet 如何被加载.实例化.初始化. 处理客户端请求,以及何时结束服务. 该生命周期可以通过 javax.servlet.Servle ...
- SpringCloud是什么?
参考链接: http://blog.csdn.net/forezp/article/details/70148833 一.概念定义 Spring Cloud是一个微服务框架,相比Dubbo ...
- 启动mongodb遇到的错:warning: 32-bit servers don't have journaling enabled by deflity
执行修复:mongod --repair即可 正常关闭:killall mongod
- express学习(三)—— cookie和session
express学习(三)-- cookie和session cookie存在浏览器中,最大只能保存4K数据,不安全 session存在服务器中,不能独立(先读取cookie再读取session),较安 ...