313 条题解
-
0LehrLukas LV 7 @ 2009-11-01 13:48:40
-
02009-10-30 22:41:57@
#include
using namespace std;
main(){
const float pi=3.1415926;
int n,i;
float s,r
scanf ("%d",&n);
scanf ("%f",&r);
struct point s{
float x;
float y;
}a[100];
for(i=0;i -
02009-10-29 13:24:47@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Accepted 有效得分:100 有效耗时:0ms
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
***|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\|
***|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\***|\|
program ex;
var n,i:longint;
r,z:real;
a,b,c:array[1..100] of real;
begin
readln(n,r);
for i:=1 to n do
begin
readln(a[i],c[i]);
end;
for i:=2 to n do
begin
b[i]:=sqrt(sqr(a[i]-a)+sqr(c[i]-c));
z:=z+b[i];
end;
z:=z+(3.141592653*2*r)+sqrt(sqr(a[1]-a[n])+sqr(c[1]-c[n]));
writeln(z:0:2);
end.
***|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\***|
***|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**| -
02009-10-27 23:00:57@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
够水的…………
第一次直接在记事本里AC…… -
02009-10-27 00:38:28@
无聊题。。适合kill time。。。
很显然,由于绳子都外切于每个钉子,所以相切的曲面长度之和等于一个钉子的圆周,所以答案就等于凸多边形边长+一个钉子圆周。。以下是13行程序:
const pi=3.1415926;
var n,i:longint;
r,ans:extended;
x,y:array[1..100] of extended;
begin
readln(n,r);
for i:=1 to n do readln(x[i],y[i]);
x[n+1]:=x[1]; y[n+1]:=y[1];
for i:=2 to n+1 do
ans:=ans+sqrt(sqr(x[i]-x)+sqr(y[i]-y));
ans:=ans+2*pi*r;
writeln(ans:0:2);
end. -
02009-10-26 22:50:18@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-10-25 10:35:17@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms这么简单 ,写不开是煞笔阿
-
02009-10-18 16:42:55@
#include "stdio.h"
#include "math.h"
#define PI 3.14159265
int main()
{
int n=0;
int r=0;
int i=1;
float length=0;
float m=0;
float sum=0;
float a[100][100]={0};
float len[100]={0};
printf("pls input N and R");
scanf("%d %d",&n,&r);
for(i=1;i -
02009-10-11 20:39:16@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
TMD 一开始不知道,把PI定义了16位-_-,囧!
#include
#include
#define PI 3.1415926535897932
using namespace std;
double far (double x1,double y1,double x2,double y2) {
return sqrt(pow(x1-x2,2)+pow(y1-y2,2));
}//far
int main () {
int n,i;
double r,ans=0.0;
scanf("%d%lf",&n,&r);
double x[n],y[n];
scanf("%lf%lf",&x[0],&y[0]);
for (i=1;i -
02009-10-23 13:37:47@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
a,i,n:integer;
b,len,length,r:real;
x,y:array[1..100] of real;
begin
readln(n,r); length:=0;
for i:=1 to n do readln(x[i],y[i]);
for i:=2 to n do begin
if (x[i]=x) or (y[i]=y) then begin
if (x[i]=x) then len:=abs(y[i]-y);
if (y[i]=y) then len:=abs(x[i]-x);
length:=length+len;
end else begin
len:=sqrt((x[i]-x)*(x[i]-x)+(y[i]-y)*(y[i]-y));
length:=length+len;
end;
end;
if (x[1]=x[n]) or (y[1]=y[n]) then begin
if (x[1]=x[n]) then len:=abs(y[1]-y[n]);
if (y[1]=y[n]) then len:=abs(x[1]-x[n]);
length:=length+len;
end else begin
len:=sqrt((x[n]-x[1])*(x[n]-x[1])+(y[n]-y[1])*(y[n]-y[1]));
length:=length+len;
end;
if n>2 then a:=(n-2)*180-n*180 else a:=360;
b:=abs((a-a div 360*360)/360*r*2*3.1415926);
len:=abs((a div 360)*3.1415926*2*r);
length:=length+len+b;
writeln(length:0:2);
end. -
02009-10-07 20:52:18@
很简单的凸包
-
02009-10-06 22:06:16@
没看懂题目 直接看题解了
-
02009-10-03 13:39:59@
#include
#include
#define pi 3.1415926
int i,n,t;
double c,r,length;
double x[101],y[101];
int main()
{
scanf("%d%lf",&n,&r);
for(i=1;i -
02009-10-02 11:41:19@
注意……PI的位数要长一些。
否则可恶的PASCAL浮点会让你崩溃。
pi:=3.1415926 -
02009-09-27 10:38:44@
var n,i:integer;r,c,sum,s,a,b:real;x,y:array[1..100] of real;
begin
readln(n,r);
for i:=1 to n do
readln(x[i],y[i]);
x[n+1]:=x[1];y[n+1]:=y[1];
for i:=1 to n do
begin
s:=sqrt(sqr(abs(x[i]-x))+sqr(abs(y[i]-y)));
sum:=sum+s
end;
sum:=sum+2*pi*r;
write(sum:0:2);
end. -
02009-09-27 09:38:55@
program shen;
var i,j,n,k,l,o,p:longint;
a,b,c:array[1..1000] of real;
q,w,e,m:real;
begin
read(n,m);
if n=1 then begin q:=3.1415926*2*m; writeln(q:0:2);halt;end;
for i:=1 to n do
readln(a[i],b[i]);
for i:=1 to n-1 do
q:=sqrt(sqr(a[i]-a)+sqr(b[i]-b))+q;
q:=sqrt(sqr(a[n]-a[1])+sqr(b[n]-b[1]))+q;
q:=q+(3.14159260*2*m);
writeln(q:0:2);
end. -
02009-09-23 12:53:48@
没见过这么水的题
var i,j,n,k,l,o,p:longint;
a,b,c:array[1..1000] of real;
q,w,e,m:real;
begin
read(n,m);
if n=1 then begin q:=3.1415926*2*m; writeln(q:0:2);halt;end;
for i:=1 to n do
readln(a[i],b[i]);
for i:=1 to n-1 do
q:=sqrt(sqr(a[i]-a)+sqr(b[i]-b))+q;
q:=sqrt(sqr(a[n]-a[1])+sqr(b[n]-b[1]))+q;
q:=q+(3.14159260*2*m);
writeln(q:0:2);
end. -
02009-09-22 23:19:31@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include
#include
int main ()
{
int i,j,k,n;
float sum=0,a[100]={0.0},r,b[100]={0.0},pi=3.141;
scanf("%d%f",&n,&r);
scanf("%f%f",&a[1],&b[1]);
for(i=2;i -
02009-09-22 19:28:44@
program p;
cinst
pi=3.1415926;
var
n,i:integer;
r,s:real;
x,y:array[1..111] of real;
function dist(x1,y1,x2,y2:real):real;
begin
dist:=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
end;
begin
readln(n,r);
s:=0;
for i:=1 to n do readln(x[i],y[i];
x[n+1]:=x[1];y[n+1]:=y[1];
for i:=1 to n do
s:=s+dist(x[i],y[i],x,y;
s:=s+2*pi*r;
writeln(s:2:2);
end. -
02009-09-21 22:27:51@
Const
Pi=3.1415926;
Var
N,i:integer;
R,S:real;
x,y:array[1..111] of real;Function Dist(X1,Y1,X2,Y2:Real):Real;
Begin
Dist:=(X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2);
Dist:=Sqrt(Dist);
End;Begin
Readln(N,R);
s:=0;
for i:=1 to n do readln(x[i],y[i]);
x[n+1]:=x[1];y[n+1]:=y[1];
for i:=1 to n do
s:=s+Dist(x[i],y[i],x,y);
S:=S+2*Pi*R;
Writeln(s:2:2);
End.So Easy!!
就是各个点距离之和加上一个半径为R的圆的周长,
一次AC