bitmasks
WorldWide_D
这个作者很懒,什么都没留下…
展开
-
[bzoj4007]【JLOI2015】战争调度(war)
Description脸哥最近来到了一个神奇的王国,王国里的公民每个公民有两个下属或者没有下属,这种 关系刚好组成一个 n 层的完全二叉树。公民 i 的下属是2* i 和2* i+1。最下层的公民即叶子 节点的公民是平民,平民没有下属,最上层的是国王,中间是各级贵族。现在这个王国爆发了 战争,国王需要决定每一个平民是去种地以供应粮食还是参加战争,每一个贵族(包括国王自 己)是去管理后勤还是领原创 2016-06-30 10:54:58 · 1219 阅读 · 0 评论 -
[codeforces232E]Quick Tortoise
题目大意给定一张n*m的地图,每个位置(i,j)可能是空地和障碍物。有q个询问,每次询问给出四个数x1,y1,x2,y2,问从(x1,y1)是否能走到(x2,y2)(只能向右或向下走到空地,保证两个位置都是空地)数据范围1≤n,m≤500 1≤q≤600,000分析点比较多,无法储存每对点之间的连通性,而且似乎用图论的知识难以下手。 考虑离线去做。 假如现在确定了一个数y,然后处理所有跨过第y原创 2016-09-03 21:48:08 · 475 阅读 · 0 评论 -
[51nod1169] 石子游戏
题目大意给定n堆石子的个数。两人轮流操作,每个人每次操作可以从一堆里取出至少一个石子。不能拿的人输。 现在可以在游戏开始前,选择任意堆石子(不能全选),并从中分别取出任意颗石子。求有多少种取法使先手必败。n≤100 每堆石子个数不超过10910^9,答案对109+710^9+7取模分析首先一堆石子的sg值为石子个数,然后选手必败需要满足所有sg值异或和为0。 然后考虑到不能全选这一条件,可以原创 2016-12-22 12:24:09 · 726 阅读 · 0 评论 -
插头DP学习小结
插头dp一般可以解决一类需要记录联通状态的题目(比如一个棋盘求满足某某条件的路径等)。定义插头一个格子如果与它正上方的格子联通,则有一个上插头,下左右亦然。轮廓线我们解决问题的时候,一般是外循环从上到下枚举,第二重循环从左到右枚举。那么当决策到(i,j)时,轮廓线就是(i,1)—(i,j-1)的下方,(i,j-1)的右方和(i-1,j)—(i-1,m)连接成长度m+1的线,在这里记录的状态是m个下插原创 2017-02-23 15:28:56 · 2411 阅读 · 0 评论 -
[51nod1142] 棋子遍历棋盘
题目大意一个M*N的棋盘, 有一个棋子每次可以向上下左右4个方向中的1个走1步,让这个棋子从(1,1)位置出发,走遍所有格子恰好1次,最后回到(1,1),有多少种不同的走法。由于方案数量巨大,输出数量Mod 10^9 + 7即可。M≤10910^9 N≤5分析题目相当于求一条哈密顿回路,那么可以不用管哪里出发(这个很显然) 发现N很小!很自然地可以往插头DP方面想。用括号序表示插头的联通状态即可原创 2017-02-23 16:26:15 · 1102 阅读 · 0 评论 -
[51nod1411] 矩阵取数问题 V3
题目大意给定一个m行n列的矩阵,你可以从任意位置开始取数,到达任意位置都可以结束,每次可以走到的数是当前这个数上下左右的邻居之一,唯一的限制是每个位置只能经过一次,也就是说你的路径不自交。所经过的数的总作为你的得分,求最大的得分。n,m≤10 整数范围[-10000000,10000000]分析求一条路径、上下左右走的矩阵,很容易想到插头DP。 设f[i][j][S]表示决策到(i,j),插头状原创 2017-02-23 22:45:00 · 937 阅读 · 1 评论 -
[bzoj4006] [JLOI2015]管道连接
题目描述小铭铭最近进入了某情报部门,该部门正在被如何建立安全的通道连接困扰。该部门有 n 个情报站,用 1 到 n 的整数编号。给出 m 对情报站 ui;vi 和费用 wi,表示情 报站 ui 和 vi 之间可以花费 wi 单位资源建立通道。 如果一个情报站经过若干个建立好的通道可以到达另外一个情报站,那么这两个情报站就 建立了通道连接。形式化地,若 ui 和 vi 建立了通道,那么它们建立了原创 2017-03-23 22:15:11 · 819 阅读 · 0 评论 -
[bzoj5043]密码破译
题目大意有一个n个数的数组a和一个非负整数k(a[],k未知),但是你知道数组b,对于任意i满足bi=ai^k。你还知道∑ai=m\sum ai=m求可能最小的k,无解输出-1 n≤100000,bi≤2602^{60}分析其实这种题都是套路题。 首先可以预处理cnt[i]表示b数组有几个数二进制第i位为1,p[i]表示m的二进制第i位是否为1。然后从高到低逐位确定k。设f[i][j]表示确定到原创 2017-09-23 22:01:06 · 1274 阅读 · 0 评论 -
[agc017F]Zigzag
题目大意有一个n行的三角形,第i行有i个格子。第i行第j个格子用(i,j)表示。从(i,j)可以到达(i+1,j)和(i+1,j+1)。现在要确定m条从(1,1)出发到第n行的路径。设第a条路径走到的第b个格子是(b,X[a,b]),对于任意a < b,不能存在i,使得X[a,i]>X[b,i]。同时还有K条形如(a,b,c)的限制,表示第a条路径第b个点到第b+1个点必须往方向c走。 求合法的方原创 2017-10-22 14:50:49 · 907 阅读 · 0 评论