链接: 售货员的难题_洛谷
你需要的前置知识
1.基础动态规划以及状压动态规划
2.基本剪枝
3 位运算
一些小细节
1.本题若数据量不大可用dfs解决。
2.适当的剪枝是完成最后几个评分点的关键。
3.快读快写并没有什么用,但习惯写会更好。
4.模块化编程使你的思路更为清晰.
代码
// An highlighted block
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int n,ans,mp[22][22],dp[(1<<20)+1][20+1],ok[N];//mp:原数组,dp:dp数组,ok:状态数组
inline void read(int &x){
//快读模板
int s=0,w=1;
char ch=getchar();
while(ch<'0'