随笔分类 - DP-状态压缩
摘要:题目 n<=20 题解 想了半天3位状态的折半,然后发现空间开不下(时间也不太行) 所以放弃思考,直接枚举答案 答案是a中的一个集合,设为S;记集合S的和为sum[S] 考虑当S确定时,有多少种方案能使答案恰好为sum[S]。为了处理多种sum相同的情况,记S为从前往后考虑,第一次出现最大ans的集
阅读全文
摘要:题目大意 给出长度为m的数组s和数字N,求多少个数k满足0<=k<N且对于每个i=0~m-1,都有gcd(k+i,N)=1当且仅当si=1 m<=40,N以Πpi^ai的方式给出,n<=5e5 题解 先把01翻转变成在x%p=0的x处填1,填出来的显然按照Πpi为一个周期,所以只需要考虑ai=1的情
阅读全文
摘要:题目描述 题解 第一次写插头dp 求哈密顿回路:https://blog.csdn.net/litble/article/details/79369147,本质是维护轮廓线+左右括号序列 本题只需要维护下/右插头即可,状态数是C(m,3)级别的,压一压即可 code #include <bits/s
阅读全文
摘要:d1t1 不知道怎么想的写了线段树维护最小最大值来找分界点 实际上维护双方的和,然后树状数组二分即可 树状数组二分:从高往低位确定,新加的部分就是tr[s+i^k] #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c; a++) #de
阅读全文
摘要:T1 交换00和11没用,所以只会把1从一边换到另一边 T2 分层状压,合法状态132种,转移分别是2千和1千 T3 欧拉公式:V+R=E+2,R是连通块数(包括最外面的无穷大块) 维护点、边、只有四个点的块个数
阅读全文
摘要:题目描述 题解 ~~da☆ze~~ 人类智慧题 假如当前可能所在的集合为S,等价于~~以光速在每个可能的房间之间来回闪现~~ 题目中的门是不同的,并且人物也能够看出具体是ABCD中的那扇门,但是不能通过门看到走到的房间情况,可以当成~~传送门~~ 假设走入A门,根据所在具体房间的不同可能从ABCD四
阅读全文
摘要:题目描述 k组数,每组ni个,数互不相同 把每组数中的一个移到其他组(或者不移动),使得最终每组数的个数不变且总和相等 k include include include include define fo(a,b,c) for (a=b; a=c; a ) using namespace std;
阅读全文
摘要:~~我好菜啊~~ A 题意: 定义p 二进制数为2^k p,给出n和p,求用最小个数的p 二进制数来表示n 1=0 显然当k超过30后,如果不满足则之后也不满足 ②p include include include include define fo(a,b,c) for (a=b; a=c; a
阅读全文
摘要:题目描述 题解 ~~八级sb题~~ 显然可以想到状压 枚举当前的宽度,设表示在当前的宽度下选的 竖边 的状态为s 再设表示状态s1转移到s2的方案数,枚举中间 横边 的集合s3 显然一个合法的方案中不能存在四边都是边的方格,即$s1\&s2\&(s3+2^{I
阅读全文