P1001 第K极值【tyvj】
/*==========================================
P1001 第K极值
内存限制 128MB 代码限制 64KB
描述 Description
给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字a[i]是
小于maxlongint的非负整数 ,编程要求求出整个序列中第k大的数字减去
第k小的数字的值m,并判断m是否为质数。(0<k<=n)
输入格式 InputFormat
输入格式:
第一行为2个数n,k(含义如上题)
第二行为n个数,表示这个序列
输出格式 OutputFormat
输出格式:
如果m为质数则
第一行为'YES'(没有引号)
第二行为这个数m
否则
第一行为'NO'
第二行为这个数m
样例输入 SampleInput
5 2
1 2 3 4 5
样例输出 SampleOutput
YES
2 数据范围和注释 Hint
对于第K大的详细解释:
如果一个序列为1 2 2 2 2 3
第1大 为3
第2大 为2
第3大 为2
第4大 为2
第5大 为1
第K小与上例相反 另外需要注意的是
最小的质数是2,如果小于2的话,请直接输出NO
============================================*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int fun(long n);//判断n是否质数,是则返回1,否则返回0;
int cmp(const void *a,const void *b);
int main()
{
long n,k,*a,i,m;
scanf("%ld%ld",&n,&k);
a=(long *)malloc(n*sizeof(long));
for(i=;i<n;i++)
scanf("%ld",&a[i]);
qsort(a,n,sizeof(long),cmp);
m=a[n-k]-a[k-];
i=fun(m);
if(i==) printf("YES\n%ld\n",m);
else printf("NO\n%ld\n",m);
return ;
}
int fun(long n)//判断n是否质数,是则返回1,否则返回0;
{
long i,t;
if(n<) return ;
t=sqrt(n);
for(i=;i<=t;i++)
{
if(n%i==) return ;
}
return ;
}
int cmp(const void *a,const void *b)
{
return *(long *)a-*(long *)b;
}
这个题呢要用long类型数据。要注意第k大数减去第k小数有可能是负数。质数检测也要注意写正确。可以使用快排的就用快排。
好久没写OJ的题目了,再过来看看写写倍觉亲切啊
P1001 第K极值【tyvj】的更多相关文章
- tyvj——P1001 第K极值
P1001 第K极值 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 成成第一次模拟赛 第一道 描述 给定一个长度为N(0<n<=10000)的序 ...
- P1001 第K极值
P1001 第K极值 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 成成第一次模拟赛 第一道 描述 给定一个长度为N(0<n<=10000)的序 ...
- [TYVJ] P1001 第K极值
第K极值 背景 Background 成成第一次模拟赛 第一道 描述 Description 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字a[i]是小于 ...
- TYVJ P1001 第K极值 Label:水
背景 成成第一次模拟赛 第一道 描述 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字a[i]是小于maxlongint的非负整数 ,编程要求求出整个序列中第k大的数 ...
- 学习笔记--函数式线段树(主席树)(动态维护第K极值(树状数组套主席树))
函数式线段树..资瓷 区间第K极值查询 似乎不过似乎划分树的效率更优于它,但是如果主席树套树状数组后,可以处理动态的第K极值.即资瓷插入删除,划分树则不同- 那么原理也比较易懂: 建造一棵线段树(权值 ...
- [Tyvj1001]第K极值 (贪心?模拟)
考前打tyvj的水题 题目描述 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字a[i]是小于maxlongint的非负整数 ,编程要求求出整个序列中第k大的数字减去 ...
- 分治法:快速排序求第K极值
标题其实就是nth_element函数的底层实现 nth_element(first, nth, last, compare) 求[first, last]这个区间中第n大小的元素 如果参数加入了co ...
- 【算法学习】有旋treap
treap是平衡树的一种.与其他平衡树一样,它也能够支持插入和删除,求第k极值等,接下来我们主要探讨有旋treap的实现过程. treap中每个节点要维护其值,左右孩子以及子树大小.父亲要不要写则看你 ...
- django模型操作
Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表
随机推荐
- BZOJ 4390 Max Flow
同运输计划. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ...
- VM命令行操作
vim-cmd vmsvc/getallvms /查看ESXi上所有虚拟机信息,主要查看虚拟机对应的ID号 vim-cmd vmsvc/power.on <VM ID> /对应ID的虚 ...
- LCA(RMQ)
; xh=; ..lx*] of longint; lt,dfn,fr,dep:..lx] of longint; f:..lx*,..xh] of longint; vis:..lx] of boo ...
- HDU 5067
http://acm.hdu.edu.cn/showproblem.php?pid=5067 规定起点和终点的tsp问题,解法依然是状态压缩dp,在初始化和计算答案的时候略做改动即可 #include ...
- Howto add permanent static routes in Ubuntu
Static routing is the term used to refer to the manual method used to set up routing. An administrat ...
- Carthage
Carthage Carthage - 一个简单.去集中化的Cocoa依赖管理器
- Spring3整合Hibernate4-我们到底能走多远系列(30)
我们到底能走多远系列(30) 扯淡: 30篇啦!从2012-08-15开始的系列,东平西凑将近一年的时间也就这么几篇.目标的100篇,按这个速度也要再搞两年呢. 发博客果然不是件容易的事,怪不得更多的 ...
- 单元测试-代码覆盖率工具 -- JaCoCo
最近学习Mybatis的官方文档,看到了[项目文档]一节有很多内容没有见过,做个笔记,理解一下. 随着敏捷开发的流行,编写单元测试已经成为业界共识.但如何来衡量单元测试的质量呢?有些管理者片面追求单元 ...
- 关于string的练习题目
/*Are they equal*/#include<iostream>#include<string>using namespace std;int n;string dea ...
- Q郵箱轉移自定義目錄中的郵件
1.之前在Q郵箱上建立了許多規則和收件箱,現在想統一用Mac上的郵局管理 2.Mac上會同步對應郵箱的自定義目錄,此時這些目錄便十分多餘礙眼 3.Q郵箱單頁顯示郵件數量上限是100,這意味著手動轉移十 ...