題目鏈結
題目大意:給一張m*n的網格,問這裡面以網格為頂點的三角形有多少個
題解:座標從0開始,所以有(n+1)*(m+1)個點,輸入後n++,m++
不考慮共線的話是c3
n∗m ,然後需要減去橫豎斜三種共線
橫豎明顯是n∗
c3m 和m∗
c3n
下面考慮斜共線
結論:(0,
0)和(i,
j)連線上整點的個數為gc
d(i,
j)+1
(包括(0
,0) 和(i
,j) )
固定點(0,
0),列舉點(i
,j) ,這樣就確定了斜率k,只需要統計k為正的即可(負的可以通過翻轉,0和不存在已經計算過了),考慮所成線段,中間有gc
d(i,
j)−1
個點乘上(n-i)*(m-j),即通過平移能找到多少條這樣的線段
有兩種情況:一種是列舉的(0,0)-(i,j),即從左下角->右上角,還有一種(i,0)->(0,j),即從右下角->左上角,這兩種情況是相同的,最後要乘2
我的收穫:思考方向
#include
#include
#include
#include
#include
#include
using
namespace
std;
int n,m;
long
long ans;
long
long c(int x)
void work()
void init()
int main()
3505 Cqoi2014 數三角形
time limit 10 sec memory limit 128 mb submit 1324 solved 807 submit status discuss 給定乙個nxm的網格,請計算三點都在格點上的三角形共有多少個。下圖為4x4的網格上的乙個三角形。注意三角形的三點不能共線。輸入一行,包...
數三角 題解
分析完整 題目描述 這是乙個數三角的遊戲。長度為1或sqrt 2 的小木棍放在乙個網格上。如圖所示,有水平的,垂直的或對角的。對角放置的木棍可以交叉。將木棍隨意地放在網格上得到的圖案可能不含三角形,也可能含乙個或多個三角形。如下圖所示,輸入格式 輸入檔案count.in包括n 1行 先輸入圖案中木棍...
三角數塔問題
數塔問題 912 15 10 6 8 2 18 9 5 19 7 10 4 16 有形如圖所示的數塔,從頂部出發,在每一結點可以選擇向左走或是向右走,一直走到底層,要求找出一條路徑,使路徑上的值最大。或者是從低往上走,使路徑上的值最大。下面 是從下往上走,要找到從下往上找,用陣列一存就行。inclu...