题目背景 Background

Ztc真的遇上黄牛了。。。
 题目描述 Description
  周末Ztc想去剧场看演出,但是他没有票。这时,救世主Wzj出现了,他慷慨地愿意卖给Ztc一些票。
  Wzj手上共有n张票,但每张票的费用都不一样,贪心的Ztc想要得到更多的票,但又想花费的最少,慷慨的Wzj愿意给连续的m张票。
  Ztc希望你能帮助他在花钱范围内取得最大的票数。
 输入输出格式 Input/output
输入格式:
输入文件tickets.in的第一行是2个整数n、f。其中(2≤n≤1000000),表示票的数目,(10≤f≤10000),表示Ztc身上的钱。
接下来的1行,有n个整数a(1≤a≤30),表示每一张票的票价。
输出格式:
输出文件tickets.out仅一行整数m,表示Ztc能得连续的最大票数。
 输入输出样例 Sample input/output
样例测试点#1

输入样例(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-普及组复赛模拟试题-第二题-买票的更多相关文章

  1. NOIP2010-普及组复赛模拟试题-第二题-数字积木

    题目描述 Description 小明有一款新式积木,每个积木上都有一个数,一天小明突发奇想,要是把所有的积木排成一排,所形成的数目最大是多少呢?你的任务就是读入 n 个数字积木,求出所能形成的最大数 ...

  2. NOIP2010-普及组复赛模拟试题-第一题-手机

    题目背景 Background 现在手机使用越来越广泛了  题目描述 Description 一般的手机的键盘是这样的:   要按出英文字母就必须要按数字键多下.例如要按出 x 就得按 9 两下,第一 ...

  3. NOIP2011-普及组复赛模拟试题-第一题-NBA总冠军

    题目背景 Background 一年两度的期末考要到来了!!  题目描述 Description   又要到考试了,Ljw决定放松一下,就打开电视,看见了篮球赛,他立即想到了每年的NBA总冠军队伍.由 ...

  4. 冲刺NOIP2015提高组复赛模拟试题(五)2.道路修建

    2.道路修建 描述 Description liouzhou_101最悲痛的回忆就是NOI2011的道路修建,当时开了系统堆栈,结果无限RE… 出于某种报复心理,就把那题神奇了一下: 在 Z星球上有N ...

  5. CCF-NOIP-2018 提高组(复赛) 模拟试题(九)(2018 CSYZ长沙一中)

    T1 Circle [问题描述] 小 w 的男朋友送给小 w 一个 n 个点 m 条边的图,并且刁难小 w 要她找出点数最少的正环. 小 w 不会做,于是向你求助. [输入格式] 第一行两个整数\(n ...

  6. CCF-NOIP-2018 提高组(复赛) 模拟试题(四)

    T1 贪吃蛇 [问题描述] 贪吃蛇是一个好玩的游戏.在本题中,你需要对这个游戏进行模拟. 这个游戏在一个 \(n\) 行 \(m\) 列的二维棋盘上进行. 我们用 \((x, y)\) 来表示第 \( ...

  7. CCF-NOIP-2018 提高组(复赛) 模拟试题(一)

    T1 帽子戏法 问题描述 小 Y 有一个\(n*n*n\)的"帽子立方体" ,即一个\(n\)层的立方体,每层的帽子都 可以排成\(n*n\)的矩阵. "帽子立方体&qu ...

  8. CCF-NOIP-2018 提高组(复赛) 模拟试题(七)

    T1 Adjoin [问题描述] 定义一种合法的\(0-1\)串:串中任何一个数字都与\(1\)相邻.例如长度为$ 3 的 0-1 $串中,\(101\)是非法的,因为两边的\(1\)没有相邻的\(1 ...

  9. CCF-NOIP-2018 提高组(复赛) 模拟试题(三)

    T1 取球游戏 问题描述 现有\(N\)个小球,依次编号为\(1\)到\(N\),这些小球除了编号以外没有任何区别.从这\(N\)个小球中取出\(M\)个,请问有多少种取球方案使得在取出的\(M\)个 ...

随机推荐

  1. ORACLE AWR性能报告和ASH性能报告的解读

    数据库的性能分析可分为会话级和系统级:如果确定某个会话存在性能问题,最常见的分析方式是对这个会话做一个SQL_TRACE或者10046事件,通过分析trace文件来定位问题所在.如果无法确定哪个会话性 ...

  2. CodeForces 689E Mike and Geometry Problem

    离散化,树状数组,组合数学. 这题的大致思路和$HDU$ $5700$一样.都是求区间交的问题.可以用树状数组维护一下. 这题的话只要计算每一个$i$被统计了几次,假设第$i$点被统计了$ans[i] ...

  3. 使用curl来调试你的应用

    我们在客户端开发过程中总免不了和后端进行api对接,有时候需要对返回的数据格式进行调试,有时候每次运行客户端来发送请求,这个未免效率太低,这里就来介绍一个好用的工具--curl. curl curl是 ...

  4. Dubbo服务的搭建与使用

    官方地址Dubbo.io Dubbo 主要功能 高并发的负载均衡,多系统的兼容合并(理解不深,不瞎掰了) Dubbo 主要组成有四部分 Zookeeper(服务注册中心) Consumer(服务消费方 ...

  5. HDU 5795 A Simple Nim(SG打表找规律)

    SG打表找规律 HDU 5795 题目连接 #include<iostream> #include<cstdio> #include<cmath> #include ...

  6. redis超时问题分析

    redis超时问题分析 06/04. 2014 Redis在分布式应用中占据着越来越重要的地位,短短的几万行代码,实现了一个高性能的数据存储服务.最近dump中心的cm8集群出现过 几次redis超时 ...

  7. Java与JavaScript中判断两字符串是否相等的区别

    JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等 直接用==,这与C++里的String类一样.而Java里的等号 ...

  8. 在.Net MVC中自定义ValidationAttribute标签对Model中的属性做验证

    写一个继承与ValidationAttribute类的自定义的验证方法 MVC中传递数据时,大多数都会用Model承载数据,并且在传到控制器后,对Model进行一系列的验证. 我平时经常使用的判断方法 ...

  9. C#模板打印excel

    using Microsoft.Office.Interop.Excel; //引用   public void PrintPriviewExcelFile(string filePath) {    ...

  10. MySQL的备份和恢复

    MySQL的备份和恢复 备份数据:mysqldump –uroot –p123456 dbname table [option] > dbname.sql mysqldump常用参数option ...