@Cwen-oier
2018-07-30T19:40:31.000000Z
字数 647
阅读 897
一些知识点
1 . kruskal重构树
例题:NOI2018 归程(我的博客有详解)
2 . vector
vector是动态开点的数组,能用数组做的题都能用vector做
下面是vector的一些操作:
- 库 :
#include<vector>
- 定义vector数组 :
vector<存值类型>vec
(存值类型可为int,char,string,long long . etc)- 把元素插入vector尾部 :
vec.push_back(元素)
- 删除尾部元素 :
vec.pop_back()
- 使用下标访问元素 :
cout<<vec[0]<<endl;
(vector数组下标从0开始)使用迭代器访问元素 :
vector<int>::iterator it
//(定义一个指针(???))
for(it=vec.begin();it!=vec.end();++it)
cout<<*it<<endl;
插入一个元素 :
vec.insert(vec.begin()+i,a)
//在下标为i的元素前插入一个元素a,即在第i+1个元素前插入a- 删除一个元素 :
vec.erase(vec.begin()+2)
// 删除下标为2的数,即删除第3个数- 数组大小 :
vec.size()
- 清空数组 :
vec.clear()
- ddd
3 . 差分约束
- 把不等号化为同向,用最短路算法(如SPFA)跑一遍
- 洛谷 P3275 [SCOI2011]糖果