題解:
沒打。。。
ab題滿世界都過了應該沒什麼意思
c題是個比較有意思的思維題(先看了題解才會的。。。)
我們考慮這麼一件事情
沒鑰匙的人出門後
門一定是開著的
他進來的時候,門一定是開著的
其他時候,一定門能關著比較好
但是這個東西並不是很好維護,因為可能重複算
我們考慮重新排個序
我們把a在b前面的那個排在他前面
這樣我們只需要記錄一下上乙個取了沒有就可以了
感覺說出來不是很好理解這個東西。。。
d題還是個有點難度的資料結構題
一件比較顯然的事情是我們對a的操作等價於是要
找當前x修改後是不是字首最大值,以及他能延伸到哪(這個權值線段樹顯然可以維護)
然後就變成了區間覆蓋成乙個值了
然後 剛開始就想錯了。。。
剛開始想的是去考慮這一段的值是怎麼通過原先值變化的
其實這樣反而不好做
直接去暴力統計現在的值
那麼我們要知道的其實就是 當前區間》k的數的個數以及
這玩意我好像只會樹套樹或者cdq分治+排序+線段樹。。。(寫起來挺煩的啊)
於是複雜度就是nlog^2n了
不知道正解是怎麼玩的。。。
**:
c:
#include usingnamespace
std;
#define rint register int
#define il inline
#define rep(i,h,t) for (rint i=h;i<=t;i++)
#define dep(i,t,h) for (rint i=t;i>=h;i--)
const
int n=3000
;const
int inf=1e9;
struct
rea[n],b[n],c1[n],c2[n],p[n];
int pre[n],pos[n],x1[n],x2[n],f[n][n][2
];bool
tt[n];
bool
cmp(re x,re y)
intmain()
sort(a+1,a+n+1
,cmp);
sort(b+1,b+2*n+1
,cmp);
rep(i,
1,n) pos[a[i].pos]=i;
rep(i,
1,n*2)
int cnt=0
; rep(i,
1,n)
if (!tt[i])
}rep(i,
1,n)
rep(j,
0,m)
else
}cout
<1],f[n][m][0
]);
return0;
}
LGR 051 洛谷9月月賽
luogu 給出 k 和質數 m 求最小的 n 使得 111.1 n 個 1 equiv k mod m m le10 0 le k m 把 n 個 1 寫成等比數列求和的形式,不難推出這個式子 10 n equiv9k 1 mod m 所以直接上 bsgs 就行了。應該是不存在無解的情況的,畢竟無...
LGR 054 洛谷10月月賽II
luogu 成功咕掉codeforces round 517的後果就是,我 mbox 依舊沒有寫出來。mbox mbox 為 0 的乘上 mbox 為 1 的就是答案。因為兩個數異或以後二進位制位 1 的個數的奇偶性不會變。至於計算 mbox 預處理到根號,o 1 計算即可。include incl...
LGR 054 洛谷10月月賽II
結論popcnt x y 和popcnt x popcnt y 的奇偶性相同。然後就是popcnt為奇數的乘為偶數的。預處理一下 2 次方以內的popcnt,直接 o 1 算就行。就是求有多少個等差子串行。方程很好寫,f i 表示以 i 結尾的等差子串行個數,f i sum i f j a i a ...