HDU 2083 复习时间
这题要自己推算一下,开始还准备用贪心的,结果弄了很久弄不出,最后看大神的报告原来是由数学推出来的
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;
}
本人还是新手 ,转载请注明来自Lvsi‘s home
浙公网安备 33010602011771号