博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
URAL 1036 Lucky Tickets
阅读量:4948 次
发布时间:2019-06-11

本文共 1254 字,大约阅读时间需要 4 分钟。

URAL_1036

    用f[i][j]表示递推到第i位时数字和为j的方案数,最后用下乘法原理f[N][S/2]*f[N][S/2]就是最后结果。

    由于结果比较大,所以需要高精度。

import java.math.BigInteger;import java.util.Scanner;public class Main {    static int N, S;    static BigInteger[][] f = new BigInteger[60][510];    public static void main(String[] args) {        Scanner cin = new Scanner(System.in);        while(cin.hasNext())        {            N = cin.nextInt();            S = cin.nextInt();            if(S % 2 == 1)                System.out.println("0");            else                solve();        }    }    static void solve()    {        int i, j, k;        BigInteger sum;        S /= 2;        for(i = 1; i <= S; i ++)            f[0][i] = new BigInteger("0");        f[0][0] = new BigInteger("1");        for(i = 1; i <= N; i ++)        {            sum = new BigInteger("0");            k = 0;            for(j = 0; j <= S; j ++)            {                if(j - k > 9)                {                    sum = sum.add(f[i - 1][k].negate());                    ++ k;                }                sum = sum.add(f[i - 1][j]);                f[i][j] = sum;            }        }        System.out.println(f[N][S].multiply(f[N][S]));    }}

转载于:https://www.cnblogs.com/staginner/archive/2012/05/03/2481332.html

你可能感兴趣的文章
Setting up a Passive FTP Server in Windows Azure VM(ReplyCode: 227, Entering Passive Mode )
查看>>
Atitit mtp ptp rndis midi协议的不同区别
查看>>
Ajax辅助方法
查看>>
Python模块调用
查看>>
委托的调用
查看>>
c#中从string数组转换到int数组
查看>>
Scrapy入门程序点评
查看>>
DotNetty网络通信框架学习之源码分析
查看>>
8.1 Android Basic 数据存储 Preferences Structured(分组的Preferences)
查看>>
原因和证明
查看>>
VC6.0图像处理2--图像的反色
查看>>
Snoop, 对WPF程序有效的SPY++机制
查看>>
Does not contain a valid host;port authority解决方法
查看>>
JAVA程序猿怎么才干高速查找到学习资料?
查看>>
使用axel下载百度云文件
查看>>
Qt中图像的显示与基本操作
查看>>
详解软件工程之软件测试
查看>>
WCF(二) 使用配置文件实现WCF应用程序
查看>>
【CodeForces 803 C】Maximal GCD(GCD+思维)
查看>>
python 去掉换行符或者改为其他方式结尾的方法(end='')
查看>>