ICode9

精准搜索请尝试: 精确搜索
  • CF1103D Codeforces Round #534 (Div. 1) Professional layer 状压 DP2019-10-30 18:03:27

    题目传送门 https://codeforces.com/contest/1103/problem/D 题解 失去信仰的低水平选手的看题解的心路历程。 一开始看题目以为是选出一些数,每个数可以除掉一个不超过 \(k\) 的因数,使得被选出这些数的 \(\gcd\) 为 \(1\)。 错的有点离谱。然后想了半天,想了一个奇怪的思路结果没

  • solution - 1039 - N2019-10-29 10:04:21

    暴力分都骗全了 A: DFS骗分70 B: 单调队列+打表骗分60 C: 暴力换根+统计答案骗分*20 总分:\(70 + 60 + 20 = 150\) A(分段状压) 题意简述: 给你K个数量为1的物品及其重量,你有N的数量限制和M的重量限制,求背包最大重量 解: \(K<=40\)没法状压,但是\(K<=20\)是没问题的 考虑分成两半进行状压

  • $[SDOI2009]Bill$的挑战2019-10-26 09:53:44

    \([SDOI2009]Bill\)的挑战 观察数据范围,显然是状压。 但是如果你将\(K\)加进状态中,手推一下就会发现这里要用到容斥。 但我又不是讲容斥的是吧。。。 所以我们尝试不将\(K\)加入状态中,而是在最后枚举恰好含有\(K\)个元素的子集个数。 我们设\(f[i][j]\)表示对于所有集合\(i\)中的

  • 机房测试模拟1(day2):矩阵+树上贪心+bfs+状压2019-10-22 17:55:51

    T1:入阵曲    n,m<=400,k<=1e6 分析:考虑只有一行的情况: 将这一行求前缀和后,一段区间的和x=sum[r]-sum[l-1],如果x%k==0,那么sum[r]%k - sum[l-1]%k == 0 转化一下,也就是说:sum[r]与sum[l-1]在模k的意义下相等。 所以对于一行的来说,O(n)地for一遍,用一个桶记录一下模k意义下的值相同的

  • [洛谷P3943]星空(BFS+状压DP)2019-10-22 12:54:29

    题意 有\(n\)个灯泡,除了\(k\)个之外都是亮的,有\(m\)种长度的区间翻转,求最少次数使得所有所有灯泡都亮,保证有解,\((n\leq 40000,k\leq 8,m\leq 64)\) 思路 可以发现区间翻转之后区间内的相对关系不变; 第一步:将区间翻转转换成单点翻转?考虑差分,令\(pre_i\)表示\(i\)与\(i-1\)的异或值(

  • Keyboard Purchase CodeForces - 1238E (状压)2019-10-09 22:53:23

    大意: 给定串$s$, 字符集为字母表前$m$个字符, 求一个$m$排列$pos$, 使得$\sum\limits_{i=2}^n|{pos}_{s_{i-1}}-{pos}_{s_{i}}|$最小.   状压$dp$, 费用提前计算一下, 预处理$cost_{i,j}$表示与字符$i$相连的状态为$j$时的方案数 总复杂度是$O(n 2^n)$ #include <iostream>#inc

  • 状压dp 题目总结2019-10-07 12:50:49

    Yet Another Substring Reverse codeforces 590 div3 题意: 给定一个字符串(只包含小写的前20个字母) 可以对任意指定区间进行一次翻转操作  问最长连续字符串长度使得不存在重复字符 题解: 只有二十种字符 所以很明显是一个状压dp       设置dp[i]表示 状态i的所有子集的最长长

  • 状压DP(超详细!!!)2019-10-06 12:57:15

    一、定义 总述 状态压缩动态规划,就是我们俗称的状压DP,是利用计算机二进制的性质来描述状态的一种DP方式。 很多棋盘问题都运用到了状压,同时,状压也很经常和BFS及DP连用。 状压dp其实就是将状态压缩成2进制来保存 其特征就是看起来有点像搜索,每个格子的状态只有1或0 ,是另一类非常

  • [多校联考2019(Round 5 T1)] [ATCoder3912]Xor Tree(状压dp)2019-10-06 10:01:19

    [多校联考2019(Round 5)] [ATCoder3912]Xor Tree(状压dp) 题面 给出一棵n个点的树,每条边有边权v,每次操作选中两个点,将这两个点之间的路径上的边权全部异或某个值,求使得最终所有边权为0的最小操作次数。 \(v \leq 15,n \leq 10^5\) 分析 首先把边权转化为点权。记一个点的点权为与

  • 考试总结 模拟572019-10-04 21:57:32

    考前被奶了,然后没什么感觉,很冷静的水完T1,本来一直以为这会是套水题,然后才发现T2T3不可做,心态很炸地写完了,T2暴力写错了很多东西,调了好久 T1淼题 T2「状压DP」「边化点」 首先根据n很小可以想到状压 60%算法: 根据拓扑序构造DAG 定义f[s][ss]表示构造出来的DAG中 选出来的点集是s,最

  • [CSP-S模拟测试]:巨神兵(状压DP)2019-10-03 21:54:06

    题目描述 欧贝利斯克的巨神兵很喜欢有向图,有一天他找到了一张$n$个点$m$条边的有向图。欧贝利斯克认为一个没有环的有向图是优美的,请问这张图有多少个子图(即选定一个边集)是优美的?答案对$1,000,000,007$取模。 输入格式 第一行两个整数$n$和$m$。接下来$m$行每行两个整数表示一条

  • Codeforces1234F. Yet Another Substring Reverse(状压dp)2019-10-03 16:53:57

    题目链接:传送门 思路: 由于只能翻转一次子串,就相当于找出两个不连续的子串,把在后面的一个子串翻转过来,和第一个子串拼接。 因为题目仅要求子串中的字符不重复,所以字符的先后顺序无关,翻转的操作就相当于: 选出两个不连续的子串,且他们没有相同的字符,两个子串的长度之和就是答案的一种

  • LG3092 「USACO2013NOV」No Change 状压DP2019-10-02 23:54:25

    问题描述 https://www.luogu.org/problem/P3092 题解 观察到 \(k \le 16\) ,自然想到对 \(k\) 状压。 设 \(opt[i]\) 代表使用硬币状况为 \(i\) 时,最多可以买到 \(opt[i]\) 个物品。 然后 \(opt[i]\) 在DP过程中二分求出。 \(\mathrm{Code}\) #include<bits/stdc++.h> using name

  • v·y「状压dp」2019-10-01 21:54:11

    一直对状压dp怀有一种恐惧感 不会打,不会调,关键是不会调 做了这两道题,虽然还是不会状压dp,但总比之前好了一些 y    普通状压应该很好打 复杂度$O(2^d*n*(n+m))$ for(ll i=2;i<=d;i++){ for(ll state=0;state<=maxn;state++){ for(ll x=1;x<=n;x++){

  • LG1879 「USACO2006NOV」Corn Fields 状压DP2019-09-30 09:53:31

    问题描述 LG1879 题解 设\(opt[i][j]\)代表前\(i\)行,且第\(i\)行状态为\(j\)的方案数。 枚举\(j\),再枚举\(k\),\(k\)为上一行的状态。 判断\(j,k\)能否共存(j&k==0) 计数转移即可。 必须加强位运算能力。 \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; templat

  • IPUOJ24101旅行商问题(状压dp)2019-09-28 20:58:42

      题目↓(建议全屏看图)   常规状压,集合思想;挺简单的  具体看代码吧 #include<bits/stdc++.h>using namespace std;#define fr(g,h) for(int g = 0; g < h; g++)const int N = 25, M = 2100000;int n,nn,mm,a[N][N],f[N][M];inline void init (){ scanf("%d",&n); fr(i

  • bzoj4036 [HAOI2015]按位或 状压DP + MinMax 容斥2019-09-27 21:03:23

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4036 题解 变成 \(2^n-1\) 的意思显然就是每一个数位都出现了。 那么通过 MinMax 容斥,可以把问题转化为对于一个集合 \(S\),求 \(S\) 中至少有一个元素出现的概率。 这个问题等价于求 \(S\) 中没有任何一个元素出现的概率

  • 【状压dp】最短Hamilton路径2019-09-22 16:35:49

    最短Hamilton路径 给定一张 n 个点的带权无向图,点从 0~ n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。 输入格式 第一行输入整数n。 接下来n行每行n个整数,其中第ii行第jj个整数表示点ii到jj的距离(记为

  • loj6177 「美团 CodeM 初赛 Round B」送外卖2 最短路+状压dp2019-09-20 15:56:56

    题目传送门 https://loj.ac/problem/6177 题解 一直不知道允不允许这样的情况:取了第一的任务的货物后前往配送的时候,顺路取了第二个货物。 然后发现如果不可以这样的话,那么原题就是一个 \(O(n^3+q^2)\) 算法就能过的题,和数据范围远远不搭配。 所以显然是允许的。根据这个数据范围,

  • 洛谷P3694 邦邦的大合唱站队 状压DP2019-09-19 10:55:40

    题目链接:https://www.luogu.org/problem/P3694 题意:n(1e5)个偶像分属m(20)个乐队,排成一列,现在要求重新安排队列,使来自同一乐队的偶像连续的站在一起。重新安排的办法是,让若干偶像出列(剩下的偶像不动),然后让出列的偶像一个个归队到原来的空位,归队的位置任意。 请问最少让多少偶像出列? 分

  • Codeforces 1215E Marbles 状压DP2019-09-18 20:05:19

    题目链接:https://www.luogu.org/problem/CF1215E 题意:给一个数字序列(长度为4e5),数字大小为(1-20),求每次交换相邻两数字使得所有相同数字在一个线段的最小交换次数 分析:我们考虑将每一种数字按最终答案里的顺序,向左挪动,直至到达其在最终答案的位置,在该过程中,显然会形成一个前半部分已

  • hdu3605--Escape(最大流+状压)2019-09-18 17:42:07

    题目地址 I’m here 题目大意 地球要末日了,有n个人,m个星球,接下来n行给出每个人能不能到这第i个星球居住 ,最后一行给出m个数,是这m个星球每个最多住多少人。问你最后能不能全都转移出地球。 解题思路 看到这个题,学过最大流的肯定都想到了是最大流,但最大流最难的不是算法,而是

  • CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths2019-09-18 15:51:30

    树上启发式合并(静态链分治)模板题。 首先一个串能重排形成是回文串当且仅当其字符数量最多有一个为奇数。 所以我们对字符集状压,\(0\)表示偶,\(1\)表示奇。 记\(dis_u\)为\(1\)到\(u\)的路径上的字符集。 那么对于点对\(u,v\),其路径上的字符集为\(dis_u\oplus dis_v\)。

  • bzoj1072/scoi2007 排列(状压dp2019-09-10 19:43:45

    Description 给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0)。例如123434有90种排列能 被2整除,其中末位为2的有30种,末位为4的有60种。 Input 输入第一行是一个整数T,表示测试数据的个数,以下每行一组s和d,中间用空格隔开。s保证只包含数字0, 1 , 2, 3,

  • Luogu_2704 炮兵阵地【题解】 状压DP2019-09-10 09:50:59

    题目链接:https://www.luogu.org/problem/P2704 蓝书状压DP例题。 读入时把山全部改为1,平地0。 还是先考虑预处理。 把所有单行合法的点记录下来,也就是1的左右两格都是0。 设f[i][j][k],表示在i行从i-1的j转移到k的最多的炮兵数。 那么肯定j和k所代表的状态按位与为0,j和k和原图的按

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有