Colin’s Blog

A C++ Programmer

压行技巧

压行技巧

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}

并查集

7