题目链接如下:
这道题也是看了刘汝佳的思路才写出来的....
代码如下:
#include <cstdio>
#include <deque>
#include <vector>
#include <algorithm>
#include <map>
const int maxx = 100005;
const int maxColor = 1e9 + 1;
// #define debug
struct node{
int id, color;
node(int _id, int _color): id(_id), color(_color){}
};
int n, m, u, v, c, k, curr, minn;
std::map<int, std::vector<node>> mp;
int d[maxx], pre[maxx], preColor[maxx];
bool vis[maxx];
void bfs1(){
std::deque<int> dq;
dq.push_back(n