【链接】h在这里写链接
【题意】
给出一个序列,求2~n每一个数,下标不是这个数倍数的最大值是什么?
【题解】
把a数组从大到小排序.
每个位置i,逆序枚举b数组,找到第一个对应下标不是i的倍数的,直接输出
【错的次数】
0
【反思】
在这了写反思
【代码】
#include <bits/stdc++.h>
#define ll long long
#define LL long long
#define INF 0x3f3f3f3f
#define ll_INF 0x3f3f3f3f3f3f3f3f
#define mem(shuzu,value) memset(shuzu,value,sizeof shuzu)
#define mem0(shuzu) memset(shuzu,0,sizeof shuzu)
#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
using namespace std;
#define for0(i,n) for(int i=0;i<n;i++)
#define read(x) scanf("%d",&x)
const int M = 100000+20;
const int M2 = 1000+20;
const int mod = 998244353;
int n,ans=0,m,k,t;
struct node {
int xuhao;
ll d;
} num[M];
bool cmp(node a,node b) {
return a.d>b.d;
}
main() {
ios::sync_with_stdio(false);
cin>>t;
while(t--) {
cin>>n;
for(int i=0; i<n; i++) {
cin>>num[i].d;
num[i].xuhao=i+1;
}
sort(num,num+n,cmp);
for(int j=2; j<=n; j++) {
if(j>2)cout<<" ";
for(int i=0; i<n; i++) {
//cout<<num[i].xuhao<<endl;
if(num[i].xuhao%j!=0) {
cout<<num[i].d;
break;
}
}
}
cout<<endl;
}
}