标签:blocks ini 水题 提交 正整数 order mat 弧长 div
时间限制: 10 Sec 内存限制: 64 MB
N<= 20
给出圆上n个点之间的距离,求将所有点一一相连后能组成多少个矩形。
BZ千年一遇的大水题呀。。。虽然在CodeVS上提交时惨WA了一次【逃
先读入点i与点i+1的距离,然后算出圆的周长sum【这个以后会有用的
然后二重大暴力算出所有点两两之间(i,j;i<j)的距离。
然后四重枚举四边形的四个顶点,算出答案,完了。
piapiapia代码:
1 uses math; 2 var a:array[0..110,0..110] of longint; 3 var n,i,j,k,l,ans,x,sum:longint; 4 begin 5 readln(n); 6 for i:=1 to n do 7 begin 8 readln(x); 9 a[i,i+1]:=x;//点i与点i+1之间的距离x 10 sum:=sum+x;//求圆周长 11 end; 12 for i:=1 to n do 13 for j:=i+2 to n do 14 a[i,j]:=a[j-1,j]+a[i,j-1];//圆上点两两之间的距离,i+1已知所以不枚举 15 for i:=1 to n do//顶点1 16 for j:=i+1 to n do//顶点2 17 for k:=j+1 to n do//顶点3 18 for l:=k+1 to n do//顶点4 19 if (a[i,j]=a[k,l])and(a[j,k]=sum-a[i,l]) then inc(ans);//两对对边分别相等则inc(ans),注意第4条边要用周长减去前3边的长度总和,因为a[l,i]不可取 20 writeln(ans); 21 end.
标签:blocks ini 水题 提交 正整数 order mat 弧长 div
原文地址:http://www.cnblogs.com/HAdolf-HQY/p/6346848.html