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 作为近似值也是可以过的。。
。。。)
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 出来。。
其实就是下面这 8 种 Pattern …
00 00 01 01 00 11 01 10 10 10 11 11 01 10 00 11
于是这个性质等价于每一行和第一行要么相同要么相反。。。(。。或者说成列满足这个性质也行。。反正满足行的必然也满足列的。。。
。。。于是变成了一个二染色问题。。
。。。字典序最小可以通过逐格枚举的方式得到。。
External link:
https://apps.topcoder.com/wiki/display/tc/SRM+587
https://gist.github.com/lychees/6233770




Alca
Amber
Belleve Invis
Chensiting123
Edward_mj
Fotile96
Hlworld
Kuangbin
Liyaos
Lwins
LYPenny
Mato 完整版
Mikeni2006
Mzry
Nagatsuki
Neko13
Oneplus
Rukata
Seter
Sevenkplus
Sevenzero
Shirleycrow
Vfleaking
wangzhpp
Watashi
WJMZBMR
Wywcgs
XadillaX
Yangzhe
三途川玉子
About.me
Vijos

话说……第一题如何快速判断下面那坨是平行四边形?
我傻逼。。不是平行四边形。。
就是上下两个底和高都一样的三角形拼成的普通四边形。。。)