zoukankan      html  css  js  c++  java
  • 类最大hdu 1792 A New Change Problem

    上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下类最大

        题意:给定A和B,A和B互质,求最大不能组合数,和不能组合数的个数。

    基础知识:
    Gcd(A, B) = 1 → Lcm(A, B) = AB
    残余类,把所数有整划分红m个等价类,个每等价类由互相同余的数整构成

    任何数分红m个残余类,分离为 mk,mk+1,mk+2,……,mk+(m-1)
    分离记为{0(mod m)},{1(mod m)}……
    而n的倍数定肯布分在这m个残余类中
    因为Gcd(m,n)=1,所以个每残余类中都有一些数是n的倍数,并且是平均分配它的干证,可见HDOJ 1222 Wolf and Rabbit
    设 kmin = min{ k | nk ∈ {i (mod m)} }, i ∈ [0, m)
    则 nkmin 是{i (mod m)}中n的最小倍数。特殊的,nm ∈ {0 (mod m)}
    nkmin 是个志标,它明表{i (mod m)}中nkmin 面后所数有,即nkmin + jm必定都能被组合出来
    那也说明最大不能组合数必定小于nkmin
    我们开始寻觅max{ nkmin }
    Lcm(m, n) = mn,所以很明显(m-1)n是最大的
    因为(m-1)n是nkmin 中的最大值,所以在剩下的m-1个残余类中,必定有比它小并且能被m和n组合,这些数就是(m-1)n -1,(m-1)n -2,……,(m-1)n -(m-1)
    所以最大不能被组合数就是(m-1)n -m

    如果m和n不互素,那{1 (mod m)}不能被m组合,一样也不能被n和m组合

    我们能求出各个残余类的nkmin以后,不能组合数的个数就是个每残余类中小于各自nkmin的数的个数总和。
    察观如下:
    M = 5,N = 3
    {0(mod 5)}:0,5,10,15……
    {1(mod 5)}:16,11,16……
    {2(mod 5)}:2,712,17……
    {3(mod 5)}:3,8,13,18……
    {4(mod 5)}:49,14,19……
    色红的就是不能组合数,可以看出在残余类中它的数目有律规
    Total = [0+1+2] + [0+1]
    因为m和n互质,必有一个不完全周期
    整顿后以,可得公式 Total = (n-1)*(m-1)/2

        每日一道理
    生活中受伤难免,失败跌倒并不可怕,可怕的是因此而一蹶不振,失去了对人生的追求与远大的理想。没有一个人的前进道路是平平稳稳的,就算是河中穿梭航行的船只也难免颠簸,生活中所遇上的坎坷磨难不是偶尔给予的为难,而是必然所经受的磨练。

         

         

         

         

         

         

    #include<stdio.h>
    int main()
    {
    	int i,j,n,m;
    	while(scanf("%d%d",&n,&m)!=-1)
    	{
    		i=n*m-n-m;
    		j=(m-1)*(n-1)/2;
    		printf("%d %d\n",i,j);
    	}
    	return 0;
    }

        
     

    文章结束给大家分享下程序员的一些笑话语录: 雅虎最擅长的不是开通新业务,是关闭旧业务。

  • 相关阅读:
    HTML(图像img、表格table、列表)
    HTML(标题h、段落p、文本格式化、链接a、头部head)
    List的复制 (浅拷贝与深拷贝)
    最新CentOS6.5安装Docker, 使用阿里云源下载(亲测)
    VirtualBox安装CentOS6.5
    P1010 幂次方 题解
    P1469 找筷子 题解
    P1866 编号 题解
    EasyNVR通道离线但视频流可正常播放是什么原因导致的?
    EasyNVR通过国标GB28181协议级联出现报错及播放不了的问题调整
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3063509.html
Copyright © 2011-2022 走看看