有 \(n\) 組防具。第 \(i\) 個防具會標記在區間 \(\[s_i,e_i\]\) 中模 \(d_i\) 的值是 \(s_i\bmod d_i\) 的位置。求哪個位置被標記了奇數次。
我們可以考慮二分。那麼找一下題目中隱藏的單調性。
可以發現,我們可以用一段區間的標記總值作為 key,比如當前二分到 \([l,r]\),我們可以先判斷 \([l,mid]\) 的是否為奇數。如果是,則縮短範圍到 \([l,mid]\);若不是,說明 \([mid+1,r]\) 必有一點是奇數,則縮小範圍至 \([mid+1,r]\)。
const int n = 2e5 + 10;
int t, n;
ll a[n][3];
ll calc(ll r)
return ans;
}bool check (ll l, ll r)
int main()
if (!check(l, r))
while (l <= r)
printf ("%lld %lld\n", l, calc(l) - calc(l - 1));
} return 0;
}
貪心 Ybt 防具布置
設 k ik i ki 為從 0 i0 i 0i的防具的多少。由於題目中說到,整個防線上只可能有乙個破綻。所以輸入的防線如果有破綻,則 k 0k 0 k0 k ik i ki 全是偶數,k ik i ki 後全是奇數。二分破綻點即可。如果沒有破綻,則 k kk 全是偶數。include includ...
B 例題2 防具布置
第一眼看題目,壓根就沒去想要用二分,但看到是在二分這個章節中才去用二分去想 不說廢話了,進入正題 首先 二分因先考慮二分什麼 二分看破綻是在前面還是在後面 插播一條訊息 由於,破綻只有乙個,也就是說整個陣列中 每個位置的防具的個數的那個陣列 只有乙個為奇數,則其他的都為偶數 那就可以用字首和判斷破綻...
攻防具體實踐(1)
一 kali linux黑掉windowsxp 1.首先,在kali用命令 msfconsole 開啟metasploit。2.然後執行如下命令 useexploit windows smb ms08 067 netapi 使用ms08067漏洞攻擊程式set lhost 192.168.234.1...