Mooo Moo(dp)
来源:互联网 发布:c语言进制转换函数 编辑:程序博客网 时间:2024/05/22 17:33
题意:
FJ 已经完全忘记了他有多少头奶牛!但是,跑到他的草场里数奶牛是一件很尴尬的事情,因为他不想让奶牛们知道他记忆有问题。作为替代,他决定秘密地把麦克风种在奶牛们通常聚集的草场里,然后只要从他听到的哞哞声音量中确定奶牛的数目即可。
FJ 的N 块草场(1 <= N <= 100)沿着一条笔直的路排成了一排。每块草场里可能有若干种不同的奶牛;FJ 的奶牛总共有B 种不同的种类(1 <= B <= 20),并且种类i 的一头奶牛叫起来的音量为V (i)(1 <= V (i) <= 100)。再者,沿着道路有一股强悍的风在吹,将哞哞叫的声音从路的左边传到右边:如果在某草场哞哞叫声音量为X,那么在下一个草场里会听到上边X -1 音量的叫声(并且在再下一个草场是X -2,等等)。更正式地说,一个草场的哞哞叫总音量为这个草场里奶牛哞哞的音量之和,加上X -1,这里X 是上一个草场的哞哞叫总音量。
给定FJ 从每个草场里记录的哞哞音量,请帮助他计算出他所拥有的奶牛的可能的最少数量。
任何一个草地上记录的音量值不超过100,000
思路:
设一个f,f[i]有i的声音的最少奶牛数。
f[i]=max(f[i-a[j]]+1)
源程序:
const maxn=1000000;var i,j,n,m,x,y:longint; ans:int64; f,a:array [0..maxn] of longint;function max(x,y:longint):longint;begin if x<y then exit(y) else exit(x);end;function min(x,y:longint):longint;begin if x<y then exit(x) else exit(y);end;begin readln(n,m); for i:=1 to m do readln(a[i]); fillchar(f,sizeof(f),$7f); f[0]:=0; for i:=1 to 100000 do for j:=1 to m do if a[j]<=i then f[i]:=min(f[i],f[i-a[j]]+1); for i:=1 to n do begin readln(x); ans:=ans+f[x-y]; y:=max(0,x-1); end; writeln(ans);end.
0 0
- Mooo Moo(dp)
- 洛谷2214 哞哞哞Mooo Moo dp
- USACO2014MarchSilver Mooo Moo
- Mooo Moo题解
- jzoj 3812 Mooo Moo
- 高中OJ3812. 【USACO2014 3月】Mooo Moo
- POJ 2231 Moo Volume(dp)
- Mooo
- 2017.1.14【初中部 GDKOI】模拟赛B组 Mooo Moo 题解
- 2017.1.14【初中部 GDKOI】模拟赛B组 Mooo Moo 题解
- bzoj1657 Mooo(单调栈)
- POJ2231 Moo Volume [简单dp]
- 简单dp-poj-2231-Moo Volume
- [BZOJ1657][Usaco2006 Mar]Mooo 奶牛的歌声(单调栈)
- [BZOJ1657][Usaco2006 Mar]Mooo 奶牛的歌声(单调栈)
- [bzoj1657][Usaco2006 Mar]Mooo 奶牛的歌声(单调栈)
- TOJ 1611 Moo University - Financial Aid -- 线段树 + DP
- 【poj 2010】Moo University - Financial Aid 预处理dp
- 【jzoj3853】【帮助Bsny】【状态压缩动态规划】
- Android使用adb命令修改密度
- 画画不好的人手残患者有救了!
- 【JS】从零开始编一个JS游戏(2)
- java虚拟机jvm
- Mooo Moo(dp)
- TextView使用SpannableString设置复合文本
- 【WC模拟】Monument
- 高中OJ3811. 【USACO2014 3月】The Lazy Cow
- C语言中的结构体------>C语言的实体
- 有关面试的一些文章
- Paint the Grid Again ZOJ - 3780
- AngularJS1.6版本中ui-router路由中/#!/的解决方法
- Python爬虫错误记录