zoukankan      html  css  js  c++  java
  • 毕业bg(dfs)

    毕业bg

    Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
    Total Submission(s) : 3   Accepted Submission(s) : 1
    Problem Description
    每年毕业的季节都会有大量毕业生发起狂欢,好朋友们相约吃散伙饭,网络上称为“bg”。参加不同团体的bg会有不同的感觉,我们可以用一个非负整数为每个bg定义一个“快乐度”。现给定一个bg列表,上面列出每个bg的快乐度、持续长度、bg发起人的离校时间,请你安排一系列bg的时间使得自己可以获得最大的快乐度。

    例如有4场bg:
    第1场快乐度为5,持续1小时,发起人必须在1小时后离开;
    第2场快乐度为10,持续2小时,发起人必须在3小时后离开;
    第3场快乐度为6,持续1小时,发起人必须在2小时后离开;
    第4场快乐度为3,持续1小时,发起人必须在1小时后离开。
    则获得最大快乐度的安排应该是:先开始第3场,获得快乐度6,在第1小时结束,发起人也来得及离开;再开始第2场,获得快乐度10,在第3小时结束,发起人正好来得及离开。此时已经无法再安排其他的bg,因为发起人都已经离开了学校。因此获得的最大快乐度为16。

    注意bg必须在发起人离开前结束,你不可以中途离开一场bg,也不可以中途加入一场bg。
    又因为你的人缘太好,可能有多达30个团体bg你,所以你需要写个程序来解决这个时间安排的问题。
     
    Input
    测试输入包含若干测试用例。每个测试用例的第1行包含一个整数N (<=30),随后有N行,每行给出一场bg的信息: h l t 其中 h 是快乐度,l是持续时间(小时),t是发起人离校时间。数据保证l不大于t,因为若发起人必须在t小时后离开,bg必须在主人离开前结束。 当N为负数时输入结束。
     
    Output
    每个测试用例的输出占一行,输出最大快乐度。
     
    Sample Input
    3 6 3 3 3 2 2 4 1 3 4 5 1 1 10 2 3 6 1 2 3 1 1 -1
     
    Sample Output
    7 16
    要先排下序
    代码:
     1 #include<stdio.h>
     2 #include<string.h>
     3 #define MAX(x,y)(x>y?x:y)
     4 #include<algorithm>
     5 using namespace std;
     6 struct Node{
     7     int h,l,t;
     8 };
     9 int cmp(Node a,Node b){
    10     return a.t<b.t;
    11 }
    12 Node bg[35];
    13 int N,ans,vis[35];
    14 void dfs(int x,int h,int t){
    15     if(x>=N){
    16         ans=MAX(ans,h);
    17         return;
    18         }
    19             if(t+bg[x].l<=bg[x].t)
    20                 dfs(x+1,h+bg[x].h,t+bg[x].l);
    21             dfs(x+1,h,t);
    22         }
    23 int main(){
    24     while(scanf("%d",&N),N>=0){
    25             for(int i=0;i<N;i++)
    26         scanf("%d%d%d",&bg[i].h,&bg[i].l,&bg[i].t);
    27         sort(bg,bg+N,cmp);
    28         ans=0;
    29         memset(vis,0,sizeof(vis));
    30         dfs(0,0,0);
    31         printf("%d
    ",ans);
    32     }
    33     return 0;
    34 }
     
  • 相关阅读:
    [转]对Lucene PhraseQuery的slop的理解
    Best jQuery Plugins of 2010
    15 jQuery Plugins To Create A User Friendly Tooltip
    Lucene:基于Java的全文检索引擎简介
    9 Powerful jQuery File Upload Plugins
    Coding Best Practices Using DateTime in the .NET Framework
    Best Image Croppers ready to use for web developers
    28 jQuery Zoom Plugins Creating Stunning Image Effect
    VS2005 + VSS2005 实现团队开发、源代码管理、版本控制(转)
    禁止状态栏显示超链
  • 原文地址:https://www.cnblogs.com/handsomecui/p/4865266.html
Copyright © 2011-2022 走看看