NOIP2011-普及组复赛模拟试题-第二题-买票
题目背景 Background
输入文件tickets.in的第一行是2个整数n、f。其中(2≤n≤1000000),表示票的数目,(10≤f≤10000),表示Ztc身上的钱。
输出文件tickets.out仅一行整数m,表示Ztc能得连续的最大票数。
输入样例(tickets.in):
5 10
2 3 1 6 7
输出样例(tickets.out):
3
思路:这题呢,乍一看,有点像背包问题,选择最优解放入
可以使用递归简单点,把每张门票的价格存入数组,递归函数要有四个条件:
①如果票数没了,说明刚好买完,返回1,ans++
②如果钱没有了,返回0
③如果有钱没票,返回0
④如果上述条件都成立,继续递归,票数--,口袋里的钱减去已经买的门票的钱。
代码如下:
#include <stdio.h>
int w[];//存放每张票的价格
int ans;//结果
int tickets(int s,int n)
{
if(s==)//刚好买完
{
ans++;//ans++
return ;//返回1
}
else if(s<) return ;//如果钱都没有了,返回0
else if(n<=&&s>) return ;//如果还有钱,但是没票卖了,返回0
else
{
if(tickets(s-w[n-],n-)==)//如果刚好能买,身上的钱减去电影票的钱,ans++
{
ans++;
return ;//返回1
}
return tickets(n-,s);//继续,电影票数目--
}
}
int main()
{
int n,f,i;
//freopen("tickets.in","r",stdin);
//freopen("tickets.out","w",stdout);
scanf("%d%d",&n,&f);
if(f==) return ;//没钱了买啥子??O(∩_∩)O
else
{
for(i=;i<n;i++)//输入每张票的价格
{
scanf("%d",&w[i]);
}
tickets(f,n);//传入递归函数(身上的钱,电影票数目)
}
printf("%d\n",ans);
return ;
}
NOIP2011-普及组复赛模拟试题-第二题-买票的更多相关文章
- NOIP2010-普及组复赛模拟试题-第二题-数字积木
题目描述 Description 小明有一款新式积木,每个积木上都有一个数,一天小明突发奇想,要是把所有的积木排成一排,所形成的数目最大是多少呢?你的任务就是读入 n 个数字积木,求出所能形成的最大数 ...
- NOIP2010-普及组复赛模拟试题-第一题-手机
题目背景 Background 现在手机使用越来越广泛了 题目描述 Description 一般的手机的键盘是这样的: 要按出英文字母就必须要按数字键多下.例如要按出 x 就得按 9 两下,第一 ...
- NOIP2011-普及组复赛模拟试题-第一题-NBA总冠军
题目背景 Background 一年两度的期末考要到来了!! 题目描述 Description 又要到考试了,Ljw决定放松一下,就打开电视,看见了篮球赛,他立即想到了每年的NBA总冠军队伍.由 ...
- 冲刺NOIP2015提高组复赛模拟试题(五)2.道路修建
2.道路修建 描述 Description liouzhou_101最悲痛的回忆就是NOI2011的道路修建,当时开了系统堆栈,结果无限RE… 出于某种报复心理,就把那题神奇了一下: 在 Z星球上有N ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(九)(2018 CSYZ长沙一中)
T1 Circle [问题描述] 小 w 的男朋友送给小 w 一个 n 个点 m 条边的图,并且刁难小 w 要她找出点数最少的正环. 小 w 不会做,于是向你求助. [输入格式] 第一行两个整数\(n ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(四)
T1 贪吃蛇 [问题描述] 贪吃蛇是一个好玩的游戏.在本题中,你需要对这个游戏进行模拟. 这个游戏在一个 \(n\) 行 \(m\) 列的二维棋盘上进行. 我们用 \((x, y)\) 来表示第 \( ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(一)
T1 帽子戏法 问题描述 小 Y 有一个\(n*n*n\)的"帽子立方体" ,即一个\(n\)层的立方体,每层的帽子都 可以排成\(n*n\)的矩阵. "帽子立方体&qu ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(七)
T1 Adjoin [问题描述] 定义一种合法的\(0-1\)串:串中任何一个数字都与\(1\)相邻.例如长度为$ 3 的 0-1 $串中,\(101\)是非法的,因为两边的\(1\)没有相邻的\(1 ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(三)
T1 取球游戏 问题描述 现有\(N\)个小球,依次编号为\(1\)到\(N\),这些小球除了编号以外没有任何区别.从这\(N\)个小球中取出\(M\)个,请问有多少种取球方案使得在取出的\(M\)个 ...
随机推荐
- STM32驱动ht1621b显示LCD
这几天在写ht1621b显示LCD的程序,主芯片是Stm32f10的芯片.对于stm32和ht1621b的运用和操作本人是新手,属于赶鸭子上架,通过查看datasheet等资料和网上查看前人写的程序终 ...
- Unity3D消息:消息传递函数
- [HMLY]2.CocoaPods详解----进阶
作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709 转载请注明出处 一.podfile.lock文件 ...
- maven中在本地maven仓库添加jar包
Maven 手动添加 JAR 包到本地仓库 Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven 来远程下载 JAR 包的话,我宿舍的带宽是4兆的,4个人共用,有时候用 ...
- gulp插件大全
原文:http://www.mamicode.com/info-detail-517085.html No.1.run-sequence 作用:让gulp任务,可以相互独立,解除任务间的依赖,增强 ...
- Hive 执行计划
执行语句 hive> explain select s.id, s.name from student s left outer join student_tmp st on s.name = ...
- github上前100的ios项目
1. AFNetworking 作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便是其中之一, AFNetworking ...
- 使用ajax和history.pushState无刷新改变页面URL(转)
表现 如果你使用chrome或者firefox等浏览器访问本博客.github.com.plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发 ...
- VM10下Ubuntu无法安装vim的问题
今天在VM10下重装了Ubuntu14.10,安装vim时发现如下问题 谷歌了一下,终于找到一种方法解决. 终端下: sudo vi /etc/apt/source.list 该命令将用vi打开一个文 ...
- 8、关于viewWithTag
1.viewWithTag检索tag的方法问题viewWithTag方法会对当前View和其子View进行搜索,查找符合tag的对象,但如果view和其多个子view中都含有相同tag值对象时,该方法 ...