zoukankan      html  css  js  c++  java
  • POJ 3616 Milking Time 简单DP

    题意:奶牛Bessie在0~N时间段产奶。农夫约翰有M个时间段可以挤奶,时间段f,t内Bessie能挤到的牛奶量e。奶牛产奶后需要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量。

    详见代码

     1 #include <stdio.h>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <cmath>
     6 #include <memory>
     7 #include <iostream>
     8 #define LL long long
     9 using namespace std;
    10 struct Node {
    11     int s,e,v;
    12     friend bool operator < (Node a,Node b) {
    13         return a.s<b.s;
    14     }
    15 };
    16 Node node[1010];
    17 int main() {
    18     int n,m,r;
    19     while(~scanf("%d%d%d",&n,&m,&r)) {
    20         for(int i=0; i<m; i++) {
    21             scanf("%d%d%d",&node[i].s,&node[i].e,&node[i].v);
    22             node[i].e+=r;//每次增加休息时间
    23         }
    24         sort(node,node+m);//时间小的优先级高
    25         int dp[1010];//i表示在i时间点前符合题意的最大值
    26         memset(dp,0,sizeof(dp));
    27         for(int i=0; i<m; i++) {
    28             dp[i]=node[i].v;
    29             for(int j=0; j<i; j++) {
    30                 if(node[j].e<=node[i].s) {//判断条件
    31                     dp[i]=max(dp[i],dp[j]+node[i].v);
    32                 }
    33             }
    34         }
    35         cout<<*max_element(dp,dp+m)<<endl;
    36     }
    37     return 0;
    38 }
    View Code
  • 相关阅读:
    linux 软件各文件安装位置
    c dup 函数
    c sigaction信号处理
    vtun 信号处理
    vtun 虚拟网卡的读写非阻塞研究
    vtun 守护进程详解
    vtun fork函数
    vtun 中的__io_canceled变量和相关函数
    android 之 AIDL
    android 显示电池电量
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5302222.html
Copyright © 2011-2022 走看看