设为首页 加入收藏

TOP

hdu 4791 dp预处理+二分
2015-07-20 17:44:55 来源: 作者: 【 】 浏览:2
Tags:hdu 4791 处理 +二分

题意: 打印东西,给出区间(张数)对应费用(到达一定张数就都按某更低的价格),m次询问,问最优费用。给的时候按张数递增给的。

dp出当前张数到最后的最小值。对于询问q,然后二分处》=q的最小的一个张数的价格。min(这个价格*p,dp[这+1])即可。nlogn;后来看网上有些人用线段树,没必要的。

ps:开始竟然因为犯中间数据爆int的初级错误!,不该不该!

#include
  
   
#include
   
     #include
    
      #include
     
       using namespace std; struct node { long long si; long long pi; long long pay; }; long long dp[100005]; node v[100008]; int n,m; int main() { int T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(int i=0;i
      
       =0;i--) { dp[i]=min(v[i].pay,dp[i+1]); } int x; while(m--) { scanf("%d",&x); int r=n,l=0,mid; while(l+1
       
        x) { r=mid; } else { l=mid; } } long long ans=v[l].pi*x; if(l+1
        
         

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVA - 11346 Probability (概率) 下一篇poj 2096 Collecting Bugs(期望)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 安装及连接-腾 (2025-12-25 06:20:28)
·MySQL的下载、安装、 (2025-12-25 06:20:26)
·MySQL 中文网:探索 (2025-12-25 06:20:23)
·Shell脚本:Linux Sh (2025-12-25 05:50:11)
·VMware虚拟机安装Lin (2025-12-25 05:50:08)