博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
The Preliminary Contest for ICPC Asia Shanghai 2019 B Light bulbs (离散的差分)
阅读量:3897 次
发布时间:2019-05-23

本文共 1015 字,大约阅读时间需要 3 分钟。

复杂度分析,询问一千次,区间长1e6,O(1e9)超时。

那么我们知道对于差分来说,没必要一个一个求,只需要知道区间长就可以了,所以我们定义结构体差分节点,一个头结点,一个尾节点。
这样tail.loc-head.loc就是整个区间长,该区间的实际的大小就是 Add标记的大小,Add标记就是从头加到尾。
排序2*m个差分节点,对于loc相同的节点,说明是同一个位置的差分,add合并就可以了,不需要进行统计,直接跳过本次循环。

#include 
using namespace std;const int maxn=2e3+10; const int INF=0x3f3f3f3f;int T,N,M,L,R;struct Node {
int loc,add;}node[maxn];bool cmp(const Node &a,const Node &b){
return a.loc
'9'||ch<'0') {
if (ch=='-') {
f=-1; } ch=getchar(); } while (ch>='0'&&ch<='9') {
num=num*10+ch-'0'; ch=getchar(); } return num*f;}inline void print(int x){
if (x<0) {
putchar('-'); } if (x>9) {
print(x/10); } putchar(x%10+'0');}int main(){
int kase=1; //scanf("%d",&T); T=read(); while (T--) {
N=read(),M=read(); //scanf("%d%d",&N,&M); for (int i=0;i<2*M;i++) {
node[i].add=node[i].loc=0; } for (int i=0;i

转载地址:http://aruen.baihongyu.com/

你可能感兴趣的文章
使用POI读取Excel测试用例
查看>>
记一次数据推送的异常解决端口解决
查看>>
linux、mysql、nginx、tomcat 性能参数优化
查看>>
Nginx使用Linux内存加速静态文件访问
查看>>
杀掉nginx进程后丢失nginx.pid,如何重新启动nginx
查看>>
nginx另类复杂的架构
查看>>
Nginx流量复制/AB测试/协程
查看>>
使用NTP服务器完美解决VMware Linux时间无法同步问题
查看>>
机器学习笔记(3)---K-近邻算法(1)---约会对象魅力程度分类
查看>>
机器学习笔记(4)---K-近邻算法(2)---使用sklearn中的KNN算法
查看>>
数据结构——外部排序
查看>>
UNIX网络编程——System V 消息队列
查看>>
信号量、互斥锁,读写锁和条件变量的区别
查看>>
UNIX网络编程——Posix共享内存区和System V共享内存区
查看>>
js循环语句
查看>>
js中时钟的写法
查看>>
js事件冒泡
查看>>
京东金融曹鹏:通过JDD大赛,实现“比你更懂你”的极致价值,让金融更简单,更平等
查看>>
HTML我的家乡杭州网页设计作业源码(div+css)~ HTML+CSS网页设计期末课程大作业 ~ web前端开发技术 ~ web课程设计网页规划与设计 ~HTML期末大作业
查看>>
HTML网页设计期末课程大作业~动漫樱桃小丸子5页表格div+css学生网页设计作业源码
查看>>