求助!!!0分
查看原帖
求助!!!0分
371925
Cosmos_zzx楼主2023/8/22 16:03

想了好久QAQ

#include<bits/stdc++.h>
using namespace std;
int t,n,p;
struct node
{
	int id,val;
}a[1000001];
bool cmp(node x,node y)
{
	return x.val<y.val;
}
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>p;
		if(p>2*n)
		{
			for(int i=1;i<=n;i++)cout<<i<<' ';
			cout<<endl;
		}
		else
		{
			for(int i=1;i<=n;i++)
				a[i].val=i%p,a[i].id=i;
			sort(a+1,a+1+n,cmp);
			int sum=0;
			for(int i=1;i<=n;i++)
				if(a[i].val==0)
					cout<<a[i].id<<' ';
			for(int i=1;i<=n;i++)
			{
				if(a[i].val==0)
					continue;
				cout<<a[i].id<<" ";
				if(a[i].id==a[n-sum].id)break;
				cout<<a[n-sum].id<<' ';
				sum++;
			}
			cout<<endl;
		}
		
	}
	return 0;
}
2023/8/22 16:03
加载中...