成段更新,區間統計,
把query裏的傳遞給子節點的步驟,切記!!
向大牛學習……http://www.notonlysuccess.com/?p=59
#include<iostream> using namespace std; int countbit(unsigned int n) { int count=0; while(n!=0) { n &= n-1; count++; } return count; } int two(int n) { return 1<<n; } struct seg_tree { int left; int right; int col; bool cover; int calmid() { return (left+right)>>1; } }; struct seg_tree tree[100000*3]; void build(int left,int right,int idx) { tree[idx].left = left; tree[idx].right = right; tree[idx].cover=1; tree[idx].col=two(1); if(left == right) return; int mid=tree[idx].calmid(); build(left,mid,idx<<1); build(mid+1,right,idx<<1|1); } int query(int left,int right,int idx) { if(left == tree[idx].left && right==tree[idx].right) { return tree[idx].col; } if(tree[idx].cover) { tree[idx<<1].col=tree[idx<<1|1].col=tree[idx].col; tree[idx<<1].cover=tree[idx<<1|1].cover=1; tree[idx].cover=0; } int mid=tree[idx].calmid(); if(right<=mid) return query(left,right,idx<<1); else if(left>mid) return query(left,right,idx<<1|1); else return query(left,mid,idx<<1) | query(mid+1,right,idx<<1|1); } void update(int left,int right,int val,int idx) { if(left <= tree[idx].left && right >= tree[idx].right ) { tree[idx].col=two(val); tree[idx].cover=1; return; } if(tree[idx].cover) { tree[idx<<1].col=tree[idx<<1|1].col=tree[idx].col; tree[idx<<1].cover=tree[idx<<1|1].cover=1; tree[idx].cover=0; } int mid=tree[idx].calmid(); if(left<=mid) update(left,right,val,idx<<1); if(right>mid) update(left,right,val,idx<<1|1); tree[idx].col=tree[idx<<1].col | tree[idx<<1|1].col; } int main() { freopen("in.txt","r",stdin); int n,m,p; cin>>n>>m>>p; build(1,n,1); while(p--) { char c; getchar(); scanf("%c",&c); if(c=='C') { int x,y,color; scanf("%d%d%d",&x,&y,&color); if(x>y) swap(x,y); update(x,y,color,1); } else if(c=='P') { int a,b; scanf("%d%d",&a,&b); if(a>b) swap(a,b); printf("%d/n",countbit(query(a,b,1))); } } return 0; }
二叉樹 「二叉樹 binary tree」是一種非線性數據結構,代表“祖先”與“後代”之間的派生關係,體現了“一分爲二” 的分治邏輯。與鏈表類似,二叉樹的基本單元是節點,每個節點包含值、左子節點引用和右子節點引用。 每個節點都有兩個引
本文分享自華爲雲社區《【昇騰開發全流程】AscendCL開發板模型推理》,作者:沉迷sk。 前言 學會如何安裝配置華爲雲ModelArts、開發板Atlas 200I DK A2。 並打通一個Ascend910訓練到Ascend310推理
大家好,我是每天分享AI應用的螢火君! 今天繼續給大家分享ComfyUI的入門必備技能:ControlNet。 ControlNet 提供了十幾種生成圖片的控制方式,有的可以控制畫面的結構,有的可以控制人物的姿勢,還有的可以控制圖片的畫
作者:張添翼、董藝荃 引子 OpenAI 發佈了最新的 GPT-4o 模型,通義千問也在前不久剛發佈通義千問 2.5,已經和 GPT-4-Turbo 不分伯仲: 既然目前還沒有和 GPT-4o 文本生成能力的對比數據,就讓我們來和大模型一
原文:https://blog.fengjx.com/pages/d6f092 介紹 go-kit的分層設計可以看成是一個洋蔥,有許多層。這些層可以劃分爲我們的三個領域。 Service: 最內部的服務領域是基於你特定服務定義的,也是
原文:https://blog.fengjx.com/pages/40737e 介紹 go-kit 是一個微服務開發工具集,並不算一個完整的框架。根據工程實踐總結的一套開發規範,解決分佈式開發中的常見問題,它同樣也適用於單體服務開發。
1. 背景 ZooKeeper(ZK)是一個誕生於 2007 年的分佈式應用程序協調服務。儘管出於一些特殊的歷史原因,許多業務場景仍然不得不依賴它。比如,Kafka、任務調度等。特別是在 Flink 混合部署 ETCD 解耦 時,業務方曾
本文分享自華爲雲社區《【MySQL技術專欄】GaussDB(for MySQL) Big IN查詢優化》,作者:GaussDB 數據庫。 背景介紹 在生產環境中,經常會遇到客戶業務的SQL語句進行過濾查詢
1. 以管理員身份運行命令提示符並執行命令 cmd ----------------->chcp 437 2. 該命令將返回損壞的任務計劃程序名稱. 輸入命令: schtasks /query /v | find /i "ERROR:
千帆AppBuilder的工作流編排功能上線後,爲了讓用戶能夠更快地熟悉操作,我們請到了AppBuilder的產品經理爲大家直播講解。 在這次直播中,PM小姐姐深入介紹並演示了工作流編排功能,通過創建多個組件,生動展示了AppBui
引言 隨着大數據時代的到來,網頁爬蟲作爲一種高效的數據收集工具,被廣泛應用於互聯網數據抓取和信息抽取。而知乎是一個知識分享平臺,擁有大量的用戶生成內容。通過爬蟲獲取知乎數據,企業和研究人員可以進行深入的數據分析和市場研究,瞭解用戶的需求
本文分享自華爲雲社區《【MySQL技術專欄】MySQL8.0直方圖介紹》,作者:GaussDB 數據庫。 背景 數據庫查詢優化器負責將SQL查詢轉換爲儘可能高效的執行計劃,但因爲數據環境不斷變化導致優化器對查詢數據瞭解的不夠充足,可能無法
本文分享自華爲雲社區《npm install -g 和 npm install --save-dev 的關係》,作者: SHQ5785。 一、npm install 本地安裝 將安裝包放在 ./node_modules 下(運行 npm
一、簡單介紹: CaffeineCache和Guava的Cache是應用廣泛的本地緩存。 在開發中,爲了達到降低依賴、提高訪問速度的目的。會使用它存儲一些維表接口的返回值和數據庫查詢結果,在有些場景下也會在分佈式緩存上再加上一層本地緩存,
前言 linux下安裝nginx比較繁瑣,遇到內網部署環境更是麻煩,所以研究了下nginx綠色免安裝版的部署包製作,開箱即用,特此記錄分享,一下操作在centos8環境下安裝,如果需要其他內核系統的安裝(Debian/Ubuntu等),請在