Colin's Blog

Recent content on Colin's Blog

马上订阅 Colin's Blog RSS 更新: https://blog.oyyko.com/index.xml

压行技巧

finalwind42@gmail.com (Oyyko)
2021年12月16日 08:00

压行技巧

1

1for(init;check;update)2{34}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)2BBB

可以写成

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}

并查集

7