社区讨论

大神看看为什么只有20分

P1059[NOIP 2006 普及组] 明明的随机数参与者 6已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mi5i39t4
此快照首次捕获于
2025/11/19 12:26
4 个月前
此快照最后确认于
2025/11/19 12:26
4 个月前
查看原帖
这个排序是某个大神教我的,听说很好用,为什么只有20分
CPP
var
  a,b,t:array[1..100]of integer;
  n,i,p,l,m:longint;
begin
  randomize;
  read(n);
  for i:=1 to n do
  read(a[i]);
  while(true)do
  begin
    for i:=1 to n do
    t[i]:=0;
    i:=0;
    while(i<n)do
    begin
      p:=random(n)+1;
      if(t[p]=0)then
      begin
        t[p]:=1;
        i:=i+1;
        b[i]:=a[p];
      end;
    end;
    l:=0;
    for i:=2 to n do
      if(b[i]<b[i-1])then
      l:=1;
    if(l=0)then break;
  end;
  m:=1;
  for i:=2 to n do
    if(b[i]<>b[i-1])then
    m:=m+1;
  writeln(m);
  write(b[1],' ');
  for i:=2 to n do
    if(b[i]<>b[i-1])then
    write(b[i],' ');
end.

回复

6 条回复,欢迎继续交流。

正在加载回复...