您的位置:首页 > 其它

HDU 2083 复习时间

2011-05-03 09:25 162 查看
这题要自己推算一下,开始还准备用贪心的,结果弄了很久弄不出,最后看大神的报告原来是由数学推出来的

m > n;

f1 = ( 100 - m )*( 100 - m ) + (m - n)(m-n);

f2 = ( 100 - n )*( 100 - n );

用二式减去一式分析可得f2总是大于f1,所以只要直接找到一个最小的n就可以了

#include<stdio.h>
int n,m,min;
int main( )
{
int t;
scanf( "%d",&t );
while( t-- )
{
scanf( "%d%d",&n,&m );
min = 0x7fffffff;
int c;
for( int i = 0; i < n; ++i )
{
scanf( "%d",&c );
if( c < min )
min = c;
}
printf( "%d\n",(100-min)*(100-min) );
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: