ZJNU 2345 - 小Y的方格纸

明显,总共有n*m格,已经涂了k格

所以剩下n*m-k格

如果n*m-k<=k,即k已经占用了大于等于一半的格子,显然答案为0

否则

剩下的格子中取k+1,k+2...n*m-k格均可

取组合数求解,所以答案为

ZJNU 2345 - 小Y的方格纸

 

 

但因为组合数下标太大

可以处理杨辉三角(推荐)

或者处理因子

或者使用Python或者Java等等

下面列出Java大数程序参考

 1 import java.util.Scanner;
 2 import java.math.BigInteger;
 3 public class Main{
 4     static BigInteger getC(int u,int d){
 5         if(u>d)
 6             return BigInteger.ZERO;
 7         if(u>d-u)
 8             u=d-u;
 9         BigInteger ans=BigInteger.ONE;
10         for(int i=1;i<=u;i++)
11             ans=ans.multiply(new BigInteger(String.valueOf(d-i+1))).divide(new BigInteger(String.valueOf(i)));
12         return ans;
13     }
14     public static void main(String[] args){
15         Scanner in=new Scanner(System.in);
16         BigInteger ans=BigInteger.ZERO;
17         int n=in.nextInt(),m=in.nextInt(),k=in.nextInt(),ls;
18         ls=n*m-k;
19         for(int i=k+1;i<=ls;i++)
20             ans=ans.add(getC(i,ls)).remainder(new BigInteger("111111"));
21         System.out.println(ans);
22     }
23 }

 

上一篇:012String类+System类+Date类+SimpleDateFromat类+Calendar类+Math类+BigInteger类与BigDecimal类


下一篇:数组(续)