题目的思路还是很简单的,找出这些组合数中最大的公约数;

其中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的更多相关文章

  1. fzu 1753 Another Easy Problem

    本题题意为求 t (t<150) 个 c (n,m)  (1<=m<=n<=100000)的最大公因子: 本题的难点为优化.主要有两个优化重点.一是每次对单个素因子进行处理,优 ...

  2. fzu 1753 质因数的应用

    Another Easy Problem Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

  3. CSU训练分类

    √√第一部分 基础算法(#10023 除外) 第 1 章 贪心算法 √√#10000 「一本通 1.1 例 1」活动安排 √√#10001 「一本通 1.1 例 2」种树 √√#10002 「一本通 ...

  4. SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

    相信很多人进行数据存储时,会遇上如标题的异常错误. 其实也不算上一个错误. 当你的程序中有宣告一个字段的数据类型为DateTime时,但你又没有赋值给它,就进行存储时,它就会得到这样一个结果. 看看下 ...

  5. POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37427   Accepted: 16288 Descr ...

  6. FZU 2137 奇异字符串 后缀树组+RMQ

    题目连接:http://acm.fzu.edu.cn/problem.php?pid=2137 题解: 枚举x位置,向左右延伸计算答案 如何计算答案:对字符串建立SA,那么对于想双延伸的长度L,假如有 ...

  7. FZU 1914 单调队列

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=1914 题意: 给出一个数列,如果它的前i(1<=i<=n)项和都是正的,那么这个数列是正的,问这个 ...

  8. ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】

     FZU 2105  Digits Count Time Limit:10000MS     Memory Limit:262144KB     64bit IO Format:%I64d & ...

  9. [ACM训练] 算法初级 之 基本算法 之 枚举(POJ 1753+2965)

    先列出题目: 1.POJ 1753 POJ 1753  Flip Game:http://poj.org/problem?id=1753 Sample Input bwwb bbwb bwwb bww ...

随机推荐

  1. Android(java)学习笔记211:采用httpclient提交数据(qq登录案例)

    1.Apache -Httpclient HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包 ...

  2. c基础语法

    1 连续写两个分号,第2个分号就是一条空语句,空语句实际是什么也不做,语法是正确的,编译不会出错. 空语句可以增加程序的可读性,可以作为待写的函数体.循环体.语句块.所以,空语句是可以有用的. 2 s ...

  3. Android_EditText

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...

  4. Hadoop Standalone and Pseudo Mode

    . Required Softwareyum install openssh-server rsync java-1.8.0-openjdk-devel . Setup Hostname/etc/ho ...

  5. 玩转html5<canvas>画图

    导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制 ...

  6. Linux操作系统搭建LAMP开发环境

    Step1. 安装 Apache 在terminal中输入命令 sudo apt-get install apache2 打开浏览器,在地址栏输入:127.0.0.1,如果出现了 “It works! ...

  7. CSS样式表介绍

    一.    CSS中的样式选择 1)内样式(内联样式) style=””; 2)内嵌样式 <style type="text/css"></style> 3 ...

  8. SQL Server游标+延迟执行简介

    在项目测试中,我们可能会使用批量生成数据来测试程序的性能. 这里讲一个我遇到的问题,由于我们批量生成数据时基本上是瞬间完成,所以GETDATE()函数获得的时间基本上也是一样的,而我们又要求生成每条数 ...

  9. 使用PDO持久化连接

    无论是何种编程语言,几乎都要经常与各种数据库打交道.不过,众所周知的是,在程序与数据库之间建立连接是一件比较耗费资源的事情,因此编程技术领域的许多专家.前辈们就设想并提出了各种解决方案,以减少不必要的 ...

  10. 彻底理解PHP的SESSION机制

    http://www.cnblogs.com/acpp/archive/2011/06/10/2077592.html 一.默认机制,用磁盘文件来实现PHP会话.php.ini配置:session.s ...