题意:求互质的m和n的最大不能组合数和不能组合数的个数

思路:m和n的最大不能组合数为m*n-m-n,不能组合数的个数为(m-1)*(n-1)/2

推导:

  先讨论最大不能组合数

  因为gcd(m,n)=1,所以 0,n,2*n,3*n,...(m-1)*n(共m个数字)分别除以m,余数肯定不同,且为{0,1,2,3...m-1}中的某数

  若存在非负数p,q使得pm+qn=x,x为可组合值,两边对m取余,则(q*n)%m==x%m,p*m>=0,所以只要x>q*n,x都能被组合出来。当q<m时,能出现所有余数,所以当x>=(m-1)*n时,x必定可被组合。

  从(m-1)*n往下寻找,第二大的q*n为(m-2)*n=(m-1)*n-n,不妨令m<n。只要比(m-1)*n-n大且不与(m-1)*n同余的数字都符合要求,即(m-1)*n,(m-1)*n-1,...(m-1)*n-(m-1),都符合要求,只有(m-1)*n-m>(m-2)*n,且同余,在m>n的情况下,由于对于q*n相邻m-1个必定不同余,所以结果一样。

  所以最大的不符合数是(m-1)*n-m,即m*n-n-m

  再讨论不符合要求的方案数

  从大到小讨论q*n(m>n)

  ①对于(m-1)*n,不符合要求的是比(m-1)*n小且与它同余的数,就是(m-1)*n-m,(m-1)*n-2*m...  

  ②对于(m-2)*n,不符合要求的是(m-2)*n-m,(m-2)*n-2*m...

  ③对于n,不符合要求的就是,n-m..

  所以ans=n/m+(2*n)/m+(3*n)/m...+((m-1)*n)/m=(m-1)*(n-1)/2    

  对于n*m/m=n,这个是整除的,所以(i*n+(m-i)*n)/m=n

  由于i*n/m必定不整除,所以i*n%m+(m-i)*n%m=m;

  因而(i*n)/m+((m-i)*n)/m=n-1,得出:ans=n/m+(2*n)/m+...((m-1)*n)/m=(n/m+(m-1)*n/m)+(2*n/m+(m-2)*n/m)+...=(n-1)*(m-1)/2

标准程序

 #include<iostream>
using namespace std;
int main()
{
int m,n;
while(cin>>m>>n)
{
cout<<m*n-m-n<<" "<<(m-)*(n-)/<<endl;
}
return ;
}

hdu 1792 A New Change Problem(互质数之间最大不能组合数和不能组合数的个数)的更多相关文章

  1. 数学--数论--HDU 1792 A New Change Problem (GCD+打表找规律)

    Problem Description Now given two kinds of coins A and B,which satisfy that GCD(A,B)=1.Here you can ...

  2. HDU 4974 A simple water problem(贪心)

    HDU 4974 A simple water problem pid=4974" target="_blank" style="">题目链接 ...

  3. HDU 5572 An Easy Physics Problem (计算几何+对称点模板)

    HDU 5572 An Easy Physics Problem (计算几何) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5572 Descripti ...

  4. HDU1792A New Change Problem(GCD规律推导)

    A New Change Problem Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  5. HDU 3861 The King’s Problem(强连通+二分图最小路径覆盖)

    HDU 3861 The King's Problem 题目链接 题意:给定一个有向图,求最少划分成几个部分满足以下条件 互相可达的点必须分到一个集合 一个对点(u, v)必须至少有u可达v或者v可达 ...

  6. 数学--数论--HDU1792A New Change Problem(GCD规律推导)

    A New Change Problem Problem Description Now given two kinds of coins A and B,which satisfy that GCD ...

  7. 题解报告:hdu 1032 The 3n + 1 problem(克拉兹问题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1032 Problem Description Problems in Computer Science ...

  8. HDU 5055 Bob and math problem(简单贪心)

    http://acm.hdu.edu.cn/showproblem.php?pid=5055 题目大意: 给你N位数,每位数是0~9之间.你把这N位数构成一个整数. 要求: 1.必须是奇数 2.整数的 ...

  9. hdu 5349 MZL's simple problem

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5349 MZL's simple problem Description A simple proble ...

随机推荐

  1. UI:单例的写法

    单例设计模式 参考 UIApplication sharedApplocation 详细解释 :参考 通讯录的helper 类的读取本地plist 文件的时候,使用的单例单例的要点有三个:一个类只能有 ...

  2. (转)理解POCO

    POCO的概念是从java的POJO借用而来,而两者的含义是一致的,不同的仅仅是使用的语言不一样.所以POCO的解释就是“Plain Old C# Object”. 从字面上翻译为“纯洁老式的C#对象 ...

  3. bzoj 2127 happiness【最小割+dinic】

    参考:https://www.cnblogs.com/chenyushuo/p/5144957.html 不得不说这个建图方法真是非常妙啊 假设S点选理,T点选文,a[i][j]为(i,j)选文收益, ...

  4. 洛谷 P4014 分配问题 【最小费用最大流+最大费用最大流】

    其实KM更快--但是这道题不卡,所以用了简单粗暴的费用流,建图非常简单,s向所有人连流量为1费用为0的边来限制流量,所有工作向t连流量为1费用为0的边,然后对应的人和工作连(i,j,1,cij),跑一 ...

  5. 【POJ - 1458】Common Subsequence(动态规划)

    Common Subsequence Descriptions: A subsequence of a given sequence is the given sequence with some e ...

  6. Phpstorm安装和优化

    Phpstorm是php开发一个强大的IDE,但是它不是免费的需要注册码,而且界面是英文界面,对英文不太好的人有点不友好.所以这篇文章主要从phpstorm的破解和汉化来优化phpstorm. 1.首 ...

  7. angular2+typescript在asp.net MVC Web项目上的实现

    网上现在还没有关于angular2+typescript在asp.net mvc web项目上的实现的系统介绍,这里我也只是探索到了一个简单的方式,还有很多问题没能解决.但是能有个好的开头也值得记录一 ...

  8. 【先定一个小目标】Ubuntu 16.04 搭建 zookeeper

    ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 Zo ...

  9. Eclipse快捷键集合

    ***eclipse查看哪个方法被调用:选中,右键选择Open call Hierarchy     选择要查看的方法: ctrl + alt + h       查看一个类被那些类继承或者实现: F ...

  10. windows系统下在忘记安装make的Cygwin中如何正确安装make(图文详解)

    由于我在安装cygwin时忘了包含make包,所以安装后发现我在bash中无法使用make命令.但是一般在cygwin下面的软件都是要用make来实现编译和安装的.没有make,又如何编译生成make ...