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; }
資訊
- ID
- 909
- 時間
- 1000ms
- 記憶體
- 256MiB
- 難度
- 9
- 标签
- 遞交數
- 175
- 已通過
- 15
- 上傳者