状压DP
v5zsq
新的一天,新的不会
展开
-
POJ 1185 炮兵阵地(状态压缩DP)
Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用”H” 表示),也可能是平原(用”P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示原创 2015-08-01 10:59:29 · 765 阅读 · 0 评论 -
BJTUOJ 1852 hwf的交作业计划(状压DP)
Description众所周知,hwfhwfhwf是全部科目的课代表,因此他需要负责将收到的nnn类不同科目的作业交到nnn个不同的地方,但是AikyAiky Aiky 从来都是晚交作业的,所以 hwfhwfhwf 需要在下课101010分钟这么短的时间内帮他补交作业,并且他需要交完所有作业后赶回来上课,所以他决定找到路程最短的交作业方法。另外hwfhwfhwf不喜欢经过同一个地方,所以他不会...原创 2018-04-26 15:44:15 · 349 阅读 · 0 评论 -
CodeForces 53 E.Dead Ends(状压DP)
Description给出一个nnn个点mmm条边的无向连通图,问删掉若干边使得该图变成一个恰有KKK个叶子的树的方案数 Input第一行三个整数n,m,Kn,m,Kn,m,K表示点数、边数和要求叶子数,之后mmm行每行两个整数u,vu,vu,v表示一条无向边(3≤n≤10,n−1≤m≤n(n−1)2,2≤k≤n−1)(3≤n≤10,n−1≤m≤n(n−1)2,2≤k≤n−1)(3...原创 2018-04-21 22:01:15 · 384 阅读 · 0 评论 -
HDU 6149 Valley Numer II(状压DP)
Description众所周知,度度熊非常喜欢图。它最近发现了图中也是可以出现 valleyvalleyvalley —— 山谷的,像下面这张图。为了形成山谷,首先要将一个图的顶点标记为高点或者低点。标记完成后如果一个顶点三元组<X,Y,Z><X,Y,Z>中,XXX和YYY之间有边,YYY与ZZZ之间也有边,同时XXX和ZZZ是高点,YYY是低点,那么它们就...原创 2018-04-08 11:30:19 · 384 阅读 · 0 评论 -
CodeForces 16 E.Fish(状压DP+概率DP)
Description有nnn只鱼,编号111~nnn,第iii只鱼和第jjj只鱼相遇后,第iii只鱼吃掉第jjj只鱼的概率为aijaija_{ij},每个时刻只会有一对鱼相遇,问最后第iii只鱼存活下来的概率 Input第一行一整数nnn,之后输入一n×nn×nn\times n概率矩阵(aij)(aij)(a_{ij})(1≤n≤19,0≤aij≤1,aii=0,aij+aji=1...原创 2018-03-25 15:59:38 · 409 阅读 · 0 评论 -
CodeForces 11 D.A Simple Task(状压DP)
Description给出一张nnn个点mmm条边的无向图,问简单环个数Input第一行两个整数n,mn,mn,m表示点数和边数,之后mmm行每行两个整数u,vu,vu,v表示一条无向边,无重边无自环(1≤n≤19,0≤m≤n(n−1)2)(1≤n≤19,0≤m≤n(n−1)2)(1\le n\le 19,0\le m\le \frac{n(n-1)}{2})Output输出简...原创 2018-03-18 22:28:48 · 427 阅读 · 0 评论 -
CodeForces 8 C.Looking for Order(状压DP)
Description给出nnn个物品的二维坐标以及起点坐标,每次要从起点出去拿一件或两件物品回到起点,两点之间距离定义为欧氏距离的平方,问把所有物品拿回起点所走最短距离以及对应最短距离下拿物品的顺序Input首先输入两个整数sx,sysx,sysx,sy表示起点坐标,之后输入一整数nnn表示物品数量,最后nnn行每行两个整数xi,yixi,yix_i,y_i表示第iii个物品的坐标(...原创 2018-03-18 16:19:04 · 371 阅读 · 0 评论 -
CodeForces 401 D.Roman and Numbers(状压DP)
Description给出一正整数nn,求满足以下三个条件的xx的个数1.xx相当于是nn的各位数字打乱2.xx无前导零3.xx被mm整除 Input两个整数n,m(1≤n≤10181,≤m≤100)n,m(1\le n\le 10^{18}1,\le m\le 100)Output输出满足条件的xx个数 Sample Input104 2Sample原创 2018-01-08 20:23:46 · 312 阅读 · 0 评论 -
CodeForces 383 E.Vowels(容斥原理+状压DP)
Description给出nn个长度为33的由′a′'a'~′z′'z'组成的单词,一个单词是正确的当且仅当其包含至少一个元音字母,这里的元音字母是′a′'a'~′x′'x'的一个子集,对于所有元音字母集合,求这nn个单词中正确单词的数量平方的异或和Input第一行一整数nn表示单词个数,之后输入nn个只由′a′'a'~′z′'z'组成的长度为33的单词(1≤n≤104)(1\le n原创 2018-01-07 19:58:54 · 675 阅读 · 1 评论 -
CodeForces 83 E.Two Subsequences(状压DP)
Description定义010101串之间的映射fff满足以下四个条件:1.f(NULL)=NULLf(NULL)=NULLf(NULL)=NULL2.f(s)=s,sf(s)=s,sf(s)=s,s为任意010101串3.f(s1,s2)f(s1,s2)f(s_1,s_2)为以s1s1s_1为前缀,s2s2s_2为后缀的最短010101串4.f(a1,...,an)=f(f...原创 2018-07-16 12:06:05 · 365 阅读 · 0 评论 -
CodeForces 111 C.Petya and Spiders(状压DP)
Description给出一个n×mn×mn\times m的矩阵,每个位置有一只蜘蛛,每秒蜘蛛会向上下左右移动一步或者待在原地不动,问一秒后没有蜘蛛的位置数量最大值Input两个整数n,m(1≤n,m,n⋅m≤40)n,m(1≤n,m,n⋅m≤40)n,m(1\le n,m,n\cdot m\le 40)Output输出没有蜘蛛位置数量最大值Sample Input1...原创 2018-07-16 14:06:37 · 399 阅读 · 2 评论 -
Newcoder 109 E.求长度(spfa+状压DP)
Description给定一幅nnn个点mmm条边的图和SSS个一定要经过的点,问从000号点出发,经过这SSS个点再回到000号点的最短路径长度是多少。Input第一行一个整数TTT表示数据组数对于每组数据,第一行两个整数n,mn,mn,m表示点数和边数接下来mmm行,每行三个整数x,y,zx, y, zx,y,z表示xyxyxy之间有一条长度为ccc的双向边接下来一个整数SSS接...原创 2018-10-18 19:18:00 · 201 阅读 · 0 评论 -
Newcoder 111 C.托米航空公司(状压DP)
Description但是现在有一个小小的问题需要解决,托米家的飞机每排有mmm个座位,有nnn排座位。因此座椅形成了m×nm\times nm×n的网格(忽略过道),公司为每次航班都出售K张票。了满足口号中的“翅膀”部分,座位必须遵守以下规则:座位被占用时,座位正前方和座位后方的座位以及当前座位左边和右边必须是空的(大概是因为这个飞机会很大吧,bossbossboss就是这么任性哼)。然后...原创 2018-10-15 12:09:58 · 396 阅读 · 0 评论 -
Newcoder 111 B.托米看电影(状压DP)
Description有一天,nnn个女孩子一起去托米家的电影院看电影。她们都订了同一排的票,订完票后还剩下一些时间,她们就去附近购物了,当她们回来的时候,电影已经开始了。门口检票的托米让她们一个接一个找到位置并坐下。但是,打印电影票的机器坏了。打印出来的座位号不是连续的数字,而是111到kkk之间的随机整数(说明有重复的),其中kkk是她们行中的座位总数。当一个女孩走进一排座位时,座位号从...原创 2018-10-15 11:10:48 · 353 阅读 · 0 评论 -
Newcoder 147 B.Enumeration not optimization(状压DP+树形DP)
Description给出一个nnn个点mmm条边的无向图,边有边权,对于这张图的任意一个有根生成树,定义其权值为∑e∈{x,y}we⋅max(dx,dy)\sum\limits_{e\in \{x,y\}}w_e\cdot max(d_x,d_y)e∈{x,y}∑we⋅max(dx,dy)其中dxd_xdx为xxx点在生成树中的深度,统计这张图所有有根生成树权值之和,结果模1...原创 2018-09-19 16:24:09 · 249 阅读 · 0 评论 -
HDU 6407 Pop the Balloons(状压DP+高精度)
Description给出一个n×mn×mn\times m的区域,如果一个位置为QQQ表示该位置有一个气球,每次射击可以射中一个气球并扎破这个气球所处行列上所有的气球,问射击1,...,k1,...,k1,...,k次扎破所有气球的方案数Input第一行一整数TTT表示用例组数,每组用例首先输入三个整数n,m,kn,m,kn,m,k表示区域范围和最多可以射击的次数,最后输入一个n×m...原创 2018-09-11 21:18:50 · 346 阅读 · 0 评论 -
HDU 6321 Problem C. Dynamic Graph Matching(状压DP)
Description有nnn个点,mmm次加边或删边操作,每次操作结束后查询kkk匹配的方案数,k=1,2,...,n2k=1,2,...,n2k=1,2,...,\frac{n}{2}Input第一行输入一整数TTT表示用例组数,每组用例首先输入两个整数n,mn,mn,m,之后mmm行每行表示一种操作(1≤T≤10,1≤n≤10,n%2=0,1≤m≤30000)(1≤T≤10,...原创 2018-09-04 08:22:45 · 169 阅读 · 0 评论 -
CodeForces 79 D.Password(SPFA+状压DP)
Description有nnn个开关,初始状态均为关闭状态,现在要通过若干操作打开其中的kkk个开关x1,...,xkx1,...,xkx_1,...,x_k,每次操作可以选取一个起点后反转该起点及之后共a1,...,ala1,...,ala_1,...,a_l个开关的状态,问最少要几步操作可以达到要求,如果无解则输出−1−1-1Input第一行输入三个整数n,k,ln,k,ln,k,...原创 2018-07-15 15:54:36 · 518 阅读 · 0 评论 -
CodeForces 76 C.Mutation(状压DP+容斥原理+高维前缀和)
Description给出一个由前kkk个大写字母组成的字符串,每次可以花费titit_i代价删去该字符串中所有的第iii个大写字母,一个字符串的代价为该字符串每对相邻字符的代价,给出一k×kk×kk\times k的矩阵表示两个相邻的大写字母的代价矩阵,问有多少种删除方案使得删除的代价以及剩余字符串的代价之和不超过TTT,注意剩余字符串需非空Input第一行三个整数n,k,Tn,k,...原创 2018-07-15 11:27:18 · 836 阅读 · 0 评论 -
CodeForces 895 C.Square Subsets(状压DP+线性基)
Description给出nnn个数a1,...,ana1,...,ana_1,...,a_n,问从这nnn个数中选一非空子集使得乘积是完全平方数的方案数Input第一行一整数nnn表示数的个数,之后输入nnn个整数ai(1≤n≤105,1≤ai≤70)ai(1≤n≤105,1≤ai≤70)a_i(1\le n\le 10^5,1\le a_i\le 70)Output输出方案...原创 2018-01-15 15:09:29 · 532 阅读 · 0 评论 -
HDU 6151 Party(状压DP+Hall定理)
Description给出一个二部图,左边nn个点,标记分别为a1,a2,...,ana_1,a_2,...,a_n,右边mm个点,标记分别为b1,b2,...,bmb_1,b_2,...,b_m,给出一个n×mn\times m的矩阵表示二部图的边,11表示连边00表示不连边,qq次查询,每次查询给出一个tt,在标记被tt整除的点中选取一个非空子集,使得该子集中每一个点都属于原图中一条边,且原创 2018-01-22 16:31:28 · 552 阅读 · 0 评论 -
SPOJ 2829 TLE - Time Limit Exceeded(状压DP)
Description 给出两整数n和m,要求构造一个长度为n的序列a[1],..,a[n],使得 1.0<=a[i] < 2^m 2.a[i]%c[i]!=0 3.a[i]&a[i+1]=0 问合法序列数量 Input 第一行两整数n和m,之后一个长度为n的序列c[i](1<=n<=50,1<=m<=15,0 < c[i]<=2^m) Output 输出合法序列数量,结果模1e9原创 2017-04-10 16:57:38 · 619 阅读 · 0 评论 -
GYM 100883 A.Random Fightings (状压DP)
Description n个人打架,每两个人打架的概率是相同的,且每次只会有两个人打架,i打败j的概率是A[i][j],一个人被打败就没法打架了,问最后第i个人获胜的概率是多少 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n表示人数,之后一个n*n矩阵A,A[i][j]表示i打败j的概率 (1<=n<=20,0<=a[i][j]<=1) Output 对于每组用例,输出原创 2017-03-14 13:43:17 · 361 阅读 · 0 评论 -
HDU 5816 Hearthstone(状压DP)
Description 有一个卡组,有两种卡牌,A牌n张,B牌m张,抽到一张A牌可以从卡组中再抽两张,抽到一张B牌可以给敌人造成一定的伤害,现在告诉敌人的血量P以及m张B牌的伤害值,初始状态可以从卡组中拿一张牌,问有多大概率可以打败敌人(即抽到牌的总伤害值大于等于敌人的血量) Input 第一行一整数T表示用例组数,每组用例首先输入三个整数p,n,m分别表示敌人血量,A牌数,B牌数,之后m个整原创 2016-08-30 19:36:01 · 432 阅读 · 0 评论 -
POJ 2411 && HDU 1400 Mondriaan's Dream(状态压缩DP)
Description 一块n*m的矩阵,现在要用1*2的地砖将其铺满,问所有可能的方案有多少种。地砖可以横着铺也可以竖着铺 Input 多组用例,每组用例占一行包括两个整数n,m,以0 0结束输入 Output 对于每组用例,输出总方案数 Sample Input 1 2 1 3 1 4 2 2 2 3 2 4 2 11 4 11 0 0 Sample Outpu原创 2015-09-03 08:27:12 · 831 阅读 · 0 评论 -
HDU 5117 Fluorescent(状压DP)
Description 有n个灯泡,初始均为关闭状态,m个开关,每个开关可以改变一些灯泡的状态(开变关,关变开),打开每个开关的操作是随机等概率的,以X表示每次开着灯泡的数量,求E(x^3) mod 1e9+7 Input 第一行为一整数T表示用例组数,每组用例第一行为两个整数n和m分别表示灯泡数量和开关数量,之后m行每行表示一个开关控制的灯泡数量和编号 Output 对于每组用例,输出E原创 2016-04-02 10:11:05 · 1075 阅读 · 0 评论 -
POJ 3311 Hie with the Pie(状态压缩DP+Floyd)
Description 题意是有n个城市(1~n)和一个披萨店(0),要求一条回路,从0出发,又回到0,而且距离最短 Input 多组输入,每组用例第一行为一个整数n表示成熟数量,之后为一个(n+1)*(n+1)矩阵表示n个城市和披萨店之间的距离矩阵,以n=0结束输入 Output 对于每组用例,输出最短距离 Sample Input 3 0 1 10 10 1 0 1 2 1原创 2015-09-03 08:26:52 · 1030 阅读 · 0 评论 -
HDU 3341 Lost's revenge(AC自动机+状态压缩DP)
Description 给出N个优良的基因段,每段长度小于等于10,只含有AGCT四种碱基。 现给一段基因片段S,|S|Input 多组用例,每组用例第一行为一个整数N表示模式串个数,最后一行为文本串S,以N=0结束输入 Output 对于每组用例,输出对文本串重排列后最多能含有多少优良基因 Sample Input 3 AC CG GT CGAT 1 AA AAA原创 2015-08-14 11:00:32 · 676 阅读 · 0 评论 -
HDU 4529 郑厂长系列故事——N骑士问题(状态压缩DP)
Description 郑厂长不是正厂长 也不是副厂长 他根本就不是厂长 还是那个腾讯公司的码农 一个业余时间喜欢下棋的码农 最近,郑厂长对八皇后问题很感兴趣,拿着国际象棋研究了好几天,终于研究透了。兴奋之余,坐在棋盘前的他又开始无聊了。无意间,他看见眼前的棋盘上只摆了八个皇后,感觉空荡荡的,恰好又发现身边还有几个骑士,于是,他想把这些骑士也摆到棋盘上去,当然棋原创 2015-08-01 12:56:26 · 865 阅读 · 0 评论 -
CodeForces 449 D.Jzzhu and Numbers(状压DP+容斥原理)
Description 给出一个n个数a[i]的集合S,问S有多少个子集&起来是0 Input 第一行一整数n表示集合元素数量,之后n个整数a[i]表示该集合中的元素(1<=n<=1e6,0<=a[i]<=1e6) Output 输出合法子集数量,结果模1e9+7 Sample Input 4 0 1 2 3 Sample Output 10 Solution 设dp[i]为原创 2017-04-12 16:20:16 · 768 阅读 · 0 评论 -
CodeForces 385 D.Bear and Floodlight(状压DP+计算几何)
Description 二维平面上有n个探照灯,第i个灯在(xi,yi)出,且可以照亮任意a[i]度角的范围,问这n个灯最多可照亮x轴上区间[l,r]区域从l开始被照亮的连续的最长长度 Input 第一行三个整数n,l,r表示灯的数量和要照亮的范围,之后n行每行三个整数xi,yi,ai分别表示第i个灯的二维坐标和照亮的范围(1<=n<=20,-1e5<=l<=r<=1e5,-1000<=xi<原创 2017-04-16 14:27:44 · 425 阅读 · 0 评论 -
CodeForces 293 B.Distinct Paths(dfs+状压DP)
Description给出一个n×mn\times m的矩阵,有一些格子已经有颜色了,现在要给每个没染色的格子染色,颜色有kk种,用11~kk表示,要求所有从左上角到右下角的路径(只能往下和往右走)上格子颜色各不相同,问方案数 Input第一行三个整数n,m,kn,m,k,之后输入一个n×mn\times m矩阵表示染色情况,00表示未染色的格子(1≤n,m≤1000,1≤k≤10)(1\le n,原创 2018-01-04 13:59:49 · 336 阅读 · 0 评论 -
CodeForces 107 D.Crime Management(状压DP+矩阵快速幂)
Description要求用2626个大写字母构造一个长度为nn的字符串,使得其满足mm个限制条件,每个限制条件要求某个字符出现次数必须是某个数的倍数,问满足条件的字符串个数Input第一行两个整数n,mn,m表示字符串长度和限制数,之后mm行每行输入一字符cc和一整数numnum表示字符串中cc字符出现次数必须是numnum的倍数(0≤n≤1018,0≤m≤1000)(0\le n\le 10^{原创 2017-12-30 19:55:17 · 441 阅读 · 0 评论 -
CodeForces 698 C. LRU(状压DP)
Description n???,???k???,????,?????pi?????,??????????,???????,?????????,?10^100??????????????? Input ???????n?k,???n?????????????? (1<=k<=n<=20,0<=pi<=1,sum(pi)=1) Output ??10^100????????????????原创 2016-08-02 10:26:34 · 697 阅读 · 0 评论 -
HDU 6125 Free from square(数论+状压DP)
Description从11到nn中选取kk个不同的数字使得乘积为无平方因子数,问方案数Input第一行一整数TT表示用例组数,每组用例输入两个整数nn个kk(1≤T≤5,1≤n,k≤500)(1\le T\le 5,1\le n,k\le 500)Output对于每组用例,输出方案数,结果模109+710^9+7Sample Input2 4 2 6 4Sample Output6 19So原创 2017-09-28 10:03:18 · 396 阅读 · 0 评论 -
HDU 5713 K个联通块(状压DP)
Description众所周知,度度熊喜欢图,尤其是联通的图。今天,它在图上又玩出了新花样,新高度。有一张无重边的无向图, 求有多少个边集,使得删掉边集里的边后,图里恰好有K个连通块。 Input第一行为T,表示输入数据组数。对于每组数据,第一行三个整数N,M,K,表示N个点M条边的图。 接下来M行每行两个整数a,b,表示点a和点b之间有一条边。1≤T≤201≤K≤N≤140≤M≤N∗(N+1)/原创 2017-08-29 09:28:19 · 678 阅读 · 0 评论 -
CodeForces 580 D.Kefa and Dishes(状压DP)
Description 有n道菜,吃第i道菜的满意度为val[i],有k种高级吃法,如果在吃完第x[i]道菜后马上吃第y[i]道菜会多出一个z[i]的好感度,问吃m道菜可以得到的最大满意度 Input 第一行三个整数n,m,k分别表示菜品总数,要吃的菜品数量以及吃法种类,之后输入n个整数val[i]表示吃第i个菜品的满意度,最后k行每行三个整数x[i],y[i],z[i]表示在第x[i]道菜后原创 2017-07-26 23:00:46 · 350 阅读 · 0 评论 -
POJ 2923 Relocation(状压DP+01背包)
Description 已知n件货物的重量,先要用两个载重量分别为c1和c2的卡车装载这些货物,问最少需要装载几次 Input 第一行为一整数T表示用例组数,每组用例第一行为三个整数n,c1和c2分别表示货物数量以及两辆卡车的载重量,第二行n个整数表示这n件物品的重量 Output 对于每组用例,输出将这些货物装载完毕所需的最少装载次数,每组用例后跟一空行 Sample Input 2原创 2015-10-09 20:44:28 · 788 阅读 · 0 评论 -
CodeForces 21 D.Traveling Graph(状压DP+Floyd)
Description 给出一张n个点m条边的无向图,每条边有边权,要求从1开始经过所有边至少一次后回到1处,问路径边权和最小值 Input 第一行两个整数n和m表示点数和边数,之后m行每行三个整数u,v,w表示u和v之间有一条边权为w的边(1<=n<=15,0<=m<=2000,1<=w<=1e4) Output 输出从1开始经过所有边至少一次后回到1处的路径边权和最小值 Sample原创 2017-07-19 09:29:05 · 542 阅读 · 0 评论 -
Newcoder 110 E.Pocky游戏(状压DP)
Description社交活动中有nnn个男孩和nnn个女孩。他们玩的其中一场比赛是通过pockypockypocky传递橡皮筋(pockypockypocky是一种长条饼干)。与正常的社交活动游戏不同,只有两支队伍,男队和女队。游戏规则如下,1.两队都有nnn个编号从111到nnn的马甲。2.对手队将给出长度为mmm的整数序列a1,...,ama_1,...,a_ma1,...,a...原创 2018-10-17 15:46:56 · 377 阅读 · 0 评论