1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int a[10],n,m,b[10],x,y; bool v[10],bk; void dfs(int k) //深搜 { if(bk) return ; if(k==n+1) { int s=0; for(int i=1;i<=n;i++) s=s*10+b[a[i]]; if((s+x)%y==0) //满足条件 { printf("%d\n",s); bk=1; return ; } } else { for(int i=1;i<=n;i++) { if(v[i]==0) { v[i]=1; a[k]=i; dfs(k+1); v[i]=0; a[k]=0; } } } } int main() { scanf("%d%d", &n, &m); for(int i=1;i<=n;i++) scanf("%d", &b[i]); sort(b+1, b+n+1); while(m--) { scanf("%d%d", &x, &y); bk=0; dfs(1); if(bk==0) printf("None\n"); } return 0; }
- 1
信息
- ID
- 847
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 263
- 已通过
- 74
- 上传者