[THUPC2017] 天天爱射击 题解

news/2024/5/18 15:11:13

俗话说的好,正难则反,既然不好想每一个子弹能打碎多少个木板,不如想每个木板被那枚子弹打碎。

然后就是显然的整体二分。由于可能木板不会被击碎,那些木板的分数会累加到最后一个子弹上,因此我们可以加一枚背锅弹,承担多余的分数。

时间复杂度 \(O((n+m)\log^2 m)\)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+5;
int n,m,c[N],sm[N];
struct que{int l,r,s,o,id;
}q[N*2],q1[N*2],q2[N*2];
void add(int x,int k){for(;x<=m+1;x+=x&-x)c[x]+=k;
}int sum(int x){if(!x) return 0;int re=0;for(;x;x-=x&-x)re+=c[x];return re;
}void dichot(int l,int r,int ql,int qr){if(ql>qr) return;if(l==r){for(int i=ql;i<=qr;i++)if(!q[i].o) sm[l]++;return;}int t1=0,t2=0,mid=(l+r)/2;for(int i=ql;i<=qr;i++){if(q[i].o){if(q[i].id<=mid){add(q[i].s,1);q1[++t1]=q[i];}else q2[++t2]=q[i];continue;}int x=sum(q[i].r)-sum(q[i].l-1);if(q[i].s>x){q[i].s-=x;q2[++t2]=q[i];}else q1[++t1]=q[i];}for(int i=1;i<=t1;i++){if(q1[i].o) add(q1[i].s,-1);q[i+ql-1]=q1[i];}for(int i=1;i<=t2;i++)q[i+ql+t1-1]=q2[i];dichot(l,mid,ql,ql+t1-1);dichot(mid+1,r,ql+t1,qr);
}int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n>>m;for(int i=m+1;i<=n+m;i++)cin>>q[i].l>>q[i].r>>q[i].s;for(int i=1;i<=m;i++)cin>>q[i].s,q[i].id=i,q[i].o=1;dichot(1,m+1,1,n+m);for(int i=1;i<=m;i++)cout<<sm[i]<<"\n";return 0;
}//Kaká

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/28062.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

易优CMS安装出现程序和数据库版本不一致情况的解决方法

易优cms建站系统出现无法安装,数据库文件版本号(V1.5.4)与CMS源码版本号(V1.5.6)不一致怎么办?这样的情况是因为程序在安装的时候是低版本,安装过通过后台升级到了最新版本。然后再进行数据库和程序的备份,就会导致程序和数据库版本不一致的情况。接下来我们给大家说下怎么…

团队作业5-测试与发布(Alpha版本)

这个课程属于哪个课程 软件工程2024-双学位 (广东工业大学)这个作业要求在哪里 团队作业5——测试与发布(Alpha版本)一、功能介绍 1.登录功能2.仪表盘桌面3.课程管理4.学生成绩管理二、问题总结学生管理与作业批改功能未完成;登陆界面未完善;后端数据库设计、接口设计未完成…

[附视频教程]DNF_地下城与勇士_单机+联网 搭建架设教程

搭建源码文件+视频教程联网: https://githubs.xyz/boot/?app=14单机: https://githubs.xyz/boot/?app=15注意:请不要将游戏进行商业化,一切后果概不负责。仅供单机,好友之间进行娱乐!! 注意:请不要将游戏进行商业化,一切后果概不负责。仅供单机,好友之间进行娱乐!…

国内免费的AI工具出色地帮我辅导女儿的小学英语作业

我走出学校已经14年多了,目前除了能粗略阅读英语技术资料之外,像如英语语法等基本功也基本离开14年多了。而对于小学四年级的英语,如完型填空和句式转换等基本语法是重中之重了,这些经常难倒了我。但自从有了AI工具,我感觉我又回到了学生时代……常用的AI工具 AI工具和功能…

[转]wsl2的安装与卸载

1 安装 1、官方提供的离线安装包下载地址 https://docs.microsoft.com/en-us/windows/wsl/install-manual 2、下载LxRunOffline安装工具 下载地址:https://github.com/DDoSolitary/LxRunOffline/releases 解压后,打开cmd输入LxRunOffline 若提示:[ERROR] No action is …

DNF pvf 各版本客户端下载大全

整个客户端,pvf文件占1600多个G全部版本文件获取: https://githubs.xyz/y16.html60版本,70版本,86,86版本,90等全部都有纯净月魂86版本月魂的初版,没有任何修改。 怪物难度强度大。也是我最推荐的版本。朝暮,追忆,原仿官都有。 算了,我摊牌了,基本上什么版本都有。6…

DP Record

从 2024/5/4 往后开始记录捏。 T1.给你一棵树,定义一个集合的权值为 \(\dfrac{\sum_{x\in S}V_x}{\sum_{x\in S}C_x}\)。若一个点 \(\in S\),则其父亲也必须 \(\in S\) 并且 \(|S| = k\)。求满足条件的所有集合的最大价值。\(n,k \le 2500\)。Solution: 注意到那一个奇妙的式…