嘟嘟嘟
二分好題。
怎麼二分呢?反正我是沒想出來。
看了題解。
因為只有乙個為奇數的點,所以對於乙個位置x,求出區間[0, x]的教總和,如果為奇數,說明x取大了;否則x取小了(妙啊)。
雖然答案在int內,但是l + r可能會爆int,導致有幾個點tle了,所以還是都開long long 吧。
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11view codeusing
namespace
std;
12#define enter puts("")
13#define space putchar(' ')
14#define mem(a, x) memset(a, x, sizeof(a))
15#define rg register
16 typedef long
long
ll;17 typedef double
db;18
const
int inf = 0x3f3f3f3f;19
const db eps = 1e-8;20
const
int maxn = 2e5 + 5;21
inline ll read()
2226
while(isdigit(ch))
27if(last == '
-') ans = -ans;
28return
ans;29}
30 inline void
write(ll x)
3136
37int
n;38
struct
node
39t[maxn];
4243
ll calc(ll x)
4451
return
ret;52}
5354
intmain()
5563
while(l
6469 write(l), space, write(calc(l) - calc(l - 1
)), enter;70}
71return0;
72 }
BJWC2008 秦騰與教學評估
傳送門 這道題是一道二分答案題 我估計很難看出這是二分答案 題目要求求出序列中老師為奇數的是哪乙個點。這道題它十分神奇,我們往往都會糾結在如何存下這麼多的點,如何處理老師的站位。但是這些並不是解題的關鍵,我們要注意乙個重點,就是序列中最多只有乙個位置有奇數個老師,這樣的話,我們能知道,包含這個位置的...
AcWing 秦騰與教學評估
第一次在乙個oj上發了篇題解,沒想到他們沒有題解審核機制,直接就出現在題解區了.那裡的markdown在這裡無效,我調了一下再發到這裡儲存一下.二分 時間複雜度 o nlogn 藍書而來.本題重點在於滿足條件的位置只會不存在或者有且僅有乙個,而這個點有乙個特殊性質 人數是奇數.設想 在連續的一段位置...
bzoj1271 秦騰與教學評估
有n個檢查小組,在乙個 0 2 31 1 的區間中檢查,每個小組的分布情況我們這樣描述 s代表起點,e代表終點,d代表從起點開始每隔d個位置安排乙個人到終點結束。詢問整個區間中有沒有乙個位置為奇數個人。有輸出這個位置和位置上的人數,否則輸出 poor qin teng 很機智的方法,用字首和表示奇偶...