压行技巧
压行技巧
1
1for(init;check;update)
2{
3
4}
5XXX
可以改成
1for(init; check || (XXX,0) ; update)
2{
3
4}
2
逗号的用法
1if()
2{
3 AAA;
4 BBB;
5 CCC;
6 return DDD;
7}
可以改成
1if()
2{
3 return AAA,BBB,CCC,DDD;
4}
3
赋值语句和普通表达式的值
1A=func(B);
2printf("%d",A);
可以改为
1printf("%d", A=func(B));
4
短路语句
1if(AAA)
2 BBB
可以写成
1(!AAA)||BBB;
当AAA为假,则短路,不计算BBB
当AAA为真,计算BBB
5
利用for
1for(int i=1;i<=n;i++)
2{
3 for(int j=1;j<=n;j++)
4 printf("%d",a[i][j]);
5 puts("");
6}
可以改为
1for(int i=1;i<=n;i++,puts(""))
2 for(int j=1;j<=n;j++)
3 printf("%d",a[i][j]);
6
综合运用例如
1int find(int x)
2{
3 return fa[x]==x?x:fa[x]=find(fa[x]);
4}
并查集