zoukankan      html  css  js  c++  java
  • ZOJ 3632 ----dp+优先队列

    上个礼拜学长讲了优先队列的说....

    emmmmmm....

    看着题解敲了一题...先m下。

    #include<cstring>  
    #include<algorithm>  
    #include<iostream>  
    #include<cmath>  
    #include<cstdio>  
    #include<queue> 
    using namespace std;
    struct gua
    {
    	long long v,d;
    	bool operator < (const gua &b)const
    	{
    		if(v==b.v) return d>b.d;
    		return v>b.v;
    	}
    };//这里手残漏了个分号导致螺旋报错
    priority_queue<gua>que;
    int main()
    {
    	int a[50005],b[50005],n,i;
    	long long p[50005]={0};//p[i]表示在前i天有西瓜吃的情况下(并非于i天截止)最小花费
    	while(cin>>n)
    	{
    		for(i=1;i<=n;i++) cin>>a[i];
    		for(i=1;i<=n;i++) cin>>b[i];
    		while(que.size()) que.pop();//初始化队列
    		gua t;
    		for(i=1;i<=n;i++)
    		{
    			t.v=p[i-1]+a[i];
    			t.d=i+b[i]-1;
    			while(que.size()&&que.top().d<i) que.pop();//判断,当当前最优解的天数打不到i时弹出
    			que.push(t);
    			p[i]=que.top().v;
    		}
    		cout<<p[n]<<endl;
    	}
    }
    

      rua~

  • 相关阅读:
    【贪心+前缀】C. Fountains
    优雅降级和渐进增强
    px和em
    src与href
    css 浮动
    CSS权重及样式优先级问题
    css样式初始化
    品字布局设计
    CSS3新特性
    inline-block的简单理解
  • 原文地址:https://www.cnblogs.com/wsblm/p/7263191.html
Copyright © 2011-2022 走看看