首页 > 代码库 > 【Java】【高精度】【递推】UVA - 11375 - Matches
【Java】【高精度】【递推】UVA - 11375 - Matches
d[i+c[j]]+=d[i](c[j]是拼成j所需的火柴数)
d[0]=1;
别忘了不能有前导零,所以当i为零时,不要尝试去拼成零。反而应该在n>=6时,最后给答案加1(单独拼出0)。
import java.util.*; import java.io.*; import java.math.*; public class Main{ static BigInteger[] d=new BigInteger[2010]; static int[] c=new int[]{6,2,5,5,4,5,6,3,7,6}; public static void main(String[] argc){ Scanner sc = new Scanner (new BufferedInputStream(System.in)); while(sc.hasNext()){ Arrays.fill(d,BigInteger.ZERO); int n=sc.nextInt(); d[0]=BigInteger.ONE; for(int i=0;i<=n;++i){ for(int j=0;j<10;++j){ if((i!=0 || j!=0) && i+c[j]<=n){ d[i+c[j]]=d[i+c[j]].add(d[i]); } } } BigInteger ans=BigInteger.ZERO; for(int i=1;i<=n;++i){ ans=ans.add(d[i]); } if(n>=6){ ans=ans.add(BigInteger.ONE); } System.out.println(ans); } sc.close(); } }
【Java】【高精度】【递推】UVA - 11375 - Matches
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。