cf1175 D\E
链接
D 题意
把序列分成连续k段,f(i)表示i这个在第几段
\(\sum\limits_{i=1}^{n}a_i*f(i)\)最大
思路
想象成从k层积木依次递减
先把积木搭满,也就是\(sum_n*k\)
然后考虑删除积木,删除k-1个最小的前缀和就行。
sum[n]不能加进去
代码
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=3e5+7;
int n,k;
ll sum[N];
int main() {
scanf("%d%d",&n,&k);
for(int i=1,val;i<=n;++i) {
scanf("%d",&val);
sum[i]=sum[i-1]+val;
}
ll ans=k*sum[n];
sort(sum+1,sum+n);
for(int i=1;i<k;++i) ans-=sum[i];
cout<<ans<<"\n";
return 0;
}
E 题意
多次询问求一条线段最少被多少线段覆盖
思路
倍增
f[i][j]表示从第i个点出发,用\(2^j\)条线段最多到哪里,
注意从0开始
代码
#include <bits/stdc++.h>
using namespace std;
const int N=5e5+7;
int n,m,f[N][21],bj;
int main() {
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i) {
int x,y;
scanf("%d%d",&x,&y);
f[x][0]=max(f[x][0],y);
bj=max(bj,y);
}
for(int i=1;i<=bj;++i) f[i][0]=max(f[i-1][0],f[i][0]);
for(int j=1;j<=20;++j)
for(int i=0;i<=bj;++i)
f[i][j]=f[f[i][j-1]][j-1];
for(int j=1;j<=m;++j) {
int ans=0,x,y;
scanf("%d%d",&x,&y);
for(int i=20;i>=0;--i)
if(f[x][i]<y)
ans+=1<<i,x=f[x][i];
printf("%d\n",f[x][0]>=y?ans+1:-1);
}
return 0;
}
cf1175 D\E的更多相关文章
- CF-1175 B.Catch Overflow!
题目大意:有一个初始变量,值为0,三种操作 for x 一个循环的开始,循环x次 end 一个循环的结束 add 将变量值加一 问最后变量的值是否超过2^32-1,若超过,输出一串字符,不超过则输出变 ...
随机推荐
- 备忘】HttpContextAccessor类
AspNetCore / src / Http / Http / src / HttpContextAccessor.cs // Copyright (c) .NET Foundation. All ...
- 我碰到的stackoverflow error
出现这种问题,首先需要检查自己的代码: 要么代码小错误:或者逻辑错误: 如果出现循环调用更要仔细检查: 我的问题: 循环调用:一个实体他有自己的父栏目,含有子栏目的list集合:两者结果映射resul ...
- Java 数组(一)定义与访问
一.数组 1.容器概述 容器:是将多个数据存储到一起,每个数据称为该容器的元素. 2.数组概述 数组:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致. 数组特点: (1)数组是一 ...
- iOS 视图调用
init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewContro ...
- PHP简单实现异步多文件上传并使用Postman测试提交图片
虽然现在很多都是使用大平台的对象存储存放应用中的文件,但有时小项目还是可以使用以前的方式上传到和程序一起的服务器上,强调一下这里是小众需求,大众可以使用阿里云的OSS,腾讯的COS,七牛的巴拉巴拉xx ...
- css实现弹框垂直居中
原文链接:https://blog.csdn.net/sunny327/article/details/47419949/ <!DOCTYPE html><html> < ...
- 大数据:Hadoop(HDFS 的设计思路、设计目标、架构、副本机制、副本存放策略)
一.HDFS 的设计思路 1)思路 切分数据,并进行多副本存储: 2)如果文件只以多副本进行存储,而不进行切分,会有什么问题 缺点 不管文件多大,都存储在一个节点上,在进行数据处理的时候很难进行并行处 ...
- golang测试
简述 Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试. go test [-c] [-i] [build flags] [packages] [f ...
- 使用awk格式化输出文本
注意:本文并不是一篇awk入门文章,而是偏重实例讲解 awk借鉴了c语法,因此awk在许多地方还保留有c语言的痕迹,比如printf语句:for,if的语法结构等 介绍 最简单地说,AWK 是一种用于 ...
- (四)Kubernetes 资源清单定义
Kubernetes常用资源对象 依据资源的主要功能作为分类标准,Kubernetes的API对象大体可分为五个类别,如下: 类型 名称 工作负载(Workload) Pod.ReplicaSet.D ...