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
MS你的方法很复杂啊.
其实求出b数组和c数组后只要一个个枚举所有点找最大值不就行了?你那似乎是在排序吧......
我的给你吧
稍微改一下啊
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.
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.
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊