1 条题解
-
0
这题其实不算构造题,自己感觉就是个暴力题,考察代码细节的问题。
第二场 算是一个简单的构造题。
这题 输出分为两种 : 当 的位置不能放 时,后面不可能有满足题目要求的数组( 处只能放)。
另一种: 之前的时满足题目条件最小的词序,只能从 后找到最小情况。
#include<iostream> using namespace std; const int N=2e5+5; int a[N]; int main() { int T; cin>>T; while(T--) { int m,n; cin>>m>>n; if(m%n) cout<<"-1\n"; else { for(int i=1;i<=m;i++) a[i]=i; a[n]=m,a[m]=1,a[1]=n; int t=n; for(int i=n+1;i<m;i++) { if(a[i]%t==0&&a[t]%i==0) { swap(a[i],a[t]); t=i; } } for(int i=1;i<=m;i++) cout<<a[i]<<' '; cout<<'\n'; } } return 0; }
- 1
信息
- ID
- 909
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 174
- 已通过
- 15
- 上传者