讨论 / 为什么还有一个点没过
xdqck 2013-10-22 01:00:00
点我顶贴 收藏 删除
编程如下

var a:array[1..100,1..100]of integer;

b,c:array[1..100]of integer;

n,m,i,j,t:integer;

begin

read(n,m);

for i:=1 to n do

for j:=1 to m do

read(a[i,j]);

for i:=1 to n do

begin

for j:=1 to m do

begin

if a[i,j]=1

then b[i]:=b[i]+1;

if a[j,i]=1

then c[i]:=c[i]+1;

end;

end;

for i:=1 to n-1 do

for j:=i+1 to m do

if b[i]<b[j]

then begin

t:=b[i];

b[i]:=b[j];

b[j]:=t;

end;

for i:=1 to m-1 do

for j:=i+1 to m do

if c[i]<c[j]

then begin

t:=c[i];

c[i]:=c[j];

c[j]:=t;

end;

write(b[1]+c[1]);

readln;

readln;

end.

第九个测试点没过

测试结果错误.错误结果为:46

正确结果应为:49

#1 zrp@2009-07-02 00:46:00
回复 删除
我说楼主啊,你这样何苦呢....

MS你的方法很复杂啊.

其实求出b数组和c数组后只要一个个枚举所有点找最大值不就行了?你那似乎是在排序吧......

#2 wuyucheng_009@2010-04-24 18:45:00
回复 删除
大哥

我的给你吧

稍微改一下啊

var a:array[1..1001,1..1001] of longint;

i,j,k,l,m,n,c:longint;dsa:longint;

begin

readln(n,m);

for i:=1 to n do

for j:=1 to m do read(a[i,j]);

for i:=1 to n do

begin

for j:=1 to m do

begin

l:=0;

for k:=1 to n do if a[k,j]=1 then l:=l+1;

for k:=1 to m do if a[i,k]=1 then l:=l+1;

if l>c then c:=l;

end;

end;

writeln(c);

end.

#3 zwh@2012-08-20 03:15:00
回复 删除
没那么麻烦吧

var heng,shu:array[1..100]of longint;n,m,i,j,k,s,h:longint;zb:array[1..100,1..100]of byte;

begin

readln(n,m);

for i:=1 to n do

for j:=1 to m do

begin

read(zb[i,j]);

end;

for i:=1 to n do

begin

s:=0;

for j:=1 to m do

s:=s+zb[i,j];

shu[i]:=s;

end;

for j:=1 to m do

begin

s:=0;

for i:=1 to n do

s:=s+zb[i,j];

heng[j]:=s;

end;

for i:=1 to n do

for j:=1 to m do

if heng[j]+shu[i]>k then k:=heng[j]+shu[i];

writeln(k);

end.

#4 lele1234567890@2013-10-18 19:22:00
回复 删除
sad
#5 13231323@2013-10-22 01:00:00
回复 删除
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

查看更多回复
提交回复