zoukankan      html  css  js  c++  java
  • poj 1737 Connected Graph

    1.....  f(n)=2^(n*(n-1)/2)-∑i=1,i<nc(n-1,i-1)*f(i)*2^((n-i)*(n-i-1)/2);   反向求结果会超时 哇哇大哭 浪费了一下午时间。

    以下是反向求的代码,希望大家看到后能给出一点宝贵的修改意见。

    2......正向的公式是f(n)=sum(f(k)*f(n-k)* c(n-2,k-1)*( 2^k-1) | 1<=k<n);反正已经写了一下午反向的程序了,正向的就很简单了。以后再写正向的答案吧。

    import java.math.BigInteger;
    import java.util.Scanner;
    
    
    public class Main {
    
        public static BigInteger[]f=new BigInteger[52];
        public static BigInteger[][]g=new BigInteger[52][52];
        public static BigInteger[][]cn=new BigInteger[52][52];
        
        public static void init() {
            for(int i=1;i<=50;++i) {
                f[i]=BigInteger.ONE;
                for(int j=1;j<=(i*(i-1)/2);++j) {
                    f[i]=f[i].multiply(BigInteger.valueOf(2));
                }
            }
            for(int i=0;i<=50;++i) {
                for(int j=0;j<=50;++j) {
                    g[i][j]=BigInteger.ONE;
                    g[i][j].add(g[i][j]);
                }
            }
            for(int i=0;i<=50;++i) {
                cn[i][0]=BigInteger.ONE;
                cn[i][i]=BigInteger.ONE;
                for(int j=0;j<i;++j) {
                    cn[i][j]=cn[i-1][j].add(cn[i-1][j-1]);
    //                for(int k=1;k<=((i-j)*(i-j-1)/2);++k) {
    //                    g[i][j]=g[i][j].multiply(BigInteger.valueOf(2));
    //                }
                    g[i][j]=g[i][j].pow((i-j)*(i-j-1)/2);
                }
            }
            for(int i=2;i<=50;++i) {
                for(int j=1;j<i;++j) {
                    f[i]=f[i].subtract(cn[i-1][j-1].multiply(f[j]).multiply(g[i][j]));
                }
            }
        }
        
        public static void main(String[] args) {
            init();
            int n = 0;
            Scanner s=new Scanner(System.in);
            while(s.hasNext())
            {
                if(n==0)
                    break;
                System.out.println(f[n]);
            }
        }
    }

    今天是runningtime error的一天!哇哇大哭!

  • 相关阅读:
    Numpy库
    使用Python的pandas-datareader包下载雅虎财经股价数据
    python引用库异常总结
    桌面常用快捷键
    第四章 数据的概括性度量
    第三章 数据的图表展示
    python连接MySql数据库
    如何利用scrapy新建爬虫项目
    幼儿教育
    PyMySQL和MySQLdb的区别
  • 原文地址:https://www.cnblogs.com/cattree/p/10305187.html
Copyright © 2011-2022 走看看