215 条题解
-
0wan1238 LV 7 @ 2009-10-29 12:54:34
//求出平均数 把逐个的数字与平均数相比,如果比平均数大 则减去平均数 把这个差植移
//到后面这个数上 如果这个数字比平均数小的话 ,则加上数达到平均数, 把这个加到的数
//用后一位的数想减,依次类推,直到完成,次数则是用了加减运算的才算一次。
program vj1123;//均分纸牌
var
b,x,n,t,d:longint;
a:array[1..100] of longint;
begin
readln(n);
for x:=1 to n do
begin
read(a[x]);
b:=b+a[x];
end;
b:=b div n;
for x:=1 to n-1 do
begin
if a[x]b then
if a[x]b then
begin
d:=a[x]-b;
a[x]:=b;
a[x+1]:=d+a[x+1];
t:=t+1;
end;
end;
write(t);
end. -
02009-10-28 20:08:04@
测试数据不行哦!! 在vijos上
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms在noi题库上只有50分!!
program cmove;var i,j,m,n,step:integer;
ave:longint;
a:array[1..100]of longint;begin
read(n);
for i:=1 to n do
begin
read(a[i]);
inc(ave,a[i]);
end;
ave:=ave div n;
for i:=1 to n do
a[i]:=a[i]-ave;for i:= 1 to n do
if (a[i]0) then
begininc(a,a[i]);
a[i]:=0;
inc(step);
end;
writeln(step);
end. -
02009-10-27 17:01:02@
水题...
纯贪心...
但是为什么贪心法则成立?
==========================^^^^^^^^^^^^^^^^^^^^===================
#include
int p[100]={0};
int main()
{
int n;
long int tot=0;
long int y=0;
int a;
scanf("%d",&n);
for(a=0;a -
02009-10-23 20:07:24@
water waterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwaterwater
NOI -
02009-10-19 21:43:41@
就是贪心了
但是为什么贪心法则成立?
-
02009-10-14 22:41:21@
贪心的经典水题,不用去管正负~~~
var
n:longint;
a:array[1..100] of longint;
i,j,k,s,ans:longint;
begin
readln(n);
s:=0;ans:=0;
for i:=1 to n do begin read(a[i]);s:=s+a[i]; end;
k:=s div n;
for i:=1 to n-1 do
if a[i]k then
begin
a:=a+a[i]-k;
inc(ans);
end;
writeln(ans);
end.
30题小庆祝:) -
02009-10-12 13:55:48@
#include
int main()
{
long int a[101]={0};
int n,i,s=0,k=0;
scanf("%d",&n);
for(i=1;i -
02009-10-11 10:41:23@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram p1123;
var
a,f:array[0..100]of longint;
n,s,x,i,t,m:longint;
begin
readln(n);
s:=0;
for i:=1 to n do
begin
read(a[i]);
inc(s,a[i]);
end;
x:=s div n;
for i:=1 to n do
begin
if a[i]x then
if in then
begin
t:=a[i]-x;
a[i]:=x;
a:=a+t;
m:=m+1;
end
else begin
t:=a[i]-x;
a[i]:=x;
a:=a+t;
end;
end;
writeln(m);
end. -
02009-10-10 19:39:59@
为什么
Var
n,s,t,i:longint;
a:array[1..10000] of longint;
Begin
readln(n);
for i:=1 to n do
begin
read(a[i]);
s:=s+a[i];
end;
s:=s div n;
for i:=2 to n do
begin
if as then
begin
a[i]:=a[i]+a-s;
inc(t);
end;
end;
writeLn(t);
End.
100 分
而
Var
n,s,t,i:longint;
a:array[1..10000] of longint;
Begin
readln(n);
for i:=1 to n do
begin
read(a[i]);
s:=s+a[i];
end;
s:=s div n;
for i:=1 to n-1 do
begin
if a[i]s then
begin
a:=a+a[i]-s;
inc(t);
end;
end;
writeln(t);
End.
只有 60 分???????????? -
02009-10-08 21:50:43@
⊙﹏⊙b汗
一激动把1008的代码交上去了
话说这题太水了……贪心,从前往后算次数,不管移的正负 -
02009-10-04 23:59:36@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include
using namespace std;
int ans,a[101],tem,sum,n,s;
int main()
{
cin>>n;
for(int i=1;i>a[i];
sum+=a[i];
}
tem=sum/n;
for(int i=1;i -
02009-10-04 22:02:54@
稍一分析,发现,好水!
-
02009-09-22 13:09:44@
var a:array[1..100] of integer;
p,s:longint;
i,j,n:integer;
m,t:integer;
begin
readln(n);
for i:=1 to n do begin
read(a[i]);
s:=s+a[i];
end;
p:=s div n;
for i:=1 to n do
begin
if a[i]p then
if in then begin t:=a[i]-p;a[i]:=p;a:=a+t;m:=m+1;end
else begin t:=a[i]-p;a[i]:=p;a:=a+t;end;
end;
writeln(m);
end. -
02009-09-18 21:07:10@
-
02009-09-18 14:17:26@
注意是定义是长整形…………其他就没啥了……
-
02009-09-17 15:15:21@
...ri
把read写成readln了... -
02009-09-17 11:35:49@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram ex;
var
a:array[1..100]of longint;
i,tot,n,ans:longint;
begin
readln(n);
for i:=1 to n do
begin read(a[i]);tot:=tot+a[i];end;
tot:=tot div n;
if a[n]tot then begin a[n-1]:=a[n-1]-(tot-a[n]);a[n]:=tot;ans:=ans+1;end;
for i:=1 to n-2 do
if a[i]tot then begin a:=a-(tot-a[i]);a[i]:=tot;ans:=ans+1;end;
write(ans);end. -
02009-09-12 13:43:16@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
var
a:array[1..100] of longint;
n,m,i,j,tot,tt:longint;
begin
readln(n);
for i:=1 to n do begin read(a[i]); tot:=tot+a[i]; end;
tot:=tot div n;
for i:=1 to n do
begin
if (a[i]-tot)0 then begin
if (a[i]-tot)>0 then
a:=a+a[i]-tot;
if (a[i]-tot) -
02009-09-10 17:58:08@
var
i,t,n,w:longint;
a:array[0..1000]of longint;begin
read(n);
for i:=1 to n do
begin
read(a[i]);
inc(w,a[i])
end;
w:=w div n;
for i:=2 to n do
if aw then
begin
inc(a[i],a-w);
inc(t)
end;
writeln(t)
end.
多美丽的程序!!! -
02009-09-05 18:37:29@
水得不能再水的题!