Vijos P1501 笨笨的果实采摘
笨笨的果实采摘
描述
笨笨在小山顶上种了一棵果树,秋天了,果树结出了许多许多的果子,笨笨要去摘果子。
这是一棵可以结出3种不同果实的树,它的果实长在树枝的分叉处和树顶上。
果实分3种:普通果实、奇异果实和稀有果实。
这颗树的第一个分叉可以用一个2进制码表示(也就是许多的“1”和“0”),
而第一个分叉又分成2个分叉,分别用第一个分叉的前半段和后半段表示(从中间分开),
其他分叉也如此。分叉分到最后只剩下“1”或“0”时就成了树顶。
每个分叉只能分成2个分叉。
表示这棵树第一个分叉的2进制码必定是2的乘方位。
例如:
1 0 1 0
\ / \ /
10 10
\ /
1010
这就是一棵笨笨种的树。
三种果实的分辨方式为:
普通果实:既有“1”又有“0”;
奇异果实:只有“1”;
稀有果实:只有“0”。
每种果实的价值不同,普通果实1元,奇异果实2元,稀有果实5元。
笨笨能摘到的果实范围是一定的,他想知道他所能摘到果实的总价值。
像刚刚所示的“1010”树,它有3个普通果实,2个奇异果实和2个稀有果实,
若笨笨能摘到最高2,最低0,那么他就能得到所有的果实,果实的总价值为3*1+2*2+5*2=17元。
格式
输入格式
第一行一个数n,表示这个2进制码的位数是2的多少次乘方(即长度为2^n,0<=n<=15)。
第二行2个数u,d,表示笨笨可以摘到的最大高度和最小高度(0<=d<=u<=100000)。
第三行为表示第一个分叉的位数为2^n位的2进制数。
输出格式
一个数,笨笨所能摘到果子的最大总价值。
样例1
样例输入1[复制]
3
3 0
10001011
样例输出1[复制]
40
限制
时限1s。
提示
第一个分叉的高度为0,后面的依次递增,每层加1。
样例解释:可以有4层共15个分叉(包括树顶),
5个普通果实,5个奇异果实,5个稀有果实。
5*1+5*2+5*5=40
来源
笨笨原创。
附
第0层指的是叶子,第n层指的是根
分析
该题只是一个简单的递归即可完成。
代码如下
program p1501;
var n,u,d:longint;str1:ansistring;cost:qword;
procedure division(n,step:longint;str1:ansistring);
beginif (step>=d)and(n>=0)thenbeginif step<=uthenbeginif pos('0',str1)=0thenbegincost:=cost+2;endelsebeginif pos('1',str1)=0thenbegincost:=cost+5;endelsebegincost:=cost+1;end;end;end;if n>0 thenbegindivision(n-1,step-1,copy(str1,1,(1<<(n-1))));division(n-1,step-1,copy(str1,(1<<(n-1))+1,(1<<(n-1))));end;end;
end;beginreadln(n);readln(u,d);readln(str1);division(n,n,str1);write(cost);
end.
评测结果
测试数据 #0: Accepted, time = 1 ms, mem = 1200 KiB, score = 10
测试数据 #1: Accepted, time = 2 ms, mem = 1200 KiB, score = 10
测试数据 #2: Accepted, time = 0 ms, mem = 796 KiB, score = 10
测试数据 #3: Accepted, time = 1 ms, mem = 800 KiB, score = 10
测试数据 #4: Accepted, time = 2 ms, mem = 796 KiB, score = 10
测试数据 #5: Accepted, time = 1 ms, mem = 1164 KiB, score = 10
测试数据 #6: Accepted, time = 1 ms, mem = 796 KiB, score = 10
测试数据 #7: Accepted, time = 4 ms, mem = 1092 KiB, score = 10
测试数据 #8: Accepted, time = 15 ms, mem = 1056 KiB, score = 10
测试数据 #9: Accepted, time = 15 ms, mem = 1060 KiB, score = 10
Accepted, time = 42 ms, mem = 1200 KiB, score = 100
呃呃,最近没啥好说的了。。。
Vijos P1501 笨笨的果实采摘相关推荐
- Vijos P1571 笨笨的导弹攻击【最长上升子序列+DP】
背景 在那遥远的地方,有个小目标-- 笨笨:导弹准备! 路人甲:(这么小个目标都要欺负--)老大,导弹只有一部分可以用-- 笨笨:不管那么多,有多少就打多少! 描述 为了彻底打击目标,笨笨要使用足够多 ...
- 笨笨工作室告别十月模拟赛
笨笨工作室告别十月模拟赛 为了大家适应今年复赛电子版题目特意整理了一份电子版题目: /Files/hhdllhflower/笨笨工作室告别十月模拟赛.rar Chess Background 笨笨:& ...
- 原创:纯手工打造CSS像素画--笨笨熊系列图标
纯手工打造CSS像素画--笨笨熊系列图标 作者:冰极峰 转载请注明出处 在cssplay网站看到有一组CSS像素画,于是也想摩仿一下,于是在网络上找到一组头像图标,看其结构比较简单,就拿它开刀吧!先看 ...
- vmware nat模式网络不通_笨笨狗教你如何解决VMware虚拟机桥接网络不通问题?
笨笨狗教你如何解决VMware虚拟机桥接网络不通问题? 背景介绍 在我们日常使用Kali Linux时,有时候我们将虚拟机网络连接方式设置为桥接后发现虚拟机Kali Linux无法ping通网络,或者 ...
- 笨笨图片批量下载器 V0.3 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程] new...
前言 从[笨笨图片批量抓取下载 V0.2 beta]到[笨笨图片批量下载器 V0.3 beta]时间将近2个月,不是说这个升级版本开发了这么久,实在是懒,呵呵: )再加有时候工作忙.学习,多的时间就不 ...
- 木老师教笨笨课堂——系列讲座(从函数指针到委托) 四、C#的委托
四.C#的委托 ".Net以委托的形式实现了函数指针的概念."--<C#高级编程(第四版)> 现在看这句话,可能笨笨同学就有感觉了. 看书可能就是这样,想当初天山童姥的 ...
- jquery开发的”天才笨笨碰“游戏
前段时间湖南卫视的快乐大本营里有一款"天才笨笨碰"游戏非常火.这款游戏主要是考选手的声母联想词语的能力. 小篇在看完这个节目后用jquery制作了"天才笨笨碰" ...
- 笨笨图片批量下载器[C# | WinForm | 正则表达式 | HttpWebRequest]
截图 源代码: /Files/over140/ImagesBatchDownloading.rar 欢迎大家多多指教,可以考虑加入多线程和异步获取数据,并且正则表达式有待改善:) 请 ...
- 笨笨图片批量抓取下载 V0.2 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程]...
一. 先贴一张图,这个界面就是程序的主界面了: 二. 部分代码说明(主要讲解异步分析和下载): 异步分析下载采取的策略是同时分析同时下载,即未等待数据全部分析完毕就开始把已经分析出来的 ...
最新文章
- 可疑文件_如何识别文件的真假
- TVM:通过Python接口(AutoTVM)来编译和优化模型
- 芯原创始人戴伟民:嵌入式人工智能与芯粒的历史机遇
- .NET Core,.NET Framework和Xamarin有什么区别?
- Linux入门相关基础知识
- 5款免费又好用的甘特图软件,总有一款适合你
- 杭电OJ刷题指南(ACM)
- matlab 安装 cvx 和 mosek 以及 gurobi
- 作为无人机方面做嵌入式编写的飞控总结6--IMU惯性系统和GPS导航系统融合小结1(惯性导航算法)
- arm跑操作系统的意义_上手一个具体而微的 ARM 操作系统
- Java蓝桥杯 算法提高 九宫格
- 关于路由器花生壳动态域名无法连接的解决方法
- 【AI SoC】全志R329 高算力低功耗,当下智能音箱的最优解?
- LTE上报的CQI、PMI、RI
- 莫队算法小介绍——看似暴力的莫队算法
- 漏刻有时云守护数据可视化画质感知状态迭代说明文档
- 避坑外连腾讯云服务器redis 6379
- 小米天气api html,小米天气app
- 番茄工作法总结-第六章:应变
- H60-RS232自动售货机主板规格书