当前位置:回答三>百科问答>用c++做统计数字怎么做?

用c++做统计数字怎么做?

2024-09-16 02:13:34 编辑:join 浏览量:596

用c++做统计数字怎么做?

由于该题的n过大 所以一般地最坏情况为平方级的排序可以排除

由于鉴于每个自然数的范围过大 所以桶排序可以排除

那么接下来我们就可以用堆排做这道题

以下为我在RQNOJ上AC全部通过的程序:

#include

using namespace std;

const int N=200008;

long long a[N];

void dui(int v,int n)

{

int i,j;

i=v;j=i*2;

a=a[i];

while(j<=n){

if(j

if(a

a[i]=a[j];

i=j;

j=i*2;

}

else j=n+1;

}

a[i]=a;

return;

}

int yun(void)

{

long long i,j,n,p1,p2;

cin>>n;

for(i=1;i<=n;i++)cin>>a[i];

for(i=n/2;i>=1;i--)dui(i,n);

for(i=n;i>=2;i--){

a=a[i];

a[i]=a;

a=a;

dui(1,i-1);

}

p1=a;

for(i=1;i<=n;){

cout<

for(p2=0,j=i;a[j]==p1&&j<=n;j++)p2++;

cout<

i=j;

p1=a[j];

}

return 0;

}

int main(void)

{

freopen("RQNOJ-P133.in","r",stdin);

freopen("RQNOJ-P133.out","w",stdout);

std::ios::sync_with_stdio(false);

yun();

return 0;

}

标签:c++,统计数字

版权声明:文章由 回答三 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.huidasan.com/answer/259549.html
热门文章