USACO Section2.3 Cow Pedigrees 解题报告 【icedream61】
nocows解题报告
------------------------------------------------------------------------------------------------------------------------------------------------
【题目】
给你N个点,生成一棵K层的树,有s种情况。请输出s%9901的值。
要求很简单,每个点只能有0个或2个孩子。
【数据范围】
3<=N<200
1<K<100
【输入格式】
N K
【输入样例】
5 3
【输出样例】
2
------------------------------------------------------------------------------------------------------------------------------------------------
【分析】
简单的DP。
因为数据很小,所以直接递推就好了,也不需要任何优化。
可以计算,总的时间大概是这样:
for n = 3, 5, 7, .. , N
for k = 1 ~ (n+1)/2
这些情况,计算每种情况的时间是:
n/2 * k*2 = n * k
因此,结果就是这样的:
Time = ∑n*k (n = 3,5,..,199; k = 1~(n+1)/2)
大家可以自行计算一下(我有些忘了怎么算了-.-),但显然可以估算,结果明显是远小于1s的。
------------------------------------------------------------------------------------------------------------------------------------------------
【总结】
这题挺简单的,因为数据范围小,别让它的模型吓到就好。
------------------------------------------------------------------------------------------------------------------------------------------------
【代码】
/*
ID: icedrea1
PROB: nocows
LANG: C++
*/ #include <iostream>
#include <fstream>
using namespace std; const int maxn = +;
const int maxk = +; int d[maxn][maxk]; inline int add(int &s,int x) { return s=(s+x)%; } void calculate(int n,int k)
{
int s=;
for(int i=n-;i>=;i-=)
{
int j=n--i; //cout<<"i,j = "<<i<<" "<<j<<endl;
for(int t=;t<=k-;++t) add(s,d[i][k-]*d[j][t]);
for(int t=;t<=k-;++t) add(s,d[i][t]*d[j][k-]);
add(s,-d[i][k-]*d[j][k-]);
}
d[n][k]=add(s,); //cout<<"d["<<n<<"]["<<k<<"]="<<s<<endl;
} int main()
{
ifstream in("nocows.in");
ofstream out("nocows.out"); int N,K;
in>>N>>K; d[][]=;
for(int n=;n<=N;n+=)
for(int k=;k<=((n+)>>);++k) calculate(n,k); out<<d[N][K]<<endl; in.close();
out.close();
return ;
}
USACO Section2.3 Cow Pedigrees 解题报告 【icedream61】的更多相关文章
- USACO Section2.1 The Castle 解题报告
castle解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section2.1 Ordered Fractions 解题报告
frac1解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...
- USACO Section2.1 Healthy Holsteins 解题报告 【icedream61】
holstein解题报告 --------------------------------------------------------------------------------------- ...
- USACO Section2.2 Preface Numbering 解题报告 【icedream61】
preface解题报告----------------------------------------------------------------------------------------- ...
- USACO Section2.1 Hamming Codes 解题报告 【icedream61】
hamming解题报告----------------------------------------------------------------------------------------- ...
- USACO Section2.3 Controlling Companies 解题报告 【icedream61】
concom解题报告------------------------------------------------------------------------------------------ ...
- USACO Section2.3 Money Systems 解题报告 【icedream61】
money解题报告------------------------------------------------------------------------------------------- ...
- USACO Section2.3 Zero Sum 解题报告 【icedream61】
zerosum解题报告----------------------------------------------------------------------------------------- ...
- USACO Section2.3 Longest Prefix 解题报告 【icedream61】
prefix解题报告------------------------------------------------------------------------------------------ ...
随机推荐
- April 25 2017 Week 17 Tuesday
Have you ever known the theory of chocie? There are a bunch of axiems, but there are only two thing ...
- 332. Reconstruct Itinerary (leetcode)
1. build the graph and then dfs -- graph <String, List<String>>, (the value is sorted a ...
- 快算24点,POJ(3983)
题目链接:http://poj.org/problem?id=3983 中文题,就不解释题意了. 类似之前的一篇博客,这里也不上解释了,直接上代码吧. #include <iostream> ...
- webpack-dev-middleware插件的使用
我们在使用webpack 编译文件时,每次改动文件都要去重新编译,是不是很麻烦,这时候我们就用到了webpack-dev-middleware 插件,该插件对更改的文件进行监控,编译, 一般和 web ...
- putty乱码问题
1.将linux系统编码设置为utf-8 #vi /etc/sysconfig/i18n #设置为如下内容: LANG="en_US.UTF-8" SYSFONT="la ...
- SQL之Case when 语句
--case简单函数 (把多列变成单列) ' then '女' when ' then '男' else '其他' end from [Northwind].[dbo].[Users] --case搜 ...
- 易语言调用C++写的DLL
直接调用会弹出堆栈错误的信息,原因是VS默认是__cdcel方式,而易语言是__stdcall,所以调用约定不一致导致堆栈错误. 解决方案很简单,易语言声明DLL函数时“在库中对应命令名”函数名前加一 ...
- Java分享笔记:FileOutputStream流的write方法
/*------------------------ FileOutputStream: ....//输出流,字节流 ....//write(byte[] b)方法: 将b.length个字节从指定字 ...
- 6-1 md5加密
1.导入hashlib模块,使用它的md5方法进行加密 import hashlib # import md5 python2 s = 'admin123' # .将字符串类型转换成byte类型才能加 ...
- 将 cmd 中命令输出内容保存为 TXT 文本文件
如果执行的命令输出内容较多,那么 cmd 控制台将会自动清除前面的内容,那么如何将屏幕的所有内容导出到文本文件? 下面给出简单的演示例子 ping百度,不会自动结束,按 Ctrl+C 强制结束,pin ...