DEV C++扩展栈空间
-Wl,--stack=64000000000
带权二分图匹配
建一个超级源点S,超级汇点T
把左边的点的点权作为权值,连一条S到左边的点的边
把右边的点的点权作为权值,连一条T到右边的点的边
跑Dinic
代码技巧
调试信息的处理
fprintf(stderr,"%d ",a);
FILE *f=fopen("gg.debug","w");
fprintf(f,"%d ",gg);
枚举字符串
char s[1000] scanf("%s",s); int l=strlen(s);//不要放在循环里面 for(int i=0;i<l;i++) { do something ;;; }
或者
for(int i=0;s[i];i++)
读入的时候
while(~scanf("%d",&n)) while(cin>>n!=EOF)
并查集防卡
$50%$的概率把p1的父亲设成p2
$50%$的概率把p2的父亲设成p1