bzoj 1600: [Usaco2008 Oct]建造栅栏(DP)
1600: [Usaco2008 Oct]建造栅栏
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 1310 Solved: 810
[Submit][Status][Discuss]
Description
勤奋的Farmer John想要建造一个四面的栅栏来关住牛们。他有一块长为n(4<=n<=2500)的木板,他想把这块本板切成4块。这四块小木板可以是任何一个长度只要Farmer John能够把它们围成一个合理的四边形。他能够切出多少种不同的合理方案。注意: *只要大木板的切割点不同就当成是不同的方案(像全排列那样),不要担心另外的特殊情况,go ahead。 *栅栏的面积要大于0. *输出保证答案在longint范围内。 *整块木板都要用完。
Input
*第一行:一个数n
Output
*第一行:合理的方案总数
Sample Input
Sample Output
四条边能围成四边形的条件是:
任意三边的长度之和大于第四条边,也就是每条边的长度都必须小于周长的一半
dp[i][j]表示木块的前j米被分成i个部分的合法情况数(没有一个部分长度大于等于周长的一半)
递推很简单,只要注意边界,答案就是dp[4][n]
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define LL long long
LL dp[5][2555];
int main(void)
{int i, n, j, k, temp;while(scanf("%d", &n)!=EOF){memset(dp, 0, sizeof(dp));dp[0][0] = 1;for(i=1;i<=4;i++){for(j=i;j<=n;j++){temp = max(i-1, j-(n+1)/2+1);for(k=temp;k<=j-1;k++)dp[i][j] += dp[i-1][k];}}printf("%lld\n", dp[4][n]);}return 0;
}
bzoj 1600: [Usaco2008 Oct]建造栅栏(DP)相关推荐
- bzoj 1601: [Usaco2008 Oct]灌水(最小生成树)
1601: [Usaco2008 Oct]灌水 Time Limit: 5 Sec Memory Limit: 162 MB Submit: 1978 Solved: 1297 [Submit][ ...
- BZOJ 1603: [Usaco2008 Oct]打谷机
1603: [Usaco2008 Oct]打谷机 Description Farmer John有一个过时的打谷机(收割小麦),它需要带子来带动.发动机驱动轮1总是顺时针旋转的,用来带动转轮2,转轮2 ...
- bzoj 1603: [Usaco2008 Oct]打谷机(拆点并查集)
1603: [Usaco2008 Oct]打谷机 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 977 Solved: 749 [Submit][St ...
- bzoj 1602: [Usaco2008 Oct]牧场行走(暴力LCA)
1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 2011 Solved: 1058 [Submit] ...
- BZOJ 1599: [Usaco2008 Oct]笨重的石子( 枚举 )
直接枚举 ------------------------------------------------------------------------------- #include<cst ...
- BZOJ 1597: [Usaco2008 Mar]土地购买( dp + 斜率优化 )
既然每块都要买, 那么一块土地被另一块包含就可以不考虑. 先按长排序, 去掉不考虑的土地, 剩下的土地长x递增, 宽y递减 dp(v) = min{ dp(p)+xv*yp+1 } 假设dp(v)由i ...
- BZOJ 1601 [Usaco2008 Oct]灌水 (最小生成树)
题意 Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记.把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库. 建造一个水库需要 ...
- BZOJ 1602: [Usaco2008 Oct]牧场行走 倍增裸题
Description N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走, ...
- bzoj1601【Usaco2008 Oct】灌水
1601: [Usaco2008 Oct]灌水 Time Limit: 5 Sec Memory Limit: 162 MB Submit: 1589 Solved: 1035 [Submit][ ...
最新文章
- 女友问粉丝过万如何庆祝,我发万字长文《保姆级大数据入门篇》感恩粉丝们支持,学姐|学妹|学弟|小白看了就懂
- 精心分享7个让你意想不到的网站,大开眼界!
- JAVA中的多线程(一)
- 英雄无敌3版的仙剑奇侠传
- openresty开发系列1--网关API架构及选型
- 洛谷 P1886 滑动窗口
- linux网络编程之多路I/O转接服务器poll函数
- 拼多多回应驰伟插座起诉:积极应诉 希望其莫充当电商“二选一”插头
- 大学生计算机vfp,计算机vfp教学课件
- 银行转账和分布式事务(转)
- 生成对抗网络及其应用
- 微信支付宝扫码支付相关接口
- 2023款16英寸苹果MacBook Pro续航实测
- 苹果状态栏HTML,webview内嵌的html页面,在ios系统上12以上版本和12以下版本状态栏效果不一样...
- 推荐一个朋友 - 学历不好,非科班,不负光阴终进大厂
- qsort函数的使用
- 深度学习之卷积神经网络经典网络LeNet-5简介
- 爱情保卫战经典语录全集
- python把txt导入excel,python如何将txt文件导入Excel?
- 连续生产情况下 单向测径仪连续测量更优吗?
热门文章
- python发音1001python发音-怎样才能写出 Pythonic 的代码 #P1001#
- python怎么读取csv文件-python读写csv文件方法详细总结
- python和c先学哪个-C和Python我该先学什么?
- 微信AI开放接口介绍
- python插入排序_python简单的实现插入排序和二分插入排序
- 遍历矩阵每一行穷举_六十三---矩阵中的路径
- html ts 播放,vue文件拆分为html + ts + css
- Sublime Text3底部面板添加命令行(cmd)
- PowerDesigner导出SQL脚本运行注释出现乱码问题
- DIV+CSS布局总结