聽說這個東西有很多種寫法什么的,來不及了(要退役了),先整一個之前用到的,可能用到的頻率比較高的東西上來。
struct node{ ll x,y; }; bool operator < (const node& a,const node& b) { if(a.x<b.x) return true; else if(a.x==b.x&&a.y<b.y) return true; else return false; }
這種寫法是當時要定義一個什么
map<node,int> vis;
然后$map$里面是紅黑樹(所以$map$也自帶排序來着),這里結構體的小於號要重載,或者給優先隊列定義一個比較法則,否則會$CE$。
由於$vis$只是一個標記數組,所以沒有管排序是從小到大還是從大到小什么的。