bzoj4636: 蒟蒻的數列

作為惟一一個離線+動態開點線段樹的。。我是不是沒救了。。

維護一下區間修改和區間和。。。

然而由于一些奇怪的原因翻車

到最后索性跑到一個點直接開左右兒子

最后注意區間左右端點可以相等。。。

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #define rep(i,l,r) for(int i=l;i<=r;++i)
 6 using namespace std;
 7 const int N=5023333;
 8 typedef long long ll;
 9 int n,cnt,ls[N],rs[N],sz[N],rt,m,tag[N];
10 ll sum[N];
11 struct zs{
12     int a,b,c;
13 }s[40233];
14 bool cmp(zs a,zs b){
15     return a.c<b.c;
16 }
17 int down(int x,int l,int r){
18     if(tag[x]){
19         tag[ls[x]]=tag[x]; tag[rs[x]]=tag[x];
20         int mid=l+r>>1;
21         sum[ls[x]]=(ll)tag[x]*(mid-l+1); sum[rs[x]]=(ll)tag[x]*(r-mid);
22         tag[x]=0;
23     }
24 }
25 void upd(int &x,int l,int r,int L,int R,int d){
26     if(!x) x=++cnt;
27     if(!ls[x])ls[x]=++cnt; if(!rs[x])rs[x]=++cnt;
28     sz[x]=r-l+1;
29     if(l==L&&r==R){tag[x]=d;sum[x]=(ll)sz[x]*d; return;}
30     int mid=l+r>>1;
31     down(x,l,r);
32     if(R<=mid) upd(ls[x],l,mid,L,R,d);else if(L>mid) upd(rs[x],mid+1,r,L,R,d);
33     else upd(ls[x],l,mid,L,mid,d),upd(rs[x],mid+1,r,mid+1,R,d);
34     sum[x]=sum[ls[x]]+sum[rs[x]];
35 }
36 int main(){
37     scanf("%d",&n);
38     rep(i,1,n) scanf("%d%d%d",&s[i].a,&s[i].b,&s[i].c),m=max(m,s[i].b);
39     sort(s+1,s+1+n,cmp);
40     rep(i,1,n){
41         if(s[i].a==s[i].b)continue;
42         upd(rt,1,m,s[i].a,s[i].b-1,s[i].c);
43     }
44     printf("%lld\n",sum[rt]);
45 }
View Code

?

轉載于:https://www.cnblogs.com/Bloodline/p/6050699.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254023.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254023.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254023.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

module_param 在內核編程中的作用

module_param 在用戶態下編程可以通過main()的來傳遞命令行參數&#xff0c;而編寫一個內核模塊則通過module_param()! module_param的作用一.module_param1.為什么引入 在用戶態下編程可以通過main()來傳遞命令行參數&#xff0c;而編寫一個內核模塊則可通過module_param()來傳…

ubuntu 備忘

卷組擴容 Linux mint采用默認卷組的安裝方式 sainLinux ~ $ df -hl Filesystem Size Used Avail Use% Mounted on udev 3.7G 0 3.7G 0% /dev tmpfs 743M 9.5M 733M 2% /run /dev/mapper/mint--vg-root…

DDL DML DCL

2019獨角獸企業重金招聘Python工程師標準>>> DDL is Data Definition Language statements. Some examples:數據定義語言&#xff0c;用于定義和管理 SQL 數據庫中的所有對象的語言 DML is Data Manipulation Language statements. Some examples:數據操作語言&…

學習halcon的論壇與書籍

論壇、培訓 halcon學習網&#xff1a;http://www.ihalcon.com/鳥叔機器視覺&#xff1a;http://bbs.szvbt.com/forum.php 博客 韓兆新的博客園majunfuLife and Codingzhaojun的博客風韻無聲騎螞蟻上高速的博客小馬_xiaoLV2小新識圖程序園-程序員的世界章柯淵的博客 注&…

LINUX內核中的xx_initcall初始化標號

LINUX內核中的xx_initcall初始化標號 田海立CSDN 2011-07-02 LINUX內核中有很多的初始化指示標志postcore_initcall(), arch_initcall(), subsys_initcall(), device_initcall(), etc. 這些起什么作用呢&#xff1f;查閱源代碼&#xff08;android goldfish-2.6.29&#xff09;…

代碼習慣---打印參數

打印參數很重要。轉載于:https://www.cnblogs.com/Andomly/p/6050773.html

javascript設置和獲取cookie的方法

設置cookie的方法&#xff0c;和獲取cookie的方法例如以下 設置cookie document.cookie"name"value;//獲取cookie當中index是cookie的名稱function getCookie(index){var allcookies document.cookie; var cookie_pos allcookies.indexOf(index);if (cookie_pos !…

favicon.ico--網站標題小圖片二三事

前言: 什么是favicon? 直接用圖說話:這個就是favicon favicon.ico 是一種格式&#xff0c;一般用于網頁地址欄前或者在標簽上以縮略方式顯示網站標志&#xff0c;也可以拖曳favicon到桌面以建立到網站的快捷方式。為什么要設置favicon圖標&#xff0c;以圖像形態顯示&#xff…

鏡頭MTF傳遞函數解讀

什么是鏡頭的MTF曲線&#xff1f;MTF全稱是Modulation Transfer Function&#xff0c;譯為調制傳遞函數&#xff0c;其單位以line/mm來表示。MTF綜合反映了鏡頭的反差和分辨率特性&#xff0c; MTF是用儀器測量的&#xff0c;因而可以完全排除膠片等客觀因素的影響和人工判讀的…

Java的線程模型

并發不一定要依賴多線程&#xff08;如PHP中很常見的多進程并發&#xff09;&#xff0c;但是在Java里面談論并發&#xff0c;大多數都與線程脫不開關系。 線程是比進程更輕量級的調度執行單位&#xff0c;線程的引入&#xff0c;可以把一個進程的資源分配和執行調度分開&#…

BT656/BT601/BT1120協議以及DM365/DM355/DM6467上使用的YUV顏色空間說明

ITU-R BT.601和ITU-RBT.656國際電信聯盟&#xff08;International Telecommunication Union&#xff09;無線通信部門&#xff08;ITU-R&#xff09;制定的標準。嚴格來說&#xff0c;ITU-R BT.656應該是隸屬ITU-R BT.601的一個子協議。ITU-R BT.601是演播室數字電視編碼參數標…

eclispe設置workspace text file encoding

在windows下開發&#xff0c;經常會遇到eclipse新導入的工程 java代碼中的注釋或者字符串中文顯示亂碼&#xff0c;每次都要一個個項目更改麻煩&#xff0c;特地找了下&#xff0c;可通過如下方法一次性設置。 轉載于:https://www.cnblogs.com/zhjh256/p/7190537.html

工業定焦鏡頭的選型公式

工業鏡頭的焦距(f mm)可以根據FOV(視場), WD(工作距離) 和CCD芯片尺寸計算出來:FOV視場指被攝取物體的大小&#xff0c;視場的大小是以鏡頭至被攝取物體距離(WD)&#xff0c;鏡頭焦距(F)及CCD芯片尺寸確定的。鏡頭的焦距&#xff0c;視場大小、工作距離、光學倍率計算如下:焦距…

Nginx系列二:(Nginx Rewrite 規則、Nginx 防盜鏈、Nginx 動靜分離、Nginx+keepalived 實現高可用)...

一、Nginx Rewrite 規則 1. Nginx rewrite規則 Rewrite規則含義就是某個URL重寫成特定的URL&#xff08;類似于Redirect&#xff09;&#xff0c;從某種意義上說為了美觀或者對搜索引擎友好&#xff0c;提高收錄量及排名等。 語法&#xff1a; rewrite<regex><replace…

受限玻爾茲曼機(RBM)以及對比散度(CD)

1. RBM 的提出 BM 的缺點&#xff1a; 計算時間漫長&#xff0c;尤其是無約束自由迭代的負向階段&#xff1b;對抽樣噪音敏感&#xff1b;流行軟件的不支持&#xff1b;受限玻爾茲曼機&#xff08;Restricted Boltzmann Machine,簡稱 RBM&#xff0c;以解決 BM 的學習效率過慢的…

嵌入式系統中看門狗概述。。。

一直以來對于嵌入式中的watch dog&#xff08;看門狗&#xff09;都比較陌生&#xff0c;一直都不知道它到底是做什么的&#xff0c;單從名字上看也不知其所以然&#xff0c;然后就在網上找到了一篇blog&#xff0c;就是再說看門狗的作用和概述&#xff0c;原文如下&#xff1a…

MySQL中的運算符

算術運算符 MySQL 支持常見的五種算術運算&#xff1a;, -, *, /(同 DIV 函數), %(同 MOD 函數)&#xff0c;即加減乘除和取余。&#xff08;被除數為 0則結果為 NULL&#xff09; 比較運算符 當使用 SELECT 語句進行查詢時&#xff0c;MySQL 允許用戶對表達式的左邊操作數和右…

Qt中查看ui_xxx.h文件方法

前提 1、Qt當有界面 2、構造完成 滿足以上兩個條件qt會生成ui_xxx.h文件。 如何查看 方法1 在cpp文件中找到UI下的一個對象 如&#xff1a; ui->textEdit Ui::QWDialog按住Ctrl鍵&#xff0c;使用鼠標左鍵點擊UI下的一個對象&#xff0c;如&#xff1a;textEdit、QWDia…

springCloud Finchley 實戰入門(基于springBoot 2.0.3)【三 Eureka-高可用服務注冊中心】...

Eureka高可用注冊中心 Eureka Server的設計一開始就考慮到了高可用的問題&#xff0c;在eureka服務治理設計中&#xff0c;所有的節點即是是服務提供方&#xff0c;也是服務消費方。 在部署高可用注冊中心前我們先需要準備一下&#xff0c;本地環境。因為我們實例是在單臺電腦上…

Spring 讀取配置文件(二)

Spring 讀取配置文件并調用 bean package cn.com.test.receive;import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class…