文章分类 -  搜索——深度优先搜索

摘要:考虑到当前能否选择这头牛 是与上次选哪头牛有关的 因为要满足差值大于k 所以记录一下last 表示选了哪一头牛 然后记忆化一下 有两个坑点 1.注意取绝对值 2.要枚举开头的那头牛 决不能直接dfs(0,0,0) 因为第一头牛与0的差值不一定大于k(或者初始化一下a[0]= INF也阔以) 这里提供 阅读全文
posted @ 2018-10-18 23:08 Patrickpwq 阅读(89) 评论(0) 推荐(0)
摘要:DFS策略:对于当前状态,枚举下一个选哪个(i),如果当前耗时已经超过i的死亡线,ans就累积 然后可以记忆化当前状态标记为true 之后扫到这儿就return 代码不是A的。。和几份题解都对拍了半天没找出问题 如果能指出错误的话请评论 cpp include define N 17 define 阅读全文
posted @ 2018-10-18 16:37 Patrickpwq 阅读(152) 评论(0) 推荐(0)
摘要:"传送门" 我们记录pos1 pos2 pos3 分别代表现在字符串1,2,3的位置 然后判断pos1是否等于pos3 或者pos2是否等于pos3 分别进行dfs 然后我们发现是可以记忆化的 比方当pos1=pos3且pos2=pos3 那会先搜索pos1+1 那么在这一次的dfs 有可能就 提前 阅读全文
posted @ 2018-10-18 14:45 Patrickpwq 阅读(163) 评论(0) 推荐(0)
摘要:先打一个最裸的暴力再优化 10分代码 cpp // luogu judger enable o2 include define N 105 using namespace std; int n,m,a[N][N],true_ans,choose[N]; //n束花 m个瓶子 vector q; vo 阅读全文
posted @ 2018-10-18 11:08 Patrickpwq 阅读(191) 评论(0) 推荐(0)
摘要:其实就是一张图 可知每个点出度为一 由于有环 所以把整个图缩点后会好做得多 在缩点后 每个强联通分量的出度至多为一。 然后我们dfs 直接搜很危险 考虑记忆化 设ans[i]代表第i个强连通分量的答案就好了 详见代码 cpp // luogu judger enable o2 include def 阅读全文
posted @ 2018-10-17 21:34 Patrickpwq 阅读(111) 评论(0) 推荐(0)