FZU 1753
题目的思路还是很简单的,找出这些组合数中最大的公约数;
其中C(n,k)=n ! /k!/(n-k)!
所以枚举每个素因数,用(n!)的减去(k!)和(n-k)!的就行了...
最后取每组的最小值
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std;
const int maxn=;
const int inf=0x3fffffff;
int prime[maxn],num;
bool isprime[maxn];
int cnt[maxn],lim;
typedef unsigned long long ll; void init()
{
for(int i=; i<maxn; i++)
if(!isprime[i])
{
prime[num++]=i;
for(int j=*i; j<maxn; j+=i)
isprime[j]=;
}
} void cal(int a,int b,int c)
{
int nn=-;
for(int i=; prime[i]<=lim; i++)
{
int t=,pre=a;
if(pre>=prime[i]) while(pre) t+=pre/prime[i],pre/=prime[i];
pre=b;
if(pre>=prime[i]) while(pre) t-=pre/prime[i],pre/=prime[i];
pre=c;
if(pre>=prime[i]) while(pre) t-=pre/prime[i],pre/=prime[i];
if(cnt[i]==-||cnt[i]>t) cnt[i]=t;
if(cnt[i]) nn=prime[i];
}
lim=nn;
}
ll pow1(ll a,int n)
{
ll ret=;
for(; n; n>>=,a=a*a)
if(n&) ret*=a;
return ret;
}
int main()
{
init();
int n,a[],b[];
while(scanf("%d",&n)==)
{
lim=inf;
for(int i=; i<n; i++)
{
scanf("%d %d",&a[i],&b[i]);
lim=min(lim,a[i]);
}
memset(cnt,-,sizeof(cnt));
for(int i=; i<n; i++)
cal(a[i],b[i],a[i]-b[i]);
ll ans=;
for(int i=; prime[i]<=lim; i++)
if(cnt[i]>) ans*=pow1(prime[i],cnt[i]);
printf("%I64u\n",ans);
}
return ;
}
FZU 1753的更多相关文章
- fzu 1753 Another Easy Problem
本题题意为求 t (t<150) 个 c (n,m) (1<=m<=n<=100000)的最大公因子: 本题的难点为优化.主要有两个优化重点.一是每次对单个素因子进行处理,优 ...
- fzu 1753 质因数的应用
Another Easy Problem Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- CSU训练分类
√√第一部分 基础算法(#10023 除外) 第 1 章 贪心算法 √√#10000 「一本通 1.1 例 1」活动安排 √√#10001 「一本通 1.1 例 2」种树 √√#10002 「一本通 ...
- SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
相信很多人进行数据存储时,会遇上如标题的异常错误. 其实也不算上一个错误. 当你的程序中有宣告一个字段的数据类型为DateTime时,但你又没有赋值给它,就进行存储时,它就会得到这样一个结果. 看看下 ...
- POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
- FZU 2137 奇异字符串 后缀树组+RMQ
题目连接:http://acm.fzu.edu.cn/problem.php?pid=2137 题解: 枚举x位置,向左右延伸计算答案 如何计算答案:对字符串建立SA,那么对于想双延伸的长度L,假如有 ...
- FZU 1914 单调队列
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1914 题意: 给出一个数列,如果它的前i(1<=i<=n)项和都是正的,那么这个数列是正的,问这个 ...
- ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】
FZU 2105 Digits Count Time Limit:10000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- [ACM训练] 算法初级 之 基本算法 之 枚举(POJ 1753+2965)
先列出题目: 1.POJ 1753 POJ 1753 Flip Game:http://poj.org/problem?id=1753 Sample Input bwwb bbwb bwwb bww ...
随机推荐
- 【原】Shell脚本-判断文件有无进而复制
2016年7月5日某同学在群上求助要编一个判断文件或目录在某路径下有无进而有的就复制粘贴到另一路径下,无的则将代码中断(不往下执行命令)的脚本.逐一完善.模板如下(生产环境可用到路径环境变量) --- ...
- Maven笔记(二)仓库
1.仓库布局 任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,这就是Maven的仓库布局方式 路径与坐标的对应关系为:groupId/artifactId/version/ ...
- php之数据类型自动转换
1:概述 ---php是一种弱类型的语言,它可以根据运行环境的变化而自动进行数据类型的转换 1.1转换成布尔类型的原则 以下值都将转换成布尔类型中的false: A.布尔类型的false; B.空字符 ...
- bgycoding
//add by zzw@曾志伟 2015-12-9 [碧桂园项目] begin if(condition.indexOf("glbdef8 = 'Y'")>0){ Stri ...
- hdoj1325 Is It A Tree?
Is It A Tree?题目链接 题意: 多组测试数据, 每组数据有多个数对, 表示一条有向边(即第一个数是第二个数的父节点), 以 0,0 为一组测试数据结束标志.当输入-1,-1时测试结束. 从 ...
- 多个线程访问url
多个线程访问url package com.aig.ecompassios.ecard; import java.io.BufferedReader; import java.io.InputStre ...
- Android中一般支持的常用的距离单位
px(像素):每个px对应屏幕上的一个点. dip或dp(device independent pixels,设备独立像素):一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dip=1px. ...
- ios paper for facebook 使用第三方库
facebook paper使用的第三方库 Facebook Paper使用的第三方库 第三方库名 简介 链接 ACE code editor https://github.com/ajaxorg/a ...
- O-C相关-07-@property关键字简介与使用
基本概念:在O-C中,创建完类之后还需要给一个类添加属性和方法,之前说过的set和get方法比较繁琐,因此引入了@property 这个编译器指令.@property 是一个编译器指令.所谓的编译器指 ...
- java三大特性性:封装、继承和多态
一.封装 封装是指隐藏对象的属性及实现细节,对外仅提供接口可见.封装实现了信息隐藏,利于软件复用.其优点是达到了模块化的标准,从而提高了代码的复用程度.在某种程度上,封装也大大改善了软件开发的可维护性 ...