poj 1737 Connected Graph
// poj 1737 Connected Graph
//
// 题目大意:
//
// 带标号的连通分量计数
//
// 解题思路:
//
// 设f(n)为连通图的数量,g(n)为非连通图的数量,h(n)为所有的
// 图的数量,h(n) = 2 ^(n * (n - 1) / 2);
// f(n) + g[n] = h(n).
//
// 考虑标号为1在哪个连通分量内,设连通分量内有k个点,则问题为
// 在n-1个点中选择k-1个点的方法数 C(n-1,k-1),此时1所在的连通图数
// 为f(k),另一部分为n-k个点的图的所有数量,因为此时已经设了1所在
// 的连通图和剩余部分已经是不连通了,则
// g(n) = sigma(C(n-1,k-1)*f(k)*h(n-k)){ 1<= k <= n-1}
// f[n] = h[n] - g[n]; import java.util.*;
import java.io.*;
import java.math.BigInteger; class Main{
public static void main(String[] args){
final int MAX_N = ; BigInteger[][] C = new BigInteger[MAX_N][MAX_N]; BigInteger[] f = new BigInteger[MAX_N];
BigInteger[] g = new BigInteger[MAX_N];
BigInteger[] h = new BigInteger[MAX_N]; C[][] = new BigInteger(""); for (int i=;i<MAX_N;i++){ C[i][] = C[i][i] = new BigInteger(""); for (int j=;j<i;j++){
C[i][j] = new BigInteger("");
C[i][j] = C[i][j].add(C[i-][j]);
C[i][j] = C[i][j].add(C[i-][j-]);
}
} for (int i=;i<MAX_N;i++){
h[i] = new BigInteger("");
h[i] = h[i].pow(i*(i-)/);
}
f[] = h[] = new BigInteger("");
for (int i=;i<MAX_N;i++){
g[i] = new BigInteger(""); for (int j=;j<i;j++){
g[i] = g[i].add(C[i-][j-].multiply(f[j].multiply(h[i-j])));
}
f[i] = h[i].subtract(g[i]);
} Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){ int x = sc.nextInt();
if (x==)
break;
System.out.println(f[x]);
} }
}
poj 1737 Connected Graph的更多相关文章
- POJ 1737 Connected Graph 题解(未完成)
Connected Graph Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3156 Accepted: 1533 D ...
- POJ 1737 Connected Graph (大数+递推)
题目链接: http://poj.org/problem?id=1737 题意: 求 \(n\) 个点的无向简单(无重边无自环)连通图的个数.\((n<=50)\) 题解: 这题你甚至能OEIS ...
- POJ 1737 Connected Graph(高精度+DP递推)
题面 \(solution:\) 首先做个推销:带负数的压位高精度(加减乘+读写) 然后:由 \(N\) 个节点组成的无向图的总数为: \(2^{N*(N-1)/2}\) (也就是说这个图总共有 \( ...
- POJ1737 Connected Graph
Connected Graph Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3156 Accepted: 1533 D ...
- Connected Graph
Connected Graph 求n个点的无向联通图数量,\(n\leq 50\). 解 直接无向联通图做状态等于是以边点做考虑,难以去重,考虑联通对立面即不联通. 不难求出n个点的总方案数为\(2^ ...
- 【poj1737】 Connected Graph
http://poj.org/problem?id=1737 (题目链接) 题意 求n个节点的无向连通图的方案数,不取模w(゚Д゚)w Solution 刚开始想了个第二类斯特林数,然而并不知道怎么求 ...
- poj 3334 Connected Gheeves (Geometry + BInary Search)
3334 -- Connected Gheeves 题意是,给出两个尖形的相连的容器,要求向其中灌水.它们具有日常的物理属性,例如两个容器中水平面高度相同以及水高于容器顶部的时候就会溢出.开始的时候打 ...
- poj 1737男人八题之一 orz ltc
这是楼教主的男人八题之一.很高兴我能做八分之一的男人了. 题目大意:求有n个顶点的连通图有多少个. 解法: 1. 用总数减去不联通的图(网上说可以,我觉得时间悬) 2. 用动态规划(数学递推) ...
- POJ 1737 统计有n个顶点的连通图有多少个 (带标号)
设f(n)为所求答案 g(n)为n个顶点的非联通图 则f(n) + g(n) = h(n) = 2^(n * (n - 1) / 2) 其中h(n)是n个顶点的联图的个数 这样计算 先考虑1所在的连通 ...
随机推荐
- apache目录浏览
DocumentRoot "/Library/WebServer/Documents" <Directory "/Library/WebServer/Documen ...
- 获取项目中文件,存放到Debug中。
说起这个,还真是费了一般功夫. 说个最简单的方法: 第一步:把需要生成到Debug中的文件放到项目中(注意:当前文件夹目录是什么样的,存放到Debug中也是什么样) 第二部:设置文件属性中 复制到输出 ...
- Libcurl多线程crash问题(cento)
cento :http://blog.csdn.net/delphiwcdj/article/details/18284429 1 问题背景 后台系统有一个单线程的http接口,为了提高并发处理能力, ...
- 利用Service bus中的queue中转消息
有需求就有对策就有市场. 由于公司global的policy,导致对公司外发邮件的service必须要绑定到固定的ip地址,所以别的程序需要调用发邮件程序时,问题就来了,如何在azure上跨servi ...
- Eclipse创建Maven时提示错误could not resolve archetype
今天用Eclipse创建Maven多模块项目的时候提示错误: could not resolve archetype ******release from any of the configured ...
- 大话 JSON 之 JSONObject.getString(“”) 方法 和 JSONObject.optString(“”) 的区别
运行以下代码: public static void main(String[] args) { JSONObject test = new JSONObject(); test.put(" ...
- oracle启动脚本 .
.#!/bin/bash set -x su -oracle >>EON lsnrctl start sqlplus /nolog >>EOF conn / as sy ...
- kendoui treeview grid spreadsheet
treeview 傻子方式获取id <!DOCTYPE html> <html> <head> <title>API</title> < ...
- Android程序crash处理
Android程序crash处理 时间 2014-11-24 13:45:37 CSDN博客 原文 http://blog.csdn.net/allen315410/article/details ...
- ABAP 动态内表添加单元格颜色字段
*动态内表alv显示时要求某些单元格显示颜色 *wa_fldcat-datatype不能添加LVC_T_SCOL类型,在创建好内表之后,再添加颜色列. DATA: wa_fldcat TYPE lvc ...