3505 Cqoi2014 數三角形

2021-08-04 20:20:02 字數 904 閱讀 7305

題目鏈結

題目大意:給一張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...