bzoj1750 [Usaco2005 qua]Apple Catching
Description
Input
Output
Sample Input
2
1
1
2
2
1
1
INPUT DETAILS:
Seven apples fall - one from tree 2, then two in a row from tree 1, then
two in a row from tree 2, then two in a row from tree 1. Bessie is
willing to walk from one tree to the other twice.
Sample Output
6
OUTPUT DETAILS:
Bessie can catch six apples by staying under tree 1 until the first two
have dropped, then moving to tree 2 for the next two, then returning back
to tree 1 for the final two.
题意是一个人站在树下接苹果,树只有两棵,每一个时刻只有一棵树有苹果掉下来,但是人只能从一棵树移到另一棵树最多m次,求最多能接多少个苹果
dp太水了,f[i][j][0 / 1]表示第i时刻已经移动了j次,当前在第1 / 2棵树下的方案,然后转移自己yy一下吧。或者直接看代码
#include<cstdio>
inline int max(int a,int b)
{return a>b?a:b;}
inline int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int n,m,mx;
int f[1001][1001][2];//ǰ i ¸ö¡¢Òƶ¯ j ²½¡¢µ±Ç°Î»ÖÃÊÇ1/2
int a[1001][2];
int main()
{
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++)
{
int x=read();
a[i][x-1]=1;
}
for (int i=1;i<=n;i++)
{
f[i][0][0]=f[i-1][0][0]+a[i][0];
f[i][0][1]=f[i-1][0][1]+a[i][1];
for (int j=1;j<=m;j++)
{
f[i][j][0]=max(f[i-1][j-1][1],f[i-1][j][0])+a[i][0];
f[i][j][1]=max(f[i-1][j-1][0],f[i-1][j][1])+a[i][1];
mx=max(mx,f[i][j][0]);
mx=max(mx,f[i][j][1]);
}
}
printf("%d\n",mx);
}
然后我再想了下,好像我们把相邻的相同的数字缩成一个数,用缩掉的数字的个数表示,然后求长度为m+1的最大子串和
比如样例:
7 2
2|1 1|2 2|1 1缩成1 2 2 2
然后显然答案是2 2 2即6
但是有反例
7 2
1 2 1 2 1 2 2
答案是5,这样做是4
我想不用多解释了吧
所以还是老老实实dp吧
bzoj1750 [Usaco2005 qua]Apple Catching的更多相关文章
- bzoj3384[Usaco2004 Nov]Apple Catching 接苹果*&&bzoj1750[Usaco2005 qua]Apple Catching*
bzoj3384[Usaco2004 Nov]Apple Catching 接苹果 bzoj1750[Usaco2005 qua]Apple Catching 题意: 两棵树,每分钟会从其中一棵树上掉 ...
- BZOJ1754: [Usaco2005 qua]Bull Math
1754: [Usaco2005 qua]Bull Math Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 374 Solved: 227[Submit ...
- bzoj1751 [Usaco2005 qua]Lake Counting
1751: [Usaco2005 qua]Lake Counting Time Limit: 5 Sec Memory Limit: 64 MB Submit: 168 Solved: 130 [ ...
- Apple Catching(POJ 2385)
Apple Catching Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9978 Accepted: 4839 De ...
- Apple Catching(dp)
Apple Catching Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9831 Accepted: 4779 De ...
- BZOJ 3384: [Usaco2004 Nov]Apple Catching 接苹果( dp )
dp dp( x , k ) = max( dp( x - 1 , k - 1 ) + *** , dp( x - 1 , k ) + *** ) *** = 0 or 1 ,根据情况 (BZOJ 1 ...
- 1755: [Usaco2005 qua]Bank Interest
1755: [Usaco2005 qua]Bank Interest Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 187 Solved: 162[Su ...
- 1753: [Usaco2005 qua]Who's in the Middle
1753: [Usaco2005 qua]Who's in the Middle Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 290 Solved: ...
- 3384/1750: [Usaco2004 Nov]Apple Catching 接苹果
3384/1750: [Usaco2004 Nov]Apple Catching 接苹果 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 18 Solv ...
随机推荐
- USACO5.4-Character Recognition
题目大意是字符串识别一道细节很繁琐的DP,要用到很多数组一开始还真看不出是DP,后来参考了别人的代码,然后又按自己的思路重头到尾写了,虽然速度不咋的 Executing... Test 1: TEST ...
- Enum Types
参考Java的官方tutorial和Doc整理如下. What is Enum An enum type is a special data type. It enables for a variab ...
- linux内存管理--伙伴系统和内存分配器
3.1页框的管理 所有的页框描述符都存放在mem_map数组中. 3.1.1page数据结构 struct page { page_flags_t flags; //标志 atomic_t _coun ...
- InsertSort 插入排序
插入排序:将下一个插入已排好的序列中 自己觉得演示的号的一个文章地址 http://sjjg.js.zwu.edu.cn/SFXX/sf1/zjcr.html 下面是java的实现代码: //Inse ...
- hdu 5424 Rikka with Graph II(dfs+哈密顿路径)
Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so h ...
- 解决IE6下DIV无法实现1px高度问题
2.多加一个line-height:1px的属性,不过得在DIV里多加一个 ,也就是空格,以下为引用的内容: <styletypestyletype="text/css"&g ...
- FileUtil.java
package com.founder.util.file; import java.io.BufferedReader; import java.io.File; import java.io.Fi ...
- DDMS files not found: tools\hprof-conv.exe
最近在Eclipse下每次更新ADT和SDK后都报一些错误,比如 DDMS files not found: D:\android-sdk-windows-1.6_r1\android-sdk-win ...
- HDU 4760 Good FireWall 完好Trie题解
本题乍看像是线段树之类的区间操作,只是由于仅仅是须要查找ip的前缀,故此事实上是使用Trie来做. 挺高难度的Trie应用,做完这道题之后说明Trie功力有一定火候了. 这里的Trie使用到了Dele ...
- Hacker(21)----密码攻防之加密与解密基础
密码对于用户而言并不陌生,它是一种用于保护重要信息和文件的工具,只有输入正确的密码才可查看文件和信息的具体内容.黑客为了获取这些信息,会采用各种方式来破解密码,因此用户不仅需要了解黑客破解密码的常用方 ...