状态压缩
Myriad_Dreamin
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #454 (Div. 2, based on Technocup 2018 Elimination Round 4) E - Party
状态压缩dp 如果本来就在关系网之内,最小步是0,上一个状态是-1(不存在) 如果通过新的关系到达的步骤小于之前的步骤,就更新。#include <iostream> #include <cstring> using namespace std; const int init=-1; int minstep[1<<22],friends[22]; struct list{ int las原创 2017-12-24 12:15:52 · 263 阅读 · 0 评论 -
Kuangbin专题 - 简单搜索 - D - Fliptile
关灯问题需要注意的一点是:单调不能完成的任务是一定不能完成的,没有反复开关灯的操作…单调向下枚举… 这里我观察到了(i-1,j)点为1时是必须开一次灯的。 枚举第一行是否开灯即可(因为没有作为是否参考的第零行)。 很巧妙的是,这样参考下来,检查最后一行是否all0,如果不是,这样的开灯方式就一定不能完成操作。#include <cstdio> #include <cstring> int ma原创 2018-01-04 18:35:45 · 285 阅读 · 0 评论 -
Codeforces #488div.2 - 994E - Careful Maneuvering(状态压缩+暴力枚举)
首先讲一下状态压缩的方法:每一位代表一架大飞船,那么长度为606060的位串就代表了一组大飞船。 其次我们考虑何时飞船能被击毁:很明显当大飞船和小飞船在同一条直线上时,这两架大飞船就会被击毁。 同时,两排大飞船是对称的,这就能极方便地求出他们确定的直线在y轴上的截距。 由于数据很弱:把每一个在y轴上的点的情况用状态压缩表示出来,再O(n^2)枚举所有小飞船(t1,t2)(t1,t2)(t1,...原创 2018-06-17 04:27:48 · 407 阅读 · 0 评论