uva 10624 Super Number 险险的过了。。。
2013-07-24 00:29
411 查看
uva 10624 Super Number
题意: 给定n, m要求出一个超基数, 这个数的第i位(i在[n,m]之间) 之前所组成的数字,要能被i整除。。求出满足条件最小的超基数,如果找不到就输出-1。。DFS 回溯。。。由于最多有30位。。就用数组来存了。。 导致要多取余好几次。限制3秒。卡2秒6过了。。- -
#include <stdio.h> #include <string.h> int n, m; int a[50]; int t, tt; int judge; int mu(int n) { int i; int s =0; for (i = 0; i < n; i ++) { s = (s * 10 + a[i]) % n; } if (s == 0) return 1; else return 0; } void dfs(int wei) { int i; if (wei == m) { judge = 1; return; } for (i = 0; i <= 9; i ++) { if (wei == 0 && i == 0) continue; a[wei] = i; if (mu(wei + 1) || wei + 1 < n) { dfs(wei + 1); if (judge == 1) return; } } } int main() { scanf("%d", &t); for (tt = 1; tt <= t; tt ++) { int i; judge = 0; memset(a, -1, sizeof(a)); scanf("%d%d", &n, &m); dfs(0); if (!judge) printf("Case %d: -1\n", tt); else { printf("Case %d: ", tt); for (i = 0; i < m; i ++) printf("%d", a[i]); printf("\n"); } } return 0; }
相关文章推荐
- UVA 10624 - Super Number
- UVA10624 - Super Number(dfs)
- UVa 10624 - Super Number, Rujia Liu的神题(四)
- UVa 10624 - Super Number
- UVA - 10624 Super Number(回溯)
- UVA - 10624 Super Number 暴力
- UVA - 10624 Super Number
- UVA 10624 - Super Number(DFS)
- uva10624 Super Number
- UVA 10624 Super Number
- UVA 10624 Super Number
- UVa10624 - Super Number
- 10624 - Super Number
- uva 10642 Super Number(dfs)
- Super Ugly Number
- UVA 12633 Super Rooks on Chessboard [fft 生成函数]
- uva10883 - Supermean-杨辉三角+log应用
- UVA 11752 The Super Powers(至少是两个正整数的幂的幂数)
- Leetcode之super ugly number
- 313. Super Ugly Number