IPCTRAIN: 训练营教练
题目描述 本次印度编程训练营(Indian Programming Camp,IPC)共请到了 N 名教练。训练营的日 程安排有 M 天,每天最多上一节课。第 i 名教练在第 Di 天到达,直到训练营结束才离开。第 i 名 教练希望上 Ti 节课。要是少上了课,那么教练会感到扎心,每少上一节,扎心值就会加 Si。 作为主办方,你希望最小化所有教练的扎心值之和。
输入格式
输入的第一行包含一个整数 T,代表测试数据的组数。接下来是 T 组数据。 每组数据的第一行包含两个整数 N 和 D。接下来 N 行,每行包含三个整数 Di,Ti,Si。
输出格式
对于每组数据,输出一行,包含一个整数,代表扎心值之和的最小值。
数据范围和子任务 • 1 ≤ T ≤ 10 • 1 ≤ N,D,Si ≤ 105 • 1 ≤ Di,Ti ≤ D 子任务 1(40 分): • 1 leqN,D,Si ≤ 103
子任务 2(60 分): • 无附加限制
样例数据
输入

3

2 3

1 2 300

2 2 100

2 3

1 1 100

2 2 300

2 3

3 2 150

1 1 200

这道题呢我们先将所有教官都没得上课的扎心值统计起来为ans

然后枚举时间 把符合条件的教官扔到大根堆里面 然后把还有课要交而扎心值又最大的教官拉出来让他去教 然后ans-x.w 这样一步步处理就好啦

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define LL long long
using namespace std;
const int M=3e5+;
int read(){
int ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
int n,m,v,top;
LL ans;
struct note{int d,T,w;}e[M];
bool cmp(note a,note b){return a.d>b.d;}
struct node{
int w,pos;
bool operator <(const node&x)const {return w<x.w;}
};
priority_queue<node>q;
int main()
{
v=read();
while(v--){
q=priority_queue<node>();
n=read(); m=read();
top=n; ans=;
for(int i=;i<=n;i++) e[i].d=read(),e[i].T=read(),e[i].w=read(),ans=ans+(LL)e[i].T*e[i].w;
sort(e+,e++n,cmp);
for(int i=;i<=m;i++){
while(top&&e[top].d<=i) q.push((node){e[top].w,top}),top--;
node x=q.top();
while(!e[x.pos].T){
q.pop();
if(q.empty()) break;
x=q.top();
}
if(q.empty()) continue;
ans=ans-x.w; e[x.pos].T--;
}
printf("%lld\n",ans);
}
return ;
}

codechef T4 IPC Trainers的更多相关文章

  1. [codechef July Challenge 2017] IPC Trainers

    IPCTRAIN: 训练营教练题目描述本次印度编程训练营(Indian Programming Camp,IPC)共请到了 N 名教练.训练营的日程安排有 M 天,每天最多上一节课.第 i 名教练在第 ...

  2. 17-比赛1 D - IPC Trainers (贪心 + 优先队列)

    题目描述 本次印度编程训练营(Indian Programming Camp,IPC)共请到了 N 名教练.训练营的日程安排有 M 天,每天最多上一节课.第 i 名教练在第 Di 天到达,直到训练营结 ...

  3. STL 入门 (17 暑假集训第一周)

    快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...

  4. codechef AUG17 T4 Palindromic Game

    Palindromic Game Problem Code: PALINGAM There are two players A, B playing a game. Player A has a st ...

  5. 计算机体系结构-内存调优IPC OOMK

    man ipc [root@server1 proc]# man ipcIPC(2)                     Linux Programmer’s Manual             ...

  6. codechef MAY18 div2 部分题解

    T1 https://www.codechef.com/MAY18B/problems/RD19 刚开始zz了,其实很简单. 删除一个数不会使gcd变小,于是就只有0/1两种情况 T2 https:/ ...

  7. [Codechef - AASHRAM] Gaithonde Leaves Aashram - 线段树,DFS序

    [Codechef - AASHRAM] Gaithonde Leaves Aashram Description 给出一棵树,树的"N"节点根植于节点1,每个节点'u'与权重a[ ...

  8. Android之使用Bundle进行IPC

    一.Bundle进行IPC介绍 四大组件中的三大组件(Activity.Service.Receiver)都是支持在Intent中传递Bundle数据的,由于Bundle实现了Parcelable接口 ...

  9. Android之使用文件进行IPC

    一.文件进行IPC介绍 共享文件也是一种不错的进程间通信方式,两个进程通过读/写同一个文件来交换数据.在Windows上,一个文件如果被加了排斥锁将会导致其他线程无法对其进行访问,包括读写,而由于An ...

随机推荐

  1. Linux上jdk的安装(CentOS6.5)

    centos openjdk 安装 http://www.cnblogs.com/ilahsa/archive/2012/12/11/2813059.html 知CentOS6.5桌面版默认安装的是J ...

  2. json与python解析

    1.json.dumps     将 Python 对象编码成 JSON 字符串   json.loads      将已编码的 JSON 字符串解码为 Python 对象 2.json.dump() ...

  3. 重写selenium 的 click()操作,使其变成隐式等待

    selenium 页面常会因为页面加载慢而出现element 不能被点击到的情况,比如加载过程中出现遮罩,导致element 可见不可点.以下方法重写click(),用隐式等待解决这个问题. 基本思路 ...

  4. c# 3D图形处理库

    C#的OpenGL类库SharpGL SharpGL 可以让你在 Windows Forms 或者 WPF 应用中轻松的使用 OpenGL 开发图形应用.更多SharpGL信息 Axiom 3D En ...

  5. python 基础篇 10 函数进阶

    本节主要内容:1. 函数参数--动态传参2. 名称空间, 局部名称空间, 全局名称空间, 作⽤域, 加载顺序.3. 函数的嵌套4. gloabal, nonlocal关键字 ⼀. 函数参数--动态传参 ...

  6. 编译 TensorFlow 的 C/C++ 接口

    TensorFlow 的 Python 接口由于其方便性和实用性而大受欢迎,但实际应用中我们可能还需要其它编程语言的接口,本文将介绍如何编译 TensorFlow 的 C/C++ 接口. 安装环境: ...

  7. Hyperledger04

    代码 'use strict'; var Fabric_Client = require('fabric-client'); var path = require('path'); var util ...

  8. Python 异步编程笔记:asyncio

    个人笔记,不保证正确. 虽然说看到很多人不看好 asyncio,但是这个东西还是必须学的.. 基于协程的异步,在很多语言中都有,学会了 Python 的,就一通百通. 一.生成器 generator ...

  9. BZOJ 4184 shallot 线性基+分治

    Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且让小葱从 ...

  10. UVA 11883 Repairing a Road(最短路径+暴力枚举)

    You live in a small town with R bidirectional roads connecting C crossings and you want to go from c ...