zoukankan      html  css  js  c++  java
  • NOIP2011-普及组复赛模拟试题-第二题-买票

    题目背景 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

    ④如果上述条件都成立,继续递归,票数--,口袋里的钱减去已经买的门票的钱。

    代码如下:

     1 #include <stdio.h>
     2 int w[100];//存放每张票的价格 
     3 int ans;//结果 
     4 int tickets(int s,int n)
     5 {
     6     if(s==0)//刚好买完
     7     {
     8         ans++;//ans++ 
     9         return 1;//返回1 
    10     }     
    11     else if(s<0) return 0;//如果钱都没有了,返回0 
    12     else if(n<=0&&s>0) return 0;//如果还有钱,但是没票卖了,返回0 
    13     else
    14     {
    15         if(tickets(s-w[n-1],n-1)==1)//如果刚好能买,身上的钱减去电影票的钱,ans++ 
    16         {
    17             ans++;
    18             return 1;//返回1 
    19         }
    20         return tickets(n-1,s);//继续,电影票数目-- 
    21     }
    22 }
    23 int main()
    24 {
    25     int n,f,i;     
    26     //freopen("tickets.in","r",stdin);
    27     //freopen("tickets.out","w",stdout);
    28     scanf("%d%d",&n,&f);
    29     if(f==0) return 0;//没钱了买啥子??O(∩_∩)O 
    30     else
    31     {
    32         for(i=0;i<n;i++)//输入每张票的价格 
    33         {
    34             scanf("%d",&w[i]);
    35         }
    36         tickets(f,n);//传入递归函数(身上的钱,电影票数目) 
    37     }
    38     printf("%d
    ",ans);
    39     return 0;
    40 }
  • 相关阅读:
    KMP+Tire树(模板)
    序列自动机(模板)
    欧拉函数(转载)
    Django之ContentType组件
    RestFramework之注册器、响应器与分页器
    RestFramework之频率组件
    RestFramework之权限组件
    RestFramework之认证组件
    RestFramework之视图组件
    RestFramework之序列化组件
  • 原文地址:https://www.cnblogs.com/geek-007/p/4731190.html
Copyright © 2011-2022 走看看