笔试-小米/百词斩-180920(算法)
笔试-小米-180920
- 单选 10,多选 10,编程 2
1. 小米大礼包
思路
- 部分和问题
- DFS
C++(67%,TLE)
- 原题 N <= 20,用 DFS 不会超时,这里改成 200 了
#include int n; int p[210]; int m; bool dfs(int i, int sum) { if (i == n) return sum == m; if (dfs(i + 1, sum + p[i])) return true; if (dfs(i + 1, sum)) return true; return false; } int main() { scanf("%d", &n); for (int i = 0; i < n; ++i) scanf("%d", &p[i]); scanf("%d", &m); if (dfs(0, 0)) printf("1"); else printf("0"); return 0; }
2. 最优分割
低保(18%)
- 第一题浪费了好多时间,只能拿个低保了
n, m = list(map(int, input().split())) A = list(map(int, input().split())) if sum(A) % m == 0: print(sum(A) // m)
笔试-百词斩-180920
百词斩的题目看着就让人头大,堪比之前搜狗的题目
最后一题都没做完,对题目感兴趣的可以看这里