博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU4791【杂】
阅读量:4557 次
发布时间:2019-06-08

本文共 1130 字,大约阅读时间需要 3 分钟。

题意:

给你一个从0开始的区间si,每个区间是前闭后开,[ s[i] , s[i+1] ), 然后再给你个一个pi,代表你在区间[ s[i] , s[i+1] )里面买东西的单价是pi,给出的s1一定是0,给出的顺序是s1,p1,s2,p2...sk,pk,...sn,pn。然后给你个m个值,然后计算买了>=b[m]个物品需要花费的最少值;

思路:

预处理一下,买si个物品需要的花费,用个数组存一下从当前si量开始的最小花费,然后对于给入的值二分找一下他所在的区间[ s[i] , s[i+1] ),然后比较一下s[i+1]的最小和pi*给入的值的大小;注意是>=sn的时候;

贴一发比赛时的挫代码,一开始就瞎几把想其实预处理一下当前到最后的最小就行了。所以打的那么挫;

#include
using namespace std;typedef long long LL;const int N=1e5+10;int n;LL flag[N];struct node{ LL x; LL y;};node qujian[N];struct asd{ LL page; LL w;};asd q[N];bool cmp1(node p1,node p2){ return p1.x
=1; i--) { if(temp>q[i].w) temp=q[i].w; flag[i]=temp; }// for(int i=1;i<=n;i++)// printf("%lld ",flag[i]);// puts(""); while(m--) { LL tmp; scanf("%lld",&tmp); int left=1; int right=n; while(left
n) printf("%lld\n",qujian[left-1].y*tmp); else printf("%lld\n",(qujian[left-1].y*tmp)

转载于:https://www.cnblogs.com/keyboarder-zsq/p/6216773.html

你可能感兴趣的文章
关于 redis.properties配置文件及rule
查看>>
WebService
查看>>
关于Java中重载的若干问题
查看>>
Java中start和run方法的区别
查看>>
二叉树_非递归先中后序_递归非递归求深度
查看>>
20181227 新的目标
查看>>
HDFS写流程
查看>>
生产环境服务器环境搭建+ 项目发布
查看>>
js按条件分类json数组,并合计同组数据(一维转换为二维)
查看>>
Exp6 信息搜集与漏洞扫描
查看>>
redis4安装
查看>>
使用命令wsimport构建WebService客户端[转]
查看>>
第八遍:链接详解
查看>>
Qt5.5 使用smtp发邮件的各种坑
查看>>
js奇葩错误 字符串传递问题
查看>>
人之初,性本恶
查看>>
springboot 端口号
查看>>
使用AChartEngine画动态曲线图
查看>>
安卓项目五子棋代码详解(四)
查看>>
urllib 学习一
查看>>