求解一道acm题
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=2023提交了10几次 还是wrong answer
又找了c语言测试通过的程序 修改为java如下 依然wrong answer..
请大家帮我看看是哪出了问题..
程序代码:
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[]args){
Scanner cin=new Scanner(System.in);
DecimalFormat df=new DecimalFormat("0.00");
while(cin.hasNext()){
int n=cin.nextInt();
int m=cin.nextInt();
int[][]a=new int[n][m];
int[]b=new int[n];
int[]c=new int[m];
Arrays.fill(b,0);
Arrays.fill(c,0);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=cin.nextInt();
b[i]+=a[i][j];
c[j]+=a[i][j];
}
}
for(int i=0;i<n;i++){
if(i==n-1)
System.out.println(df.format(1.0*b[i]/m)+" ");
else
System.out.print(df.format(1.0*b[i]/m)+" ");
}
for(int i=0;i<m;i++){
if(i==m-1)
System.out.println(df.format(1.0*c[i]/n)+" ");
else
System.out.print(df.format(1.0*c[i]/n)+" ");
}
int t=0;
for(int i=0;i<n;i++){
int d=1;
for(int j=0;j<m;j++){
if(a[i][j]<1.0*c[j]/n){
d=0;
break;
}
}
if(d==1)t++;
}
System.out.println(t+"\n");
}
}
}
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[]args){
Scanner cin=new Scanner(System.in);
DecimalFormat df=new DecimalFormat("0.00");
while(cin.hasNext()){
int n=cin.nextInt();
int m=cin.nextInt();
int[][]a=new int[n][m];
int[]b=new int[n];
int[]c=new int[m];
Arrays.fill(b,0);
Arrays.fill(c,0);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=cin.nextInt();
b[i]+=a[i][j];
c[j]+=a[i][j];
}
}
for(int i=0;i<n;i++){
if(i==n-1)
System.out.println(df.format(1.0*b[i]/m)+" ");
else
System.out.print(df.format(1.0*b[i]/m)+" ");
}
for(int i=0;i<m;i++){
if(i==m-1)
System.out.println(df.format(1.0*c[i]/n)+" ");
else
System.out.print(df.format(1.0*c[i]/n)+" ");
}
int t=0;
for(int i=0;i<n;i++){
int d=1;
for(int j=0;j<m;j++){
if(a[i][j]<1.0*c[j]/n){
d=0;
break;
}
}
if(d==1)t++;
}
System.out.println(t+"\n");
}
}
}
----------------解决方案--------------------------------------------------------
为什么没有题目……
----------------解决方案--------------------------------------------------------
我把题目发一下
[[it] 本帖最后由 freish 于 2008-12-9 11:54 编辑 [/it]]
----------------解决方案--------------------------------------------------------
题目很简单,只是要求比较绕口,感觉只要细心,这道题还是很容易AC的。
----------------解决方案--------------------------------------------------------
为什么C可以通过 同样的程序java无法通过呢?我实在找不出差别在哪里了
C code:
程序代码:
#include <stdio.h>
#include <string.h>
int main(void)
{
int n, m;
int i, j;
int t, d;
int s[50];
int c[5];
int sc[50][5];
while (scanf("%d%d", &n, &m) != EOF)
{
memset(s, 0, sizeof(s));
memset(c, 0, sizeof(c));
memset(sc, 0, sizeof(sc));
for (i = 0 ; i < n ; i++)
{
for (j = 0 ; j < m ; j++)
{
scanf("%d", &sc[i][j]);
c[j] += sc[i][j];
s[i] += sc[i][j];
}
}
for (i = 0 ; i < n ; i++)
printf("%.2lf%c", s[i] * 1.0 / m, i < n - 1 ? ' ' : ' \n');
for (i = 0 ; i < m ; i++)
printf("%.2lf%c", c[i] * 1.0 / n, i < m - 1 ? ' ' : ' \n');
for (t = i = 0 ; i < n ; i++)
{
for (d = 1, j = 0 ; j < m ; j++)
{
if (sc[i][j] < 1.0 * c[j] / n)
{
d = 0;
break;
}
}
if (d) t++;
}
printf("%d\n\n", t);
}
return 0;
}
#include <string.h>
int main(void)
{
int n, m;
int i, j;
int t, d;
int s[50];
int c[5];
int sc[50][5];
while (scanf("%d%d", &n, &m) != EOF)
{
memset(s, 0, sizeof(s));
memset(c, 0, sizeof(c));
memset(sc, 0, sizeof(sc));
for (i = 0 ; i < n ; i++)
{
for (j = 0 ; j < m ; j++)
{
scanf("%d", &sc[i][j]);
c[j] += sc[i][j];
s[i] += sc[i][j];
}
}
for (i = 0 ; i < n ; i++)
printf("%.2lf%c", s[i] * 1.0 / m, i < n - 1 ? ' ' : ' \n');
for (i = 0 ; i < m ; i++)
printf("%.2lf%c", c[i] * 1.0 / n, i < m - 1 ? ' ' : ' \n');
for (t = i = 0 ; i < n ; i++)
{
for (d = 1, j = 0 ; j < m ; j++)
{
if (sc[i][j] < 1.0 * c[j] / n)
{
d = 0;
break;
}
}
if (d) t++;
}
printf("%d\n\n", t);
}
return 0;
}
----------------解决方案--------------------------------------------------------
也许是时间用得太长了..整整差了30倍
有时候时间过长也过显示Wrong Answer...是这样么?
----------------解决方案--------------------------------------------------------
不是,一般来说JAVA运行的时间是比C长,但自动测试的时候你提交的JAVA它会相应的增加运行时间。
----------------解决方案--------------------------------------------------------
但是没法用java通过么?我是非常期望用java写出来的...
----------------解决方案--------------------------------------------------------