fly 飛行棋 HYSBZ 1800 水題

2021-06-22 21:39:14 字數 755 閱讀 8174

time limit: 10 sec  

memory limit: 64 mb

submit: 760  

solved: 617 [

submit][

status]

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

第一行為正整數n,表示點的個數,接下來n行分別為這n個點所分割的各個圓弧長度

所構成不重複矩形的個數81

2231

1333

n<= 20

思路:暴力即可。

ac**如下:

#include#include#include#include#includetypedef long long ll;

using namespace std;

int num[30],n;

int solve(int a,int b)

int main()

for(i=1;i<=n;i++)

for(j=i+1;j<=n;j++)

for(k=j+1;k<=n;k++)

for(p=k+1;p<=n;p++)

if(solve(j,i)==solve(p,k) && solve(k,j)==solve(i,p))

ans++;

printf("%d\n",ans);

}

BZOJ1800飛行棋題解 zhengjun

description 給出圓周上的若干個點,已知點與點之間的弧長,其值均為正整數,並依圓周順序排列。請找出這些點中有沒有可以圍成矩形的,並希望在最短時間內找出所有不重複矩形。input 第一行為正整數n nn,表示點的個數,接下來n nn行分別為這n nn個點所分割的各個圓弧長度 output 所...

BZOJ 1800 飛行棋(數學水題)

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

騎士飛行棋

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 人物選...