HDU 2570 一直WA

heartlc 2013-04-02 08:28:22
import java.util.Scanner;
import java.util.Arrays;
public class Main
{
int n;
int v;
int w;
int[] a;
Main( int n,int v,int w )
{
this.n = n;
this.v = v;
this.w = w;
this.a = new int[n];
}
public void setA( int i,int b )
{
this.a[i] = b;
}
public void getM()
{
Arrays.sort( this.a );
int k = 0; //k来获得总的体积
int sum = 0; //sum获得总的浓度
for( int i=0;i<this.n;i++ )
{
sum += this.a[i];
if( sum>this.w )
{
sum -= this.a[i];
break;
}
else
{
k++;
this.w += this.w;
}
}
if( k>0 )
{
double c = sum*0.01/k;
System.out.print( k*this.v + " " );
System.out.printf( "%.2f",c );
System.out.println();
}
else
{
System.out.println( "0 0.00" );
}
}
public static void main(String[] args)
{
int n=0;
Scanner s = new Scanner(System.in);
int c=0;
c = s.nextInt();
int v=0;
int w=0;
while( c>0 )
{
n = s.nextInt();
v = s.nextInt();
w = s.nextInt();
Main m = new Main( n,v,w );
for( int i=0;i<n;i++ )
{
int b = s.nextInt();
m.setA( i,b );
}
m.getM();
c--;
}
}
}
...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FancyMouse 2013-04-03
  • 打赏
  • 举报
回复
引用 3 楼 heartlc 的回复:
引用 2 楼 FancyMouse 的回复:this.w += this.w; 每次w加倍??? 是啊,(p1%+p2%+....+pn%)/n < w 吗? 这样的和,加上一个pi%,就要加上一个w了啊? 不是这样吗?
但是你现在加到p3的时候是4个原来的w。加到p4的时候是8个原来的w。加到p5的时候是16个原来的w。
heartlc 2013-04-03
  • 打赏
  • 举报
回复
引用 2 楼 FancyMouse 的回复:
this.w += this.w; 每次w加倍???
是啊,(p1%+p2%+....+pn%)/n < w 吗? 这样的和,加上一个pi%,就要加上一个w了啊? 不是这样吗?
heartlc 2013-04-03
  • 打赏
  • 举报
回复
引用 4 楼 FancyMouse 的回复:
引用 3 楼 heartlc 的回复:引用 2 楼 FancyMouse 的回复:this.w += this.w; 每次w加倍??? 是啊,(p1%+p2%+....+pn%)/n < w 吗? 这样的和,加上一个pi%,就要加上一个w了啊? 不是这样吗? 但是你现在加到p3的时候是4个原来的w。加到p4的时候是8个原来的w。加到p5的时候是16个……
哦,明白了。。 通过了,还是我自己太粗心了。。。。。。。
FancyMouse 2013-04-03
  • 打赏
  • 举报
回复
this.w += this.w; 每次w加倍???
heartlc 2013-04-02
  • 打赏
  • 举报
回复
自己顶,不要沉啊

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧