XNA安装指导

XNA安装指导

liulingbo918:

开始的时候我也是开了一半的数字,但排序时用了基数排序,结果超时,这是一定的。然后看了师兄的思路,我直接用优先队列来做,代码如下,但第一个案例就错了。我想不明白师兄的 printf( "%.1f\n", N % 2 == 1 ? (float)data[ 0 ]: ( (float)data[ 0 ] + max( data[ 1 ], data[ 2 ] ) ) / 2 ), 为什么要用到data[2], 偶数的时候不是只用到data[0]和data[1]吗?恳请指教!

#include

#include

#include

#include

using namespace std;

int main(){

int N, i, j, size, num;

float result = 0.0;

priority_queueQ;

scanf("%d", &N);

size = N / 2 + 1;

for(i = 0; i < size; i++){

scanf("%d", &num);

Q.push(num);

}

while(size++ < N){

scanf("%d", &num);

if(num < Q.top()){

Q.pop();

Q.push(num);

}

}

if(N % 2 == 0){

result += Q.top();

Q.pop();

result += Q.top();

result = (float)result / 2;

}

else

result = (float)Q.top();

printf("%.1f\n", result);

system("pause");

return 0;

}

相关推荐

肿么在淘宝上一次拍两个宝贝
365网站客服电话

肿么在淘宝上一次拍两个宝贝

📅 10-25 👁️ 7322
吴亦凡的家乡是加拿大哪里?
直播365app下载

吴亦凡的家乡是加拿大哪里?

📅 08-22 👁️ 2617
手机爱奇艺app怎么投屏到电视
365网站客服电话

手机爱奇艺app怎么投屏到电视

📅 10-06 👁️ 6291