HDU 6098 Inversion

来源:互联网 发布:阿里云ecs ftp 编辑:程序博客网 时间:2024/06/17 10:15

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6098

将A数组按值从大到小排序,对于每个下标i暴力找到最大的不被i整除的数。

#include<bits/stdc++.h>#include<algorithm>#include<vector>using namespace std;int b[100050];struct bb{    int k,p;} a[100050];int cmp(bb a,bb s){    return a.k<s.k;}int main(){    int t,o;    scanf("%d",&t);    while(t--)    {        o=-1;        memset(a,0,sizeof a);        memset(b,0,sizeof b);        int n;        scanf("%d",&n);        for(int i=1; i<=n; i++)        {            scanf("%d",&a[i].k);            a[i].p=i;        }        sort(a+1,a+n+1,cmp);        for(int i=2; i<=n; i++)        {            for(int j=n; j>=1; j--)            {                if(a[j].p%i!=0)                {                    b[i]=a[j].k;                    break;                }            }        }        for(int i=2; i<=n; i++)        {            if(i!=2)                printf(" ");            printf("%d",b[i]);        }        printf("\n");    }}
原创粉丝点击