Gym - 101810A ACM International Collegiate Programming Contest (2018)
bryce1010模板
http://codeforces.com/gym/101810/problem/A
大模拟,写崩了,代码借队友的。。。。。。
注意处理段与段的连接问题:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
struct node{
long long l,r,val;
node(){}
node(long long ll,long long rr,long long vval)
{
l=ll;
r=rr;
val=vval;
}
}ar[maxn];
bool cmp(node a,node b)
{
return a.l<b.l;
}
int main(){
int t,m;
long long k;
scanf("%d",&t);
while(t--)
{
scanf("%d%lld",&m,&k);
int u,v,cost;
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&u,&v,&cost);
ar[i]=node(u,v,cost);
}
sort(ar,ar+m,cmp);
long long sum=0,ans=0;
int pre=0;
for(int i=0;i<m;)
{
if(ar[i].r-ar[pre].l+1<=k)
{
sum+=(ar[i].r-ar[i].l+1)*ar[i].val;
ans=max(ans,sum);
i++;
}
else
{
if(ar[i].l-ar[pre].l>=k)
{
if(ar[i].r-ar[pre].r<=k)
{
ans=max(ans,sum+(ar[i].r-ar[i].l+1)*ar[i].val-(ar[i].r-ar[pre].l+1-k)*ar[pre].val);
sum+=(ar[i].r-ar[i].l+1)*ar[i].val;
i++;
}
else
{
sum-=(ar[pre].r-ar[pre].l+1)*ar[pre].val;
pre++;
}
}
else
{
ans=max(ans,sum+(k-ar[i].l+ar[pre].l)*ar[i].val);
if(ar[i].r-ar[pre].r<k)
{
sum+=(ar[i].r-ar[i].l+1)*ar[i].val;
ans=max(ans,sum-(ar[i].r-ar[pre].l+1-k)*ar[pre].val);
i++;
}
else
{
sum-=(ar[pre].r-ar[pre].l+1)*ar[pre].val;
pre++;
}
}
}
}
printf("%lld\n",ans);
}
return 0;
}
Gym - 101810A ACM International Collegiate Programming Contest (2018)的更多相关文章
- Gym - 101810H ACM International Collegiate Programming Contest (2018)
bryce1010模板 http://codeforces.com/gym/101810 #include <bits/stdc++.h> using namespace std; #de ...
- Gym - 101810F ACM International Collegiate Programming Contest (2018)
bryce1010模板 http://codeforces.com/gym/101810 #include<bits/stdc++.h> using namespace std; #def ...
- Gym - 101810E ACM International Collegiate Programming Contest (2018)
bryce1010模板 http://codeforces.com/gym/101810 #include<bits/stdc++.h> using namespace std; #def ...
- Gym - 101810D ACM International Collegiate Programming Contest (2018)
bryce1010模板 http://codeforces.com/gym/101810 #include <bits/stdc++.h> using namespace std; #de ...
- Gym - 101810C ACM International Collegiate Programming Contest (2018)
bryce1010模板 http://codeforces.com/gym/101810 #include <bits/stdc++.h> using namespace std; #de ...
- Gym - 101810B ACM International Collegiate Programming Contest (2018)
bryce1010模板 http://codeforces.com/gym/101810 #include <bits/stdc++.h> using namespace std; #de ...
- ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syria, Lattakia, Tishreen University, April, 30, 2018
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syr ...
- ACM International Collegiate Programming Contest World Finals 2014
ACM International Collegiate Programming Contest World Finals 2014 A - Baggage 题目描述:有\(2n\)个字符摆在编号为\ ...
- ACM International Collegiate Programming Contest World Finals 2013
ACM International Collegiate Programming Contest World Finals 2013 A - Self-Assembly 题目描述:给出\(n\)个正方 ...
随机推荐
- malloc、calloc、realloc和alloca各种的区别
需要先包含头文件 #include"malloc.h" malloc是标准的在堆中开辟新的空间 比如 char *pt=(char *)malloc(10*sizeof(char) ...
- MySQL登陆及配置
一.mysql用户登录 mysql –u用户名 [–h主机名或者IP地址] –p密码 说明:用户名是你登录的用 户,主机名或者IP地址为可选项,如果是本地连接则不需要,远程连接需要填写,密码是对应用户 ...
- 小程序observer函数的应用
需求是这样的 就是构建月份的组件中,月份小于10月的时候 显示的数字都是一个位数,需要转换成两位数, 比如8月份是8 ,那就要转换为08 ,同理可得 其他低于十月份的月份也是要这样做: 打开组件的js ...
- legend2---开发日志12(vue如何进一步学习)
legend2---开发日志12(vue如何进一步学习) 一.总结 一句话总结:还是得找教程(比如视频),自己摸索太浪费时间,也容易踩坑和抓不住重点 还是得找教程(比如视频),自己摸索太浪费时间,也容 ...
- MongoDB 项目集成 mongo-driver 3.4.2
第一次写技术!大白话讲讲.拿着用就可以了 本人是,NET的技术人员,会点JAVA所以很多不专业,见谅哈 刚刚开始使用mongo 整整搞了两天我才搞个半桶水,还是将就着用吧 随便把mongo在win的搭 ...
- Linux-awk和shell编程初步
1 awk 格式: awk -选项 '处理' 输入 awk -F : '{print $1}' file -F指定分隔符, 默认是空格 $1 分割后的第一部分 $0 获得所有部分 NF 表示以分隔符分 ...
- Relative atomic mass
Relative atomic mass Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- gulp --- 前端自动化构建工具
目录 1. gulp使用步骤 1.1 安装Node.js 1.2 全局安装gulp 1.3 安装项目依赖包gulp 1.3.1 了解package.json 1.3.2 根据package.json安 ...
- bzoj 3992 [SDOI2015] 序列统计 —— NTT (循环卷积+快速幂)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3992 (学习NTT:https://riteme.github.io/blog/2016-8 ...
- Microsoft Speech SDK开发包 使用
下载开发包.我们首先从微软的官网上面下载开发包,下载地址如下: http://www.microsoft.com/en-us/download/details.aspx?id=10121我们主要下载三 ...