sgu 108-self-numbers 2
2011-01-12 13:14
435 查看
sgu 对内存的限制比较大,才2M。这个题主要是用时间换空间。
/* ID: mnlm1991 PROG: sgu 108 Self-numbers 2 LANG: C++ */ #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<vector> #include<algorithm> #include<string> #include<map> #include<set> #include<bitset> #include<queue> #include<iostream> using namespace std; bool visited[64]; int N; int K; int a[5001]; struct DATA { int d; int l; bool operator < (const DATA & other) const { return d < other.d; } }s[5001]; const int MOD = 64; int main() { while (scanf("%d%d", &N, &K) != EOF) { int i; for (i = 0; i < K; i++) { scanf("%d", &s[i].d); s[i].l = i; } sort(s, s + K); int l = 0; int j = 0; memset(visited, 0, sizeof(visited)); for (i = 1; i <= N; i++) { if (visited[i % MOD]) { visited[i % MOD] = false; } else { if (l == s[j].d - 1) { while (l == s[j].d - 1) { a[s[j++].l] = i; } } l++; } int tmp = 0; int j = i; while (j) { tmp += j % 10; j /= 10; } visited[(i + tmp)% MOD] = true; } printf("%d/n", l); for (i = 0; i < K - 1; i++) { printf("%d ", a[i]); } printf("%d/n", a[i]); } return 0; }
相关文章推荐
- sgu 108 Self-numbers 2
- 离线 + 位优化 - SGU 108 Self-numbers 2
- sgu 108 Self-numbers 2
- 离线 + 位优化 - SGU 108 Self-numbers 2
- SGU 108 Self-numbers 2(数论)
- sgu 108 self-numbers 2
- SGU 108 Self-numbers 2
- SGU 108 Self-numbers 2 (另一种滚动数组)
- SGU 108 Self-numbers 2
- Self-numbers 2 - SGU 108
- SGU 108 Self-numbers II 翻译 题解
- SGU 159 - Self-Replicating Numbers
- sgu159 Self-Replicating Numbers DFS+高精
- sgu159:Self-Replicating Numbers
- SGU 108 Self-numbers II
- [SGU 108]Self-numbers II(筛法活用优化+滚动数组)
- SGU 108 Self-numbers II
- leetcode 315. Count of Smaller Numbers After Self
- 315. Count of Smaller Numbers After Self(第四周)
- Self Numbers - POJ 1316 水题