题目链接 题目给了你一个奇怪的图,让你求它的生成树个数. 开始写了一个矩阵树: #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<vector> #include<algorithm> #include<queue> #include<bitset> #include<cmath> #de…
题目分析: 推基尔霍夫矩阵后可以发现递推式 代码: n = input() f0 = 1 f1 = 5 f3 = 0 if n == 1: print f0 elif n == 2: print f1 else: for i in range(n-2): f3 = 3*f1-f0+2 f0 = f1 f1 = f3 print f1…
轮状病毒 bzoj-1002 FJOI-2007 Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图所示 N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不同的3轮状病毒,如下图所示 现给定n(N<=100),编程计算有多少个不同的n轮状病毒 Input 第一行有1个正整数n Output 计算出的…
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1002 )*&*(^&*^&*^**()*) 1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 4060  Solved: 2239[Submit][Status][Discuss] Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不…
题目大意:轮状病毒基定义如图.求有多少n轮状病毒 这个递推实在是不会--所以我选择了打表找规律 首先执行下面程序 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define M 110 using namespace std; struct abcd{ int to,next; bool ban; }table[M<<2]; int head[…
1002: [FJOI2007]轮状病毒 Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同的n轮状病毒数输出 Sample Input 3 Sample Output 16   分析:开始想用排列搞搞..发现里面判断边的端点是否重合才能得到几个外围的边的顶点个数..发现很无力: 一部分题解说要使用生成树计数-Matrix-tree定理: 详见:周冬<生成树的计数及其应用> 得到Kirc…
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3543 Solved: 1953 [Submit][Status][Discuss] Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同的n轮状病毒数输出 Sample Input 3 Sample Output 16 HINT 基尔霍夫矩阵Matrix-Tr…
题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的找到循环节然后求第n项. 我们只用记录下两个连续的数字重复出现,就找到了循环节,然后就简单了. 注意:MOD函数是用于返回两数相除的余数,返回结果的符号与除数(divisor)的符号相同.(来自百度百科) ,mod结果正负所以要与7正负相同. 代码(详细注释): #include <bits\stdc+…
题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace std; ],zhu[],t[]; struct student { int s; int number; ]; }f[][]; int main() { std::ios::sync_with_stdio(false); int m,v,n;//m总重量,v总阻力,n物品数 cin>>m>…
P2144 [FJOI2007]轮状病毒 题目描述 轮状病毒有很多变种.许多轮状病毒都是由一个轮状基产生.一个\(n\)轮状基由圆环上\(n\)个不同的基原子和圆心的一个核原子构成.\(2\)个原子之间的边表示这\(2\)个原子之间的信息通道,如图\(1\). \(n\)轮状病毒的产生规律是在\(n\)轮状基中删除若干边,使各原子之间有唯一一条信息通道.例如,共有\(16\)个不同的\(3\)轮状病毒,如图\(2\)所示. 给定\(n(n\le100)\),编程计算有多少个不同的\(n\)轮状病…