BZOJ1800飛行棋題解 zhengjun

2021-10-02 16:21:53 字數 1011 閱讀 6994

description

給出圓周上的若干個點,已知點與點之間的弧長,其值均為正整數,並依圓周順序排列。 請找出這些點中有沒有可以圍成矩形的,並希望在最短時間內找出所有不重複矩形。

input

第一行為正整數n

nn,表示點的個數,接下來n

nn行分別為這n

nn個點所分割的各個圓弧長度

output

所構成不重複矩形的個數

看圖可知,每乙個長方形相對的點在圓弧上總是處於同一條直徑上(就是在對面),樣例就一共有3組(1和5,2和6,4和8),而矩形需要兩條對角線,也就是兩組相對的點,因為不能重複,所以就是3個選2個的組合,一共有3個,答案就出來了!

#include

using

namespace std;

inline

void

read

(int

&x)//我愛快讀

while

(c>=

'0'&&c<=

'9')

}int n;

int f[

1000039

],a[50]

,ans,sum=0;

intmain()

for(

int i=

1;i<=n;i++

) cout<<

(ans-1)

*ans/2;

//組合函式

return0;

}

BZOJ 1800 飛行棋(數學水題)

題目描述 題解 長方形四角為直角,在圓中的性質很顯然就是對角線為圓的直徑。暴力找到所有的直徑然後兩條直徑構成乙個矩形直接算出來就好了。include include include include includeusing namespace std define rep i,j,k for int...

fly 飛行棋 HYSBZ 1800 水題

time limit 10 sec memory limit 64 mb submit 760 solved 617 submit status 給出圓周上的若干個點,已知點與點之間的弧長,其值均為正整數,並依圓周順序排列。請找出這些點中有沒有可以圍成矩形的,並希望在最短時間內找出所有不重複矩形。第...

騎士飛行棋

include include include include int map 110 bu 1000 char str 4 20 struct node a 3 void f strcpy a 2 name,str m printf 玩家2選擇了 s n n a 2 name printf 人物選...