313 条题解
-
0虎视眈眈 LV 4 @ 2009-06-07 20:15:19
program zsr4;
const
y=3.14159;
var
n,i,j:longint; r,z,l:real;
a:array[1..101,1..2]of real;
begin
readln(n,r);
for i:=1 to n do readln(a,a);
a[n+1,1]:=a[1,1];a[n+1,2]:=a[1,2];
for i:=1 to n do begin
l:=sqrt(sqr(abs(a-a))+sqr(abs(a-a)));
z:=z+l;
end;
l:=2*r*y;
z:=z+l;
writeln(z:0:2);
end. -
02009-06-06 07:55:50@
很水很水很水
话说PASCAL里面用Pi就行
-
02009-06-05 13:53:35@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram abcd;
var
d,n:integer;
r,v,z:real;
x,y:array[1..100] of real;
begin
read(n,r);
v:=r * 2 * 3.1415926;
for d:=1 to n do
read(x[d],y[d]);
z:=0;
for d:=1 to n do begin
if d n then begin
z:=z + sqrt(sqr(x[d]-x[d+1]) + sqr(y[d]-y[d+1]));
end;
if d = n then
z:=z + sqrt(sqr(x[d]-x[1]) + sqr(y[d]-y[1]));
end;
writeln(z+v:0:2);
end.---|---|---|---|---|---|
泪~ 开始忘了输出时:0:2
然后开始v:=r*2*3.1415926写成 v:=r*2*3.14我的AC率啊~
-
02009-06-03 12:11:37@
var
a:array[0..26,0..26]of char;
i,j,k,l,m,o,p,n,r,s,t,u,v,w:longint;
b:array[0..26,0..26]of 0..1;procedure dfs(x,y:integer);
var i,j,k:longint;
begin
if a[x,y]='m' then begin if s-1=t then exit;
if (a[x+1,y]='.')and(b[x+1]=0) then begin
s:=s+1;
b[x+1,y]:=1;
dfs(x+1,);
s:=s-1;
b[x+1,y]:=0;
end;
if (a[x-1,y]='.')and(b[x-1,y]=0) then begin
s:=s+1;
b[x-1,y]:=1;
dfs(x-1,y);
s:=s-1;
b[x-1,y]:=0;
end;
if (a[x,y+1]='.')and(b[x,y+1]=0) then begin
s:=s+1;
b[x,y+1]:=1;
dfs(x,y+1);
s:=s-1;
b[x,y+1]:=0;
end;
if (a[x,y-1]='.')and(b[x,y-1]=0) then begin
s:=s+1;
b[x,y-1]:=1;
dfs(x,y-1);
s:=s-1;
b[x,y-1]:=0;
end;
if (a[x-1,y]='#')and(b[x-1,y]=0) then begin
s:=s+2;
b[x-1,y]:=1;
dfs(x+1,y);
s:=s-2;
b[x-1,y]:=0;
end;for i:=1 to m do
begin
for j:=1 to n do
read(a);
readln;
end;
for i:=1 to m do
for j:=1 to n do
if a='s' then dfs(i,j);
if min -
02009-05-16 21:45:39@
错哪了
#include
#include
double work(double a, double b, double c, double d)
{
double s;
s=sqrt((a-c)*(a-c)+(b-d)*(b-d));
printf ("%lf\n",a);
return s;
}int main()
{
int n,i,j;
double lear,p=3.1416,r;
scanf ("%d%lf",&n,&r);
int xy[n+1][3];
lear=2*r*p;
scanf ("%lf%lf",&xy[1][1],&xy[1][2]);
for(i=2;i -
02009-05-13 23:27:22@
坐标数据已经按照逆时针给出,无需再排序.
注意闭环: 即计算x0,y0到xn, yn的距离.
本题最终将求和理解为距离之和.
最后加上钉子的周长: 可以理解为绳子绕钉子一圈过程中紧贴钉子,弧度部分相当于绳子在柱子上绕一圈. -
02009-05-08 20:50:06@
这道题目变态!题意不清!!!!!!!!!!!!!!!!!!!!!!!
-
02009-05-02 18:30:10@
用坐标之间的距离+圆的周长就行了,太简单了!
-
02009-04-24 20:39:17@
第三个错误为什么呀
#include "stdio.h"
#include "math.h"int main()
{
double rad,//半径
cir = 0,//绳子长
pi = 3.1416;
int n,
ix;
double x0,
x1,
x2,//存放很坐标
y0,
y1,
y2;//存放纵坐标
scanf ("%d%lf" , &n , &rad);
scanf ("%lf%lf" , &x0 , &y0);
x1 = x0;
y1 = y0;
for (ix=1 ; ix -
02009-04-19 12:54:16@
const pi=3.14159265375; shuru='shuru.in';shuchu='shuchu.out';
var a:array[1..100]of record
o:double;
t:double;
end;r,sum,sum2,s1,s2,jj:double; n,i,ii,j:longint;
begin
readln(n,r);
for i:=1 to n do readln(a[i].o,a[i].t);
sum:=sum+2*pi*r;
if n1 then begin
for i:=1 to n do begin
if i=n then ii:=1 else ii:=i+1 ;
s1:=(a[ii].o-a[i].o)*(a[ii].o-a[i].o);
s2:=(+a[ii].t-a[i].t)*(+a[ii].t-a[i].t);
sum2:=s1+s2;
sum:=sum+sqrt(sum2);
end;
end; -
02009-04-12 16:55:57@
program zsr4;
const
y=3.14159;
var
n,i,j:longint; r,z,l:real;
a:array[1..101,1..2]of real;
begin
readln(n,r);
for i:=1 to n do readln(a,a);
a[n+1,1]:=a[1,1];a[n+1,2]:=a[1,2];
for i:=1 to n do begin
l:=sqrt(sqr(abs(a-a))+sqr(abs(a-a)));
z:=z+l;
end;
l:=2*r*y;
z:=z+l;
writeln(z:0:2);
end. -
02009-04-02 22:15:54@
所求绳子长度等于所有钉子中心点距离之和加上一个钉子的周长,小学水平的数学题。
一开始超倒霉readln(x[i],y[i])写成readln(x[n],y[n])
提交了N次都没发现……
var x,y:array [1..100] of real;n,i:byte;ans,r:real;
begin
readln(n,r);
for i:=1 to n do readln(x[i],y[i]);
for i:=1 to n-1 do
ans:=ans+sqrt(sqr(x-x[i])+sqr(y-y[i]));
ans:=ans+sqrt(sqr(x[1]-x[n])+sqr(y[1]-y[n]))+r*3.1415926*2;
writeln(ans:0:2);
end. -
02009-03-21 02:15:24@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案错误...程序输出比正确答案长
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:83 有效耗时:0ms
输出格式打错,WA……
改后:AC
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms(我的AC率%>_
-
02009-03-16 19:18:51@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:运行时错误...| 错误号: 106 | 无效数字格式
├ 测试数据 04:运行时错误...| 错误号: 106 | 无效数字格式
├ 测试数据 05:运行时错误...| 错误号: 106 | 无效数字格式
├ 测试数据 06:运行时错误...| 错误号: 106 | 无效数字格式
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:33 有效耗时:0ms
?????????????????????????
无效数字格式???????????? -
02009-03-15 12:50:16@
program pro_1007;
type zb=record
x:real;
y:real;
end;
var
n,i:integer;
r:double;
a:array [1..100] of zb;
tot:double;
begin
readln(n,r);
for i:=1 to n do begin read(a[i].x,a[i].y);readln;end;
if n=1 then tot:=2*3.14159265*r;
if n=2 then tot:=sqrt(sqr(a[1].x-a[2].x)+sqr(a[1].y-a[2].y))*2+2*3.14159265*r;
if n>=3 then begin
tot:=2*3.14159265*r;
for i:=1 to n-1 do tot:=tot+sqrt(sqr(a[i].x-a.x)+sqr(a[i].y-a.y));
tot:=tot+sqrt(sqr(a[1].x-a[n].x)+sqr(a[1].y-a[n].y));
end;
writeln(tot:0:2);
end. -
02009-02-22 21:27:32@
这道题只需求两点间距离的总和再加上一个对应半径的圆就是绳子的总长了,具体数学证明略
-
02009-02-18 15:58:49@
#include
#includemain()
{
float X[101];
float Y[101];
float L=0;
float R;
int i,j,n;
scanf("%d",&n);
scanf("%f",&R);
for(i=1;i -
02009-02-16 00:21:41@
#include
#include
using namespace std;int main()
{
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
const double pi=3.1415;
int n,i;
double r,l;
cin >> n >> r;
double a[n],b[n];
for (i=0;i> a[i] >> b[i];
l=pi*r*2;
if (n==1)
cout -
02009-02-05 09:34:02@
program Project1;
var s1,s2,k:array[1..100] of real;
n,i:integer;
r,a:real;
begin a:=0;
readln(n,r);
for i:=1 to n-1 do
readln(s1[i],s2[i]);
for i:=1 to n do
begin k[i]:=sqrt(sqr((s1-s1[i]))+sqr((s2-s2[i])));a:=a+k[i];
end;
a:=a+3.141592658*2*r;
write(a:0:2);end.
-
02009-02-02 23:41:42@
……囧 按顺序求和吧