zoukankan      html  css  js  c++  java
  • uva 12654

    dp,用优先队列存,上个节点节点覆盖下来的长度;

    不过还不是很明白;

     1 #include<cstdio>
     2 #include<queue>
     3 #include<algorithm>
     4 #define maxn 1005
     5 #define inf 999999
     6 using namespace std;
     7 struct node
     8 {
     9     int id;
    10     int v;
    11     node(int id=0,int v=0):id(id),v(v){}
    12     bool operator<(const node &t)const
    13     {
    14         return v>t.v;
    15     }
    16 };
    17 priority_queue<node>q1,q2;
    18 
    19 int f[maxn],a[maxn];
    20 int main()
    21 {
    22     int n,c,t1,t2,x;
    23     while(scanf("%d%d%d%d",&n,&c,&t1,&t2)!=EOF)
    24     {
    25         while(!q1.empty())q1.pop();
    26         while(!q2.empty())q2.pop();
    27         q1.push(node(0,0));
    28         q2.push(node(0,0));
    29         for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    30         for(int i=1;i<=n;i++)
    31         {
    32             while(!q1.empty()&&a[q1.top().id+1]+t1<a[i])q1.pop();
    33             while(!q2.empty()&&a[q2.top().id+1]+t2<a[i])q2.pop();
    34             f[i]=inf;
    35             if(!q1.empty())f[i]=min(f[i],q1.top().v+t1);
    36             if(!q2.empty())f[i]=min(f[i],q2.top().v+t2);
    37             q1.push(node(i,f[i]));
    38             q2.push(node(i,f[i]));
    39 //            printf("%d
    ",f[i]);
    40         }
    41         printf("%d
    ",f[n]);
    42     }
    43     return 0;
    44 }
    View Code
  • 相关阅读:
    毫秒倒计时小Demo
    css3 翻转
    canvas
    html5
    css3
    一些免费的svn空间(SVN代码托管)
    Xcode 6制作动态及静态Framework
    ios 动态执行的代码
    ios nsarray对象问题
    iOS xcode 编译选项 architecture(cup架构问题)
  • 原文地址:https://www.cnblogs.com/yours1103/p/3425969.html
Copyright © 2011-2022 走看看