kadj squares題意:不斷加45°角站立的正方形,在互不相交的情況下,使得每個正方形底端點盡量靠左,求在上方視角可以看到的正方形編號
解法:l[i] r[i] x[i] 分別表示 i正方形的左端點、右端點、邊長
因為每個新正方形 i 總會和另外乙個正方形 j 的一條邊重合,由此可計算新正方形左端點座標l= r[j]-fabs(x[i]-x[j])/sqrt(2)
每加乙個正方形,和之前所有正方形列舉計算出l 取所有l中的最大值,是合法情況 且 是最優解
其次求更新每個正方形之間的覆蓋影響
i 正方形 對前面 j 正方形的影響:
1.若x[j]2.若x[j]>x[i] 則 j 正方形 在 i 正方形上方,更新 i 正方形有效端點
更新完後,若 i 正方形 可見範圍 >0 ,則可見,輸出
#include #include #include #include #include #include #include #include #include #include #include #include #define down down
using namespace std;
double x[55];
double l[55],r[55];
double g=sqrt(double(2));
int main()
}} for(int i=0;i1e-10)
else printf(" %d",i+1);
}}
printf("\n");
}}
Kadj Squares 計算幾何思維
題意 給你幾個正方形的邊長,把這些正方形按順序放入直角座標系的第一象限,其中邊長與x y軸成45度角。可以有重合邊,但不能有重合面積。問從 y 軸上方看可以看到那些正方形。思路 先確定每個正方形的左右端點,再判斷那些正方形被覆蓋。include include include using names...
C White Sheet 思維 幾何基礎
思路 需要轉化成白塊與兩塊黑的 的總面積,為了處理兩個黑的重疊面積,然後白塊去掉其重複部分,再比較白與黑的總相交面積是否達到白塊的面積 include include include include include include include include include define deb...
UVALive 5873 (幾何 思維)
唉 被秀了。還是太弱,說好的數形結合呢,列個式子出來後就被嚇到了,然後就懵逼了。題意 有一條狗,從原點出發,沿n個向量走,每個向量只走一次,沿著乙個向量 x,y 走時,既可以往 x,y 方向走,也可以往 x,y 方向走。然後問這條狗離原點最遠的距離。如果寫成方程 n個向量分別表示為 x1,y1 x2...