0%

牛客练习赛142-C.战前准备

思路讲解

差分做法,只要用差分把所有坏区间都标记出来,剩下的就是不可行的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FOR(i,0,M-2){
for(auto &p:pos[i+1]){
auto it=lower_bound(all(pos[i]),p);
if(it==pos[i].begin()){
diff[1]+=1;
// p+1是可行的(至少从这个p看来)
diff[p+1]-=1;
}else{
it--;ll idx=*it;
diff[idx+1]+=1;
// p+1是可行的(至少从这个p看来)
diff[p+1]-=1;
}
}
}

AC代码

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=78135312

心路历程(WA,TLE,MLE……)