第K极值 pascal

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/28 09:34:26
第K极值pascal第K极值pascal第K极值pascalprogramkth;vara:array[1..10000]oflongint;k,i,j,n,m,h:longint;procedure

第K极值 pascal
第K极值 pascal

第K极值 pascal
program kth;
var
a:array[1..10000] of longint;
k,i,j,n,m,h:longint;
procedure qsort(s,t:longint);
var
i,j,x,temp:longint;
begin
i:=s;j:=t;x:=a[(i+j) div 2];
repeat
while a[i]x do dec(j);
if ij;
if s

呵呵.. tyvj 第K极值?
下面代码是很早很早写的.你将就着吧 O(nlgn)的复杂..
如果你想要O(n)的算法.可以HI我
program e2;
var
a:array[1..10000]of longint;
n,k,i,res:longint;
procedure paixu(x,y:longint);
var

全部展开

呵呵.. tyvj 第K极值?
下面代码是很早很早写的.你将就着吧 O(nlgn)的复杂..
如果你想要O(n)的算法.可以HI我
program e2;
var
a:array[1..10000]of longint;
n,k,i,res:longint;
procedure paixu(x,y:longint);
var
i,j,t,m:longint;
begin
i:=x;
j:=y;
m:=(a[x]+a[y])div 2;
repeat
while a[i] while a[j]>m do dec(j);
if i<=j then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
inc(i);
dec(j);
end;
until i>j;
if i if xend;
function work(t:longint):boolean;
var
i:longint;
begin
work:=true;
if t<=1 then exit(false);
for i:=2 to trunc(sqrt(t)) do
if t mod i = 0 then work:=false;
end;
begin
readln(n,k);
for i:=1 to n do
read(a[i]);
paixu(1,n);
res:=a[n+1-k]-a[k];
if work(res) then
writeln('YES')
else
writeln('NO');
writeln(res);
end.

收起

Vijos compatible layer: 1.2 build 100204
Judge status: Accepted
VijosNT Judger: 1.2 build 100318
Compiler: Free Pascal
fpc -O2 -g -otest.exe test.pas
Test #1: Accepted... 0ms<...

全部展开

Vijos compatible layer: 1.2 build 100204
Judge status: Accepted
VijosNT Judger: 1.2 build 100318
Compiler: Free Pascal
fpc -O2 -g -otest.exe test.pas
Test #1: Accepted... 0ms
Test #2: Accepted... 0ms
Test #3: Accepted... 0ms
Test #4: Accepted... 0ms
Test #5: Accepted... 0ms
Test #6: Accepted... 0ms
Test #7: Accepted... 0ms
Test #8: Accepted... 0ms
Test #9: Accepted... 0ms
Test #10: Accepted... 0ms
Total score: 100, time usage: 0ms
var
q,i,n,k:longint;
a:array[0..10000]of longint;
procedure qp(l,r:longint);
var
x,y,mid:longint;
begin
x:=l;y:=r;mid:=a[(l+r)div 2];
repeat
while a[x]while a[y]>mid do dec(y);
if x<=y then
begin
q:=a[x];a[x]:=a[y];a[y]:=q;
inc(x);dec(y);
end;
until x>y;
if xif y>l then qp(l,y);
end;
begin
read(n,k);
for i:=1 to n do
read(a[i]);
qp(1,n);
q:=a[n-k+1]-a[k];
if q<2 then begin writeln('NO');writeln(q);halt;end;
if q=2 then begin writeln('YES');writeln(q);halt;end;
for i:=2 to trunc(sqrt(q)) do
if q mod i=0 then begin writeln('NO');writeln(q);halt;end;
writeln('YES');
writeln(q);
end.

收起

第K极值 pascal pascal:第K极值给定一个长度为N(0 第K极值的解法pascal描述 Description 给定一个长度为N(0 求第k极值,为什么在pascal上能过,在tyvj上没分?第K极值 描述 Description 给定一个长度为N(0 pascal询问——tyvj第k极值 为什么我的程序为0分?给定一个长度为N(0 第K极值 pascal 求问错在哪了我的程序:var a:array[1..10000] of integer;n,k,i,j,m,t:integer;l,q:boolean;beginreadln(n,k);for i:=1 to n do read(a[i]);for i:=n downto 1 dofor j:=1 to i-1 dobegin if a[j] >a[i] then begint:=a[i];a[i]:=a[j];a[ PASCAL 组合输入输入的第一行包含两个整数为 N 和 K 以空格隔开$(1 PASCAL 组合字串输入输入的第一行包含两个整数为 N 和 K 以空格隔开$(1 Pascal语言编程问题,找出第k个被3,5,7除的时候,余数为2,3,2的数输入格式一个数k输出格式求出第k个符合条件的数 pascal pascal pascal! 分解因式pascal一个自然数N的正因子个数记为F(N),例如18的所有正因子为1、2、3、6、9、18,所以F(18)=6.现在给出K,求所有满足F(N)=K的N中最小的数.要求pascal语言完成.Input 第一行n,表示有n个数据,1我 pascal程序 定义一函数digit(n,k) 使得他回送整数n的从右边开始数第k个数字的值例如digit(15327,4)=5我写的程序如下program zlx52;varn,k:longint;function digit(n,k:longint):longint;vara,b:longint;begina:=exp(k*ln(10)); pascal金字塔编写一个程序,输入两个整数N和K(N,K 在程序中定义一个函数digit(n,k),它能分离出整数n从右边数第k个数字,如digit(31859,3)=8,digit(2076,5)不要百度的,那个程序是错的.可以给pascal完整程序么? 谁能用pascal解这几道题?练习:1.在程序中定义函数digit(n,k),它能分离出整数n从右边数第k个数字,如digit(31859,3)=8,digit(2076,3)=0.2.在程序中定义一个函数check(n,d),如果数字d在整数n中出现,则函数值 pascal问题,求程序:1、 文本文件t.in中第一行的一个 正整数N(N 输入斐波那契数列的第N项的位置PASCAL 求Free Pascal程序问题如下:第一行输入一个正整数n(1