摘要: 01边bfs 这题很容易想到的就是根据符号的情况建图,把每个点方格的对角线看成图的节点,有线相连就是边权就是0,没有就是1 然后跑最短路,但是最短路用的优先队列维护是有logn的代价的 这题还有一个更快的方法,就是双端队列。。0边放队头,1边放队尾,然后虽然每个点会入队多次,但是我们只要取第一次出队 阅读全文
posted @ 2019-03-20 19:15 清楚少女ひなこ 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 模拟+dfs 这个题就三行,搜索的话我们从右向左,从上到下。。 如果是在1,2行我们就直接枚举0~n所有数,但是到了第三行,最直接的就是填上这一列上前两行的数的和modN,在此基础上判断该填的数有没有被使用 如果没有被使用,且这个地方没有被赋值,就可以把要填的数填上去,如果被填了切符合要求,就不需要 阅读全文
posted @ 2019-03-19 20:45 清楚少女ひなこ 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 可持久化Trie 需要知道一个异或的特点,和前缀和差不多 a\[p] xor a\[p+1] xor....xor a\[n] xor x = a\[p 1] xor a\[n] xor x 所以我们把a\[1...n]的异或和预处理出来,用s\[i]表示,用一个可持久化Trie维护 问题就转化成s 阅读全文
posted @ 2019-03-18 21:46 清楚少女ひなこ 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 还是数独。。 比上一个多了个分数矩阵,其实没什么差别,但是数据好像水了许多。。。 include define INF 0x3f3f3f3f using namespace std; typedef long long ll; inline int lowbit(int x){ return x & 阅读全文
posted @ 2019-03-18 19:44 清楚少女ひなこ 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 二进制优化+dfs 话说这题数据中真的丧心病狂。。不加inline还过不去。。 因为不会DLX只好用二进制来优化了。。。万万没想到还是低空飘过 我们在行、列、格分别用一个9位二进制常数来记录什么数能放什么数不能放(1能0不能),这样对每一个格子把三个数&起来,就能得到一个新的二进制常数,来表示这个格 阅读全文
posted @ 2019-03-17 20:42 清楚少女ひなこ 阅读(166) 评论(0) 推荐(0) 编辑
摘要: IDA 这题真不会写。。估价函数太巧妙了。。 按照lyd神牛的说法我们把a\[i+1]=a\[i]+1记为正确后继,反之则记为错误后继 那么考虑最优的一次交换区间,至多能够纠正三个错误后继,所以我们统计序列的错误后继数n,n/3就是估价函数的值 因为把某区间移到后面和把另外一个区间移到它前面是等价的 阅读全文
posted @ 2019-03-16 17:46 清楚少女ひなこ 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 水。。。。。 直接bfs。。。 include define INF 0x3f3f3f3f using namespace std; typedef long long ll; inline int lowbit(int x){ return x & ( x); } inline int read( 阅读全文
posted @ 2019-03-16 14:38 清楚少女ひなこ 阅读(270) 评论(0) 推荐(0) 编辑
摘要: bfs 标准广搜题,主要是把每一步可能的坐标都先预处理出来,会好写很多 每个状态对应三个限制条件,x坐标、y坐标、lie=0表示直立在(x,y),lie=1表示横着躺,左半边在(x,y),lie=2表示竖着躺,上半边在(x,y) include define INF 0x3f3f3f3f using 阅读全文
posted @ 2019-03-16 14:14 清楚少女ひなこ 阅读(252) 评论(0) 推荐(0) 编辑
摘要: A + dijkstra/spfa 第K短路的模板题,就是直接把最短路当成估价函数,保证估价函数的性质(从当前状态转移的估计值一定不大于实际值) 我们建反图从终点跑最短路,就能求出从各个点到终点的最短距离,这样就能满足估价函数的性质了 要注意一点,当起点和终点一样的时候第k短路就变成k+1短了,因为 阅读全文
posted @ 2019-03-15 17:35 清楚少女ひなこ 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 离散化+排序 离散化统计人数就好,本来不难,但是测试点太丧心病狂了。。。CF还是大哥啊 include define INF 0x3f3f3f3f using namespace std; typedef long long ll; inline int lowbit(int x){ return 阅读全文
posted @ 2019-03-14 22:02 清楚少女ひなこ 阅读(212) 评论(0) 推荐(0) 编辑