笔试-小米/百词斩-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
百词斩的题目看着就让人头大,堪比之前搜狗的题目
最后一题都没做完,对题目感兴趣的可以看这里
