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