永远都是3TLE
查看原帖
永远都是3TLE
677842
SevenYoshy楼主2023/10/8 19:36

最开始,我用最最最简单的方法做 85

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    int c[a+5];
    for(int i=1;i<=a;i++)
    {
        for(int j=i-1;j>0;j--)
        	c[j+1]=c[j];
        cin>>c[1];
        for(int k=1;k<i;k++)
        {
            if(c[k]<c[k+1])
                swap(c[k],c[k+1]);
            else
            	break;
        }
        cout<<c[max(i*b/100,1)]<<' ';
    }
}

后来,我用multiset做 85

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    int d;
    multiset<int> c;
    for(int i=1;i<=a;i++)
    {
        cin>>d;
        c.insert(d);
        d=0;
        int e=max(b*i/100,1);
        for(std::set<int>::iterator j=c.begin();j!=c.end();j++)
        {
            if(d++==c.size()-e)
            {
                cout<<*j<<' ';
                break;
            }
        }
    }
}

最后的最后,我用计数排序做,可又是……85

#include<bits/stdc++.h>
using namespace std;
int n[999],c[100005],d,m;
int main()
{
    int a,b;
    cin>>a>>b;
    memset(n,0,sizeof(n));
    for(int i=1;i<=a;i++)
    {
        cin>>d;
        n[d]++;
        m=0;
        for(int j=999;j>=0;j--)
        {
            for(int k=0;k<n[j];k++)
                c[++m]=j;
        }
        cout<<c[max(i*b/100,1)]<<' ';
    }
}

请各位大佬帮帮蒟蒻吧

蒟蒻会给帮蒟蒻的大佬一个关注

绝对说到做到

2023/10/8 19:36
加载中...