hang = (n-1)/lie + 1;//等价于 n/lie +(n%lie) ? 1:0;
-
string 作为形参是不会改变原始数的值就好似传整型
-
引用的精髓在于无返回值!就是可以多值改变返回,而return 主要是有复杂的计算
-
hash字符串 在于可以任意快速的去切某个字符串,得其hash 快速判断,s[i+n] - s[i]*p[n]
kmp因为学时莫得next[] 但其错位的地方即 (i-f[i])可用于判断是否为循环节
若是则为 f[i] && ! ( n%(i-f[i]) ) 益于判断最大循环节5.线段树 : https://www.bilibili.com/video/av47331849
6.并查集到底是怎样的人物呢,刚开始是认为是找爸爸,分出不同的派别与团伙;
第二种化看成点几点若可互相达到即为有老大,即判断是否连通,类图思想,切记可不是一对一匹配,即例如此时A,B不能再一起,而其中的A不能与C在一起,并不代表B与C不能再一起! 而如果你用并查集,则B与C也无法在一起!
那么如果要很好的表示两个人的关系,则可以用什么? 邻接表 -
重载运算符
用于struct内
bool operator>=(const point b) const
{
return this->elem >= b.elem;
}
用于struct外
bool operator < (const node &A,const node &B) {
return A.pos > B.pos;
}
8.map 清空
for(map<int,int>::iterator it = he.begin(); it != he.end();)
{
he.erase(it++);
} // it++ 写于第二个分号后就不行
//he.clear();
为什么?因为it在进行++之前会先开个临时变量,而函数操作慢于参数处理,所以it的临时变量++了,然后那个运行完之后,再赋值给it,若写在for后面,则此时it 已经被删,所以此时其为一个非法指针
9.换行不会整,咋搞???scanf("%s")教你做人
10.
//小数先出
priority_queue <int,vector<int>,greater<int> > q;
//大数先出
priority_queue <int,vector<int>,less<int> >q;
- stl跑一遍所有的数
for (auto x:state1) cout<<x;