关闭

[agc017f]Zigzag

前言DP题,我当然不会啦。题目大意请你找到m个n位二进制数,对于相邻两个,i+1的前j位的和不小于i的前j位的和。 此外还有对于某个二进制数某位必须是几的若干个限制。DP很容易想到设dp[i,s]表示做到第i个二进制数第i个是s,每次枚举前一个,复杂度很大。 转移复杂度太大了,我们来尝试优化。 如果可以不用枚举前一个就好了。 那么不如让前一个对着当前的改变吧! 设dp[i,j,s]表示做到...
阅读(51) 评论(0)

[agc016f]Games on DAG

前言感觉是简单DP。 肯定是状压。 然后你只需要想到按照mex划分即可。题意一个有向无环图,求有多少边集的子集组成的图,使得sg1 xor sg2>0sg_1\ xor\ sg_2>0DP正难则反,考虑使1和2sg值相等。 设dpsdp_s表示只考虑s这个点集的答案(可以不包含1和2)。 我们把s划分为A和B,其中B是mex最小的点集,那么A中每个点至少要连向B一条边,B中点可以随意连向A,...
阅读(78) 评论(0)

[agc012e]Camel and Oases

前言很容易的就发现了只有log次跳跃。 然后状压DP。 似乎就是个简单题吧(怎么比12c还简单)题意一排点,两点间有距离。 初始你有一个行走值v,如果相邻两点距离不超过v你可以自由在这两点行走。 当v大于0时,你可以选择某一时刻突然飞到任意点,这样做后v会减半(下取整)。 问从每个位置初始出发能否到达所有位置。DP预处理left[i,j]表示在i行走值已经减半j次能往左走到哪,同理有rig...
阅读(69) 评论(0)

[JZOJ5041]游戏

题目描述有一天小A和小B在一棵有N个节点的树上玩游戏,初始时1号节点上有一枚硬币。游戏以如下方式进行: ●每一轮,小A选取一个节点,并在该节点上画一个叉 ●紧接着,小B将硬币移动到一个相邻的、没有被画叉的节点 ●小B在硬币原来所在的节点上画一个叉 以上三步不停重复,直到小B无法再移动硬币。而在游戏过程中,小A全程被戴上眼罩,因此小A无法准确地知道每一个时刻硬币在哪一个节点上。他只知道树的形态...
阅读(118) 评论(0)

小H的卡片

题目描述状压dp显然我们只要能选出一些数,使它们能够组合成1即合法。 根据裴蜀定理,显然是最大公约数为1时合法。 容易想到状态压缩dp保存每个质因数是否出现,但质因数太多了,怎么办? 可以枚举一张卡片必须被我们选,那么就只剩下最多9个质因数了。 于是做n次状压dp即可。#include #include #include #define f...
阅读(177) 评论(0)

魔方阵

题目大意太麻烦了……打表做法请先阅读OJ上本题的题解。 我们发现只需要维护可扩展源三角形,然后用最小表示法只有10种状态! 然后打表,flag[i,j]表示状态i变成状态j的方案数,dt1[i]和dt2[i]分别表示状态i下可选取的一级三角形和二级三角形个数,然后DP显然。#include #include #define fo(i,a,b) for(i=a...
阅读(243) 评论(0)

[GDKOI2016]染色大战

题目大意一个矩形,每个格点初始时是黑或白。 两方轮流操作,每次将一个白格点染黑,如果因为这次操作每将一个1*1正方形的四个格点都变黑可以获得该正方形的权值,一次操作使得获得权值不为0那么可以继续操作。 求两者采用最优策略下先手得到的分数与后手得到的分数的差。模拟列个状压DP然后就是模拟题意,注意使用位运算优化常数。#include #include #inc...
阅读(361) 评论(0)
    个人资料
    • 访问:250732次
    • 积分:10087
    • 等级:
    • 排名:第1807名
    • 原创:743篇
    • 转载:4篇
    • 译文:0篇
    • 评论:187条
    最新评论
    文章分类