- 必不可少的题干
然而并没有什么鸟用
题干解析
- 没啥,暴搜,思路详见代码
剪枝
- ps.不懂请留言
然而并不一定能及时被看见 - 剪枝1:迭代搜索,层数超了就返回。
- 剪枝2:上限判断,如若剩余数的最大值加一起也小于n,返回。
- 剪枝3:搜索顺序,从大到小枚举。
- 剪枝4:如果当前值已经大于n,返回。
- 剪枝5~N:很多在循环条件中的小剪枝。
#include<bits/stdc++.h>
using namespace std;
int n,m,a[100001],u[100001],s[100001],ans;
inline int check(int t,int k){
for(int i=t;i>=t/2;i--)
if(u[k-a[i]]) return 0;
return <


789

被折叠的 条评论
为什么被折叠?



