【POJ3263】【差分】Tallest
差分裸題. 引用一下lyd大佬的話
一個簡單而高效的做法是,建立一個數組D,對於每對A,B,令D[A+1]減去1,D[B]加上1. 其含義是:“身高減少1”的影響從A+1開始,持續到B-1到B結束。最後,C就等於D的字首和。
#include<cstdio> #include<algorithm> #include<map> using namespace std; int d[10005],n,k,h,r; map<pair<int, int>, bool>f; int main(){ scanf("%d%d%d%d",&n,&k,&h,&r); for(int i=1;i<=r;i++){ int a,b; scanf("%d%d",&a,&b); if(a>b)swap(a,b); if(f[make_pair(a,b)])continue; d[a+1]--;d[b]++; f[make_pair(a,b)]=1; }int sum=0; for(int i=1;i<=n;i++){ sum=sum+d[i]; printf("%d\n",h+sum); } }
相關推薦
BZOJ 4390 [Usaco2015 dec] Max Flow【LCA與樹上差分】
樹上差分板子: #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define db
LOJ2425 NOIP2015 運輸計劃 【二分+LCA+樹上差分】*
LOJ2425 NOIP2015 運輸計劃 LINK 題意:給你一顆樹,可以將任意一條邊的權值變成0,然後求m條路徑的長度的最小值 思路: 先二分最後的距離ans,然後我們把路程大於ans的所有路徑拿出來 然後把這些路徑的交求出來,用樹上差
BZOJ P1103 「POI2007」大都市meg【dfs序】【樹狀陣列+差分】
#include <queue> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include &
【POJ3263】【差分】Tallest
差分裸題. 引用一下lyd大佬的話 一個簡單而高效的做法是,建立一個數組D,對於每對A,B,令D[A+1]減去1,D[B]加上1. 其含義是:“身高減少1”的影響從A+1開始,持續到B-1到B結束。最後,C就等於D的字首和。 #include<cst
【差分】bzoj 1676 [Usaco2005 Feb]Feed Accounting 飼料計算
每天 序列 scanf 這就是 div algo ret printf 開始 題目的建模意思是什麽呢? 每個奶牛從a點開始吃,從b+1點就停止吃。這就是間接告訴你這兩點組成一個區間,需要差分序列。 之後對差分的序列求前綴和(計算每天的糧草的消耗量), 之後對於消耗的糧
【LCA+樹上差分】天天愛跑步
blog 分支 div fin out 答案 簡單 printf 但是 困擾我半年多的題終於做出來了 一開始我的做法是想在回溯的時候統計答案,但是各個分支之間又會相互影響,然後就不會做了 看完別人的題解後發現用桶的前後狀態做差來統計答案更簡單 1 #include &l
【2017.10.28】noip賽前集訓 | T1 【差分】
none urn algo 技術 mil turn 現在 one 輸入格式 T1 【題目描述】 (求區間疊加最大數)有 n 頭牛,每頭牛有個喝水時間,這段時間它將 . 獨 . 占一個 Stall。現在給出每頭牛 的喝水時間段,問至少要多少個 Stall 才能滿足它們的
bzoj 1651: [Usaco2006 Feb]Stall Reservations 專用牛棚【貪心+堆||差分】
範圍 sort cst tor std 直接 ostream AR pair 這個題方法還挺多的,不過洛谷上要輸出方案所以用堆最方便 先按起始時間從小到大排序。 我用的是greater重定義優先隊列(小根堆)。用pair存牛棚用完時間(first)和牛棚編號(second)
求多個區間合並後區間大小的巧妙解決方法【差分】
\n == 簡單 ace net src space names int 上圖一共有5個區間,分別是[0,2]、[2,4]、[8,11]、[7,11]、[15,18]。如果要求這些區間合並後區間的大小,有兩種簡單的方法。 方法一:比較每兩個區間的範圍,如果兩個
LOJ10131. 「一本通 4.4 例 2」暗的連鎖【樹上差分】
LINK solution 很簡單的題 你就考慮實際上是對每一個邊求出兩端節點分別在兩個子樹裡面的附加邊的數量 然後這個值是0第二次隨便切有m種方案,如果這個值是1第二次只有一種方案 如果這個值是2或者更大沒有方案 然後就可以直接統計答案了 那麼就對每一次查詢的邊 在兩個節點++,lca處
【10.20校內測試】【小模擬】【無向圖建樹判奇偶環】【樹上差分】
Solution 和後面兩道題難度差距太大了吧!! 顯然就只是個小模擬,注意判0就行了。 Code #include<bits/stdc++.h> using namespace std; char s[100005]; int main() {
POJ2155/LNSYOJ113 Matrix【二維樹狀陣列+差分】【做題報告】
這道題是一個二維樹狀陣列,思路十分神奇,其實還是挺水的 題目描述 給定一個N∗NN∗N的矩陣AA,其中矩陣中的元素只有0或者1,其中A[i,j]A[i,j]表示矩陣的第i行和第j列(1≤i,j≤N)(1≤i,j≤N),初始矩陣元素都是0。在矩陣上進行TT次操作,操作有以下兩種: (1)格式為C x1 y
【洛谷P1471】方差 分塊
#include<bits/stdc++.h> using namespace std; #define db double #define N 100005 int n,m,bl[N],t; db a[N],sum1[330],sum2[330],
LOJ #2236. 「JLOI2014」松鼠的新家【樹上差分】
板子題: #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #
【POJ3417】Network【LCA】【差分】
題目大意: 題目連結:http://poj.org/problem?id=3417 一個 n n n
[JLOI2014]松鼠的新家【樹上差分】
Pro QwQ Sol 很裸的一道樹上差分,不過和往常還不太一樣。 根據題目中給出的ai來差分,最後肯定有點被多加了值,所以最後再跑一邊去掉就好。 然而…… 我lca的模板打錯了…… Code #include<iostream> #include
【POJ 3159】 Candies 差分約束系統
題目意思(題意摘抄自其它部落格): flymouse是幼稚園班上的班長,一天老師給小朋友們買了一堆的糖果,由flymouse來分發,在班上,flymouse和snoopy是死對頭,兩人勢如水火,不能相容,因此fly希望自己分得的糖果數儘量多於snoopy,而對於其他小朋友而言
【BZOJ2330】【SCOI2011】糖果——差分約束系統+tarjan
題目連結 差分約束 這是一道經典的差分約束問題 我們假設最後第i個小朋友分得的糖果數為ai,ai∈N∗ 那麼對於約束條件:i分得的糖果少於j的,有ai<aj,由於ai是整數,可以變形為ai⩽aj+(−1) 同樣,對於ai⩽aj也可以看成a
【差分】會場安排問題
很久很久以前的東西了。。那時候是弱菜中的弱菜(現在是弱菜),這篇文章我也不改什麼。。«問題描述:假設要在足夠多的會場裡安排一批活動,並希望使用盡可能少的會場。設計一個有效的貪心演算法進行安排。(這個問題實際上是著名的圖著色問題。若將每一個活動作為圖的一個頂點,不相容活動間用
「洛谷1600」「NOIP2016提高組」天天愛跑步【樹上差分】
題目 給定 nod new nlogn 否則 top class 分享圖片 閑話 為了理清這道題目的思路,我是邊寫博客邊做題的,qwq。 題目鏈接 洛谷 題解 首先對變量進行聲明 dep[i] 表示i號節點的深度,是到根節點的深度 w[i] 表示i號觀測點觀測的時間