在拓扑排序这个过程中:
你在保证糖果为整数的时候可能选择在入度为0的点保证为1
就像这样
for(int i=1;i<=color_num;i++){
if(in[i]==0){
dis[i]=1;
q.push(i);
ins[i]=true;
}
}
不妨设置一下源点0号小朋友,并要求所有的人的糖果都要多于0号的
就像这样
for(int i=1;i<=color_num;i++){
dag[0].push_back((node){i,0});
}
q.push(0);
ins[0]=true;
(node){i,0}中的0是表示不能取等
尽管我还并不知道为什么,但是确实能70pts->100pts