sdnuoj 1060 找第K大数

2024-04-27 02:32
文章标签 大数 1060 sdnuoj

本文主要是介绍sdnuoj 1060 找第K大数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1060.找第K大数
Time Limit: 1000 MS    Memory Limit: 32768 KB
Total Submission(s): 109    Accepted Submission(s): 22
Description
给定 n(1 <= n <= 10000000) 个正整数(<= 2147483647),找出其中的第K(1 <= K <= 10)大数。
Input
第一行,两个整数n, K,第二行n个整数
Output
第K大数
Sample Input
5 3
10 15 6 8 3
Sample Output
8
TOP K算法 堆排序
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
int n,k;
int dui[101];
void duipai(int i){int t1=2*i;int t2=t1+1;int pos,temp;if(t1>k) return;else{if(t2>k)pos=t2;elsepos=dui[t1]>dui[t2]?t2:t1;if(dui[i]>dui[pos]){temp=dui[i];dui[i]=dui[pos];dui[pos]=temp;duipai(pos);}}
}
void create(){int pos=k/2;int i;for(i=pos;i>=1;i--)duipai(i);
}
int main(){int i,tmp;scanf("%d%d",&n,&k);for(i=1;i<=k;i++)scanf("%d",&dui[i]);create();for(i=k+1;i<=n;i++){scanf("%d",&tmp);if(tmp>dui[1]){dui[1]=tmp;duipai(1);}}printf("%d\n",dui[1]);return 0;
}

这篇关于sdnuoj 1060 找第K大数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939301

相关文章

uva 10069 DP + 大数加法

代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>#include <cl

Java验证辛钦大数定理

本实验通过程序模拟采集大量的样本数据来验证辛钦大数定理。   实验环境: 本实验采用Java语言编程,开发环境为Eclipse,图像生成使用JFreeChart类。   一,验证辛钦大数定理 由辛钦大数定理描述为: 辛钦大数定理(弱大数定理)  设随机变量序列 X1, X2, … 相互独立,服从同一分布,具有数学期望E(Xi) = μ, i = 1, 2, …, 则对于任意正数ε ,

找第K大数(ACdream 1099)

瑶瑶的第K大 Time Limit: 4000/2000MS (Java/Others)  Memory Limit: 256000/128000KB (Java/Others) Submit  Statistic  Next Problem Problem Description 一天,萌萌的妹子--瑶瑶(tsyao)很无聊,就来找你玩。可是你们都不知道玩什么。。。

SDUT2876_走楼梯(大数)

走楼梯 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 小虎发现走楼梯的时候一次上一个台阶比较惬意,一次上两个台阶比较高效,一次上三个台阶就很累人。 小虎是一个即注重质量又注重高效的人,于是他就在上楼梯的时候每步就只跨上一个台阶或两个台阶, 现在小虎想知道他这样上n阶的楼梯一共有多少种走法,但

【高精度】-DLUTOJ-1176-大数乘法

题目链接:http://acm.dlut.edu.cn/problem.php?id=1176 题目描述:赤裸的大数乘法 解题思路: 突然想到自己没写过高精度乘法,就回咱们自己OJ上找出了这道题,赤裸的高精度乘法而已,没想到依然觉得不好写,准确说来是我从小到大算乘法的习惯使我产生了错觉:“ 想写大数乘法就得先写一个大数加法出来 ”。喂!我短路了半天才想明白,int 数组里可以存个两位数啊,再

大数问题 *

问题 N : A + B Problem II 时间限制:1 秒内存限制:32 兆特殊判题: 否 提交:58解决: 10 标签 输入输出练习 题目描述 I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.

大数求和问题

A + B Problem II Problem Description I have a very simple problem for you. Given two  integers(整数) A and B, your job is to calculate the Sum of A + B. Input The first line of the input contains a

杭电1060

不知道公式,修改了别人的代码,公式应该是a=n*lgn;然后10^(a的小数)取整型; #include #include int main() {     __int64 k,b,i,d;     double a,m,n,c;     scanf("%I64d",&k);     while(k--)     {         scanf("%lf",&n);         a=n*

就一个简单的大数计算

也只是刚刚写出了加法,用的是1 000 000 000进制,不过发现对于加法还不如用最基本的方法方便。用1 000 000 000进制的方便也就在于处理乘法和除法了。计算机做乘除运算还是比较耗时的。 #include <random>#include <iostream>#include <fstream>#include <string>#include <vector>#inclu