某岛

… : "…アッカリ~ン . .. . " .. .
August 15, 2013

SRM 587

550. TriangleXor

Brief description:

。。。求下图所示 Pattern 的面积。。

Analysis:

。。。这么简单的题都没过。。。玛德。。我是 ,b 么?。。。
。。像上图那样分三种情况讨论。。。。设宽度为 w。。那么整个矩形的面积也是 w。。。。上面部分显然是 w/4。。?。。
。。。左边部分的每个小块。。就是底边在左侧的相邻的两个三角形面积的差。。左侧三角形的面积又只和一条对角线和对面的第 ith 条斜线的交点的横坐标有关。。

。。。而这两个方程显然就是。。。就是。。/$:o~o

DB y(int i){return (DB)i/(i+w);}
DB x(int i){return y(i)*w;}

。。。最后底下一堆平行四边形一行一行的解决就行了。 。。。。。。
。。。(。。。底下图形的极限。。是 w/8。。。在本题中你取 w/8 作为近似值也是可以过的。。/$:o~o。。。)

DB w;
DB y(int i){return (DB)i/(i+w);}
DB x(int i){return y(i)*w;}

class TriangleXor {
public:
	int theArea(int W) {

        DB res = 0; w = W;

        if (~W&1) res += w/4;

        for (int i=1;i<=W;i+=2){
            res += x(i)-x(i-1);
        }

        //res += w/8;
        for (int i=1;i<=W;i+=2){
            res += (W-2*x(i)) * (y(i+1)-y(i-1))/2;
        }

		return res;
	}
};

900. ThreeColorability

Brief description:

。。。。给定一个边长为 n*m 的矩形格点。。
。。对每一个小矩形有一个对角线的连接方式。。有些已经确定。。有些没有。
。。问是否存在一种对角线的连接方案。。。使得格点可以三染色。。如果存在。。输出字典序最小的解。。。

Analysis:

。。。Div 2 的版本。。只有判定问题。。。
。。。。。只要注意让所有 2×2 的子格点都合法就行了。。。(必要性显然。。充分性可以 yy 出来。。/$:o~o

其实就是下面这 8 种 Pattern …

00 00 01 01
00 11 01 10

10 10 11 11
01 10 00 11

于是这个性质等价于每一行和第一行要么相同要么相反。。。(。。或者说成列满足这个性质也行。。反正满足行的必然也满足列的。。。
。。。于是变成了一个二染色问题。。/$:o~o。。。字典序最小可以通过逐格枚举的方式得到。。

External link:

https://apps.topcoder.com/wiki/display/tc/SRM+587
https://gist.github.com/lychees/6233770