这个sb题目,剧毒。。。

首先,我准备用经典的线段树优化扫描线来做。之前的矩形周长把我困了数天导致我胸有成竹。

然后,敲代码半小时,调试半个月......这个,sb,怎么改都是0分+2个RE...

然后我爆炸了,请胡雨菲来帮忙。他还是提议我用set做。然后就set了...

跑的贼慢,不过90分,第八个点日常RE...

但是了解了一点set的用法,让我慢慢道来(嘿)

首先,可以看这个博客。

我自己的理解:

1,这是一种功能有限的搜索树。

2,它有序,资瓷插入删除,但是缓慢

3,这东西是返回指针的。

然后,反正这个set很naive就是了。

看下面一段代码:

 

 1 #include <cstdio>
 2 #include <set>
 3 using namespace std;
 4 set<int>s;
 5 int main()
 6 {
 7     s.insert(22);
 8     s.insert(24);
 9     s.insert(32);
10     s.insert(15);
11     printf("%d\n",*s.end());
12     printf("%d\n",*s.rbegin());
13     return 0;
14 }
set用法①

 

输出:

4

32

 

好,大致理解了吧。

 

 1 #include <cstdio>
 2 #include <set>
 3 using namespace std;
 4 set<int>s;
 5 int main()
 6 {
 7     s.insert(22);
 8     s.insert(24);
 9     s.insert(32);
10     s.insert(15);
11     set<int>::iterator iter;
12     for(iter=s.begin();iter!=s.end();iter++) printf("%d ",*iter);
13     printf("\n");
14     s.erase(24);
15     for(iter=s.begin();iter!=s.end();iter++) printf("%d ",*iter);
16     s.erase(s.find(22));
17     printf("\n");
18     for(iter=s.begin();iter!=s.end();iter++) printf("%d ",*iter);
19     return 0;
20 }
set用法②

相关文章:

  • 2021-10-24
  • 2021-07-28
  • 2021-11-28
  • 2021-06-29
  • 2021-09-28
  • 2022-01-17
猜你喜欢
  • 2021-07-25
  • 2021-05-08
  • 2022-12-23
  • 2022-02-08
  • 2022-12-23
  • 2021-07-27
相关资源
相似解决方案