ODT(区间覆盖问题)
解释:先留坑
题目:https://www.cometoj.com/contest/73/problem/D?problem_id=4120
#include<bits/stdc++.h>
using namespace std;
#define se set<aa>
#define it iterator
#define lowbit(x) (x&(-x))
typedef long long ll;
const int M=5e5+;
int n,m,q;
struct ope{
ll l,r,val;
}a[M];
struct quer{
ll l,r,id;
}b[M];
struct aa{
ll l,r,val,id;
};
set<aa>s;
bool cmp(quer x,quer y){
return x.r<y.r;
}
bool operator <(aa a,aa b) {
return a.r < b.r;
}
ll tree[M],ans[M];
void add(ll x,ll y)
{
if(x == ) return;
for(;x <= n; x += lowbit(x))
tree[x] += y;
} ll Sum(ll x) {
ll ans = ;
for(; x > ; x -= lowbit(x))
ans += tree[x];
return ans;
}
void split(se::it id,ll x){
ll l=id->l,r=id->r,val=id->val,_id=id->id;
if(x<l||x>=r)
return ;
s.erase(id);
s.insert((aa){l,x,val,_id});
s.insert((aa){x+,r,val,_id});
}
void Assign(ll l,ll r,ll val,ll id){
se::it x=s.lower_bound((aa){,l-,,});
split(x,l-);
se::it y=s.lower_bound((aa){,r,,});
split(y,r); x=s.lower_bound((aa){,l,,});
y=s.lower_bound((aa){,r+,,});
for(se::it i=x;i!=y;){
se::it j=i;
i++;
add(j->id,-((j->r)-(j->l)+)*(j->val));
s.erase(j);
}
s.insert((aa){l,r,val,id});
add(id,(r-l+)*val);
}
int main(){ scanf("%d%d%d",&n,&m,&q);
for(int i=;i<=n;i++){
scanf("%lld%lld%lld",&a[i].l,&a[i].r,&a[i].val);
}
for(ll i=;i<=q;i++)
scanf("%lld%lld",&b[i].l,&b[i].r),b[i].id=i;
sort(b+,b++q,cmp);
s.insert((aa){,m,,});
for(int i=;i<=q;i++){
for(int j=b[i-].r+;j<=b[i].r;j++){
Assign(a[j].l,a[j].r,a[j].val,j);
}
ans[b[i].id]=Sum(n)-Sum(b[i].l-);
}
for(int i=;i<=q;i++)
printf("%lld\n",ans[i]);
return ;
}
ODT(区间覆盖问题)的更多相关文章
- HDU 4509 湫湫系列故事——减肥记II(线段树-区间覆盖 或者 暴力技巧)
http://acm.hdu.edu.cn/showproblem.php?pid=4509 题目大意: 中文意义,应该能懂. 解题思路: 因为题目给的时间是一天24小时,而且还有分钟.为了解题方便, ...
- UVa 10020 (最小区间覆盖) Minimal coverage
题意: 数轴上有n个闭区间[ai, bi],选择尽量少的区间覆盖一条指定线段[0, m] 算法: [start, end]为已经覆盖到的区间 这是一道贪心 把各个区间先按照左端点从小到大排序,更新st ...
- codeforces Gym 100187F F - Doomsday 区间覆盖贪心
F. Doomsday Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/problem/F ...
- 【区间覆盖问题】uva 10020 - Minimal coverage
可以说是区间覆盖问题的例题... Note: 区间包含+排序扫描: 要求覆盖区间[s, t]; 1.把各区间按照Left从小到大排序,如果区间1的起点大于s,则无解(因为其他区间的左起点更大):否则选 ...
- uvalive 2326 - Moving Tables(区间覆盖问题)
题目连接:2326 - Moving Tables 题目大意:在一个走廊上有400个教室, 先在有一些桌子要移动, 每次移动需要十分钟, 但是不同房间的桌子可以在同一个十分钟内移动,只要走廊没有被占用 ...
- 高效算法——E - 贪心-- 区间覆盖
E - 贪心-- 区间覆盖 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/E 解题思路: 贪心思想, ...
- 外星人的供给站 (区间覆盖 t贪心)
/** 区间覆盖问题 分析: 每个点可以确定两个圆心 圆心的范围形成 一个区间 在这个区间上以任意一点画圆便可将此点 包含在内 如果有两个点所确定的区间相交了 说明这两个点可以用一个圆包含在内 即用一 ...
- Cleaning Shifts(区间覆盖)
/* http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1019&ojid=1&cid=10 题目: 给定一个时 ...
- UVA 10382 - Watering Grass【贪心+区间覆盖问题+高精度】
UVa 10382 - Watering Grass n sprinklers are installed in a horizontal strip of grass l meters long a ...
- 南阳OJ-12-喷水装置(二)贪心+区间覆盖
题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=12 题目大意: 有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有 ...
随机推荐
- 2020/2/2 PHP代码审计之反序列化
0x00 序列化与反序列化 序列化: serialize()把对象转换为字节序列的过程称为对象的序列化 反序列化: unserialize()把字节序列恢复为对象的过程称为对象的反序列化 0x01 序 ...
- Sequence Models Week 3 Neural Machine Translation
Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...
- python clickZan
import pyautogui,time,random pyautogui.PAUSE = 3 pyautogui.FAILSAFE = True width, height = pyautogui ...
- cat <<EOF> file
.多行导入文件(新建文件或者覆盖文件内容) cat << EOF > abcd.txt Hello! This is a test file! Test for cat and ...
- [前端] VUE基础 (8) (vue-cli脚手架)
一.安装vue-cli脚手架 官方文档:https://cli.vuejs.org/zh/guide/cli-service.html Vue CLI 的包名称由 vue-cli改成了 @vue/c ...
- dp--悬线dp P4147 玉蟾宫
题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N*M个格子,每个格子里写着'R'或者'F ...
- idea新建文件模板 (以xml文件为例)
https://blog.csdn.net/li1325169021/article/details/93158207 偷个懒
- 普通java项目转换为带有Tomcat的动态Web项目
原文链接:http://blog.csdn.net/l4432321/article/details/52049125 直接项目右键进入Properties配置,点击Project Facets,再点 ...
- 学习SEO之7天精通SEO
这本书大致看了一下,对于SEO基本上有了一个初步的认识,附上链接以供学习之用. 百度网盘:https://pan.baidu.com/s/1Bntzh2YF4tBd2AYAL1Q8vQ 心得:1.SE ...
- 20.docker 持久化存储与数据共享
1.image layer 和 container layer 的关系 image layer 是可读的 container layer 是在image layer 之上创建的 一个可读可写层 con ...