題目大意:給出n個地點和q個詢問。其中每個地點有距離和權值,每個詢問給出l,r,k,表示在[l,r]區間內不取最小點的情況下任取k個,求所有情況權值之積之和(n,q<=1e5,k<=6)。
能看出來是區間操作,先考慮樹狀陣列,發現維護比較難。於是用線段樹維護。
每個節點記錄7個值,分別為minv和不算minv任取1~6個所得值。dalao的正解用了rmq+容斥,但我都沒用。
#include#includeusing
namespace
std;
#define n 100050
#define ui unsigned int
intn,q;
struct
plap[n];
bool
cmp(pla a,pla b)
struct
segtree
tr[4*n];
segtree
operator *(segtree s0,segtree s1)
ret.mn =min(s0.mn,s1.mn);
ui mx =max(s0.mn,s1.mn);
for(int i=6;i>=2;i--)
ret.v[
1]+=mx;
return
ret;
}void update(int
u)void build(int l,int r,int
u)
int mid = (l+r)>>1
; build(l,mid,u
<<1
); build(mid+1,r,u<<1|1
); update(u);
}segtree query(
int l,int r,int u,int ql,int
qr)}
ui jc[8];
int mi[24
];int findl(int
d)
returna;}
int findr(int
d)
returna;}
intmain()
segtree ans;
ans = query(1,n,1
,l,r);
printf(
"%u\n
",ans.v[k]*jc[k]);
}fclose(stdin);
fclose(stdout);
return0;
}
mysql懶載入 mybatis懶載入
1.概念 懶載入就是按需載入,我們需要什麼的時候再去進行什麼操作。而且先從單錶查詢,需要時再從關聯表去關聯查詢,能很大提高資料庫效能,因為查詢單錶要比關聯查詢多張表速度要快。在mybatis中,resultmap可以實現高階對映 使用association collection實現一對一及一對多對映...
你的斧頭磨利了嗎
美國在幾十年前經濟非常不景氣,所以年輕人的失業率很高。美國 為了提供更多的工作機會,也為了鍛鍊年輕人的體魄,在落磯山裡騰出一塊林地,由年輕人負責伐木。工人並不利用電鋸或其他有效率的工具來砍伐樹木,而是使用傳統的斧頭,以達到強健身體的目的。有一位年輕人經由申請後,來到山里工作。第一天領到斧頭,相當興奮...
路由懶載入與元件懶載入
一 為什麼要使用路由懶載入 為給客戶更好的客戶體驗,首屏元件載入速度更快一些,解決白屏問題。二 定義 懶載入簡單來說就是延遲載入或按需載入,即在需要的時候的時候進行載入。三 使用 常用的懶載入方式有兩種 即使用vue非同步元件 和 es中的import 1 不用懶載入,vue中路由 如下 impor...