当前位置: 首页 > news >正文

微信公众号做公司网站/成都私人网站建设

微信公众号做公司网站,成都私人网站建设,天津产品设计公司,昆明网站设计电话小T 是一名质量监督员,最近负责检验一批矿产的质量。这批矿产共有 nn 个矿石,从 11到nn逐一编号,每个矿石都有自己的重量 w_iwi​ 以及价值v_ivi​ 。检验矿产的流程是: 1 、给定mm个区间[L_i,R_i][Li​,Ri​]; 2 、选…

小T 是一名质量监督员,最近负责检验一批矿产的质量。这批矿产共有 nn 个矿石,从 11到nn逐一编号,每个矿石都有自己的重量 w_iwi 以及价值v_ivi 。检验矿产的流程是:

1 、给定mm个区间[L_i,R_i][Li,Ri];

2 、选出一个参数WW;

3 、对于一个区间[L_i,R_i][Li,Ri],计算矿石在这个区间上的检验值Y_iYi

这批矿产的检验结果YY 为各个区间的检验值之和。即:Y_1+Y_2...+Y_mY1+Y2...+Ym

若这批矿产的检验结果与所给标准值SS 相差太多,就需要再去检验另一批矿产。小T不想费时间去检验另一批矿产,所以他想通过调整参数W 的值,让检验结果尽可能的靠近标准值SS,即使得S-YSY 的绝对值最小。请你帮忙求出这个最小值。


11年的day2T2,需要一点思维和数学

首先我遇到的第一个难点是看不懂那个表达式

其实很简单,意思就是在这个区间内,重量小于W的东西的价值的和,再乘上其数量

然后我们会发现,Y的值是由W的值来决定的,随着W的增大而减小

要求的又是极值,所以自然而然的想到二分,

接下来就是如何判断了,因为是区间求和,而有时多个区间,肯定不能暴力

要用到的是前缀和优化,区间和和区间个数都能求

时间复杂度就是O(mlogw)的

别忘了开long long

下面给出代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
inline long long rd(){long long x=0,f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';return x*f;
}
inline void write(long long x){if(x<0) putchar('-'),x=-x;if(x>9) write(x/10);putchar(x%10+'0');return ;
}
long long n,m,s;
long long w[1000006],v[1000006];
long long x[1000006],y[1000006];
long long sum[1000006];
long long cnt[1000006];
long long check(long long k){memset(sum,0,sizeof(sum)*2);for(long long i=1;i<=n;i++){sum[i]=sum[i-1],cnt[i]=cnt[i-1];if(w[i]>=k) sum[i]+=v[i],cnt[i]+=1;}//for(long long i=1;i<=n;i++){//cout<<sum[i]<<" ";//}long long num=0;for(long long i=1;i<=m;i++){num+=(cnt[y[i]]-cnt[x[i]-1])*(sum[y[i]]-sum[x[i]-1]);//cout<<num<<endl;
    }return num;
}
int main(){n=rd(),m=rd(),s=rd();long long l=0x7ffffffffffff,r=0;for(long long i=1;i<=n;i++){w[i]=rd(),v[i]=rd();r=max(w[i],r),l=min(l,w[i]);}for(long long i=1;i<=m;i++) x[i]=rd(),y[i]=rd();r++,l--;long long ans=0x7ffffffffffff;//write(check(4));while(l<=r){long long mid=(l+r)>>1;long long h=check(mid);if(abs(h-s)<ans) ans=abs(h-s);if(h>s) l=mid+1;else r=mid-1;}write(ans);return 0;
}

 

转载于:https://www.cnblogs.com/WWHHTT/p/9866980.html

http://www.lbrq.cn/news/14257.html

相关文章:

  • 中国贸易公司100强/百度seo怎么把关键词优化上去
  • 票付通app下载/seo实战密码第四版
  • 网站后台都需要什么软件做/百度云盘网页版
  • 怎么把源码做网站/什么软件可以发布广告信息
  • 做网站怎么不被找到/怎么自己制作网站
  • 鞍山百度做网站/免费seo快速收录工具
  • 网站建设的一般步骤包含哪些/百度竞价推广托管
  • 深圳企业网站建设服务平台/百度联盟
  • 合肥手机网站建设/企业的网络推广
  • 以中文做域名的网站/青岛seo培训
  • 大连企业网站排名优化/优化防疫措施+科学精准防控
  • 建站能赚钱吗/谷歌seo搜索优化
  • 大型网站注意哪些/免费外链发布平台
  • 石家庄网站开发公司电话/网页设计页面
  • 怎么创建网站校园表白墙/交换友情链接平台
  • 上哪个网站做forma和co/百度词条优化工作
  • 网站加速器手机版/怎么制作网站详细流程
  • 网站建设作业多少钱/信息推广服务
  • 做网站seo的步骤/sem竞价广告
  • 广告在什么网站做/优化网站的目的
  • WordPress仿b站主题/在线网站seo优化
  • 如何获取网站是哪个公司制作/网站建设推广专家服务
  • 定制网站与模板网站的主要区别/百度产品大全
  • 注册了6年的公司转让一般多少钱/河南网站seo
  • wordpress次元主题/专业关键词排名优化软件
  • 企业进行网站建设的方式有( )/东莞网络优化调查公司
  • 冲电气软件 网站建设/搜狗推广登录
  • 小天才电话手表网站/如何推广自己的店铺?
  • 那几家是做失物招领的网站/seo是什么意思 为什么要做seo
  • 外贸网站的推广/上海seo优化
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十一课——高斯下采样后图像还原的FPGA实现
  • Docker国内镜像
  • Jmeter 性能测试响应时间过长怎么办?
  • 自动化测试工具 Selenium 入门指南
  • 【37】MFC入门到精通——MFC中 CString 数字字符串 转 WORD ( CString, WORD/int 互转)
  • 自动化技术在造纸行业的应用:EtherCAT转PROFIBUS DP解决方案