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解题报告------------------------------------------------------------------------------------------ ...
随机推荐
- graphql 数据增删改查分页及关联操作(三)
说明: 接第二篇文章,代码也是在第二篇文章之上 本文只是针对mondodb来操作 一.添加相关的包 yarn add Mongoose 二.初始化Mongodb 修改server.ts 导入 impo ...
- *389. Find the Difference (string + map(26)) read problems carefully
Given two strings s and t which consist of only lowercase letters. String t is generated by random s ...
- 【PHP 基础类库】Prototype 原型版教学文章!
前言 大家好我是:石不易,今天我为大家带来了PHP基础类库原型版的教学文章,至此本人的作品线已分为三大类,分别是:JavaScript前端框架(封装库).PHP模板引擎.以及PHP基础类库.该类库历时 ...
- 【转】Xcode真机测试could not find developer disk image解决方法
在使用Xcode进行真机调试的时候,有时根据真机的系统不同,会出现could not find developer disk image 错误,这是由于真机系统过高或者过低,Xcode中没有匹配的配置 ...
- P1909 买铅笔
题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起 见,P老师决定只买同一种包装的铅笔 ...
- Java中阻塞队列的使用
http://blog.csdn.net/qq_35101189/article/details/56008342 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如 ...
- GDB调试手册[转]
Linux 包含了一个叫gdb 的GNU 调试程序.gdb 是一个用来调试C和C++程序的强力调试器.它使你能在程序运行时观察程序的内部结构和内存的使用情况.以下是 gdb 所提供的一些功能:它使你能 ...
- Logback初始化失败问题排查(Web.xml中context-param配置详解)
监控部分反馈异常,生产系统日志文件竟然木有了(最后一次版本发布后,再也无日志文件生成). 问题排查步骤: 1. 检查logback配置文件 日志生成目录一切正常 应该服务器上磁盘空间未满.操作权限没有 ...
- scp 远程拷贝
scp拷贝时,可以从本地拷贝到远程,也可以远程拷贝到本地.唉,我记得之前是都用过的,但是现在完全忘了,今天同事写出来我才意识到自己之前用过的. 唉,这几年在新单位如果不好好积累一下理论上的东西,真的是 ...
- java面试题:已知一个数组[2,4,6,2,1,5],将该数组进行排序(降序,不能用工具类进行排序),创建两条线程交替输出排序后的数组,线程名自定义
package com.swift; import java.util.Arrays; import java.util.Comparator; public class ArrayThread_Te ...