随笔分类 -  动态规划===============

摘要:#include<bits/stdc++.h> #define N 22 #define M 11 #define db double #define ll long long #define ldb long double #define ull unsigned long long using 阅读全文
posted @ 2021-07-20 02:45 Creed-qwq 阅读(53) 评论(0) 推荐(0) 编辑
摘要:Pro: https://codeforces.com/gym/102900/problem/C 给定X,Y 计算 \[ \sum_{i=0}^X \sum_{j=0}^Y [i\&j=0] \lfloor log(i+j)+1 \rfloor \\ X,Y<=1e9 \\ 1e4组数据 阅读全文
posted @ 2020-12-19 17:31 Creed-qwq 阅读(241) 评论(1) 推荐(0) 编辑
摘要:Pro: https://www.luogu.com.cn/problem/CF1437F 有n个渔民,每个渔民钓了一条重ai的鱼 渔民按任意顺序展示他们的鱼。 若当前渔民的鱼的重量为x,之前展示过的鱼的最大重量y 一个排列满足条件当且仅当对于每个x,满足2yx2xy 阅读全文
posted @ 2020-11-12 22:48 Creed-qwq 阅读(99) 评论(0) 推荐(0) 编辑
摘要:Pro: https://ac.nowcoder.com/acm/contest/7502/F 在n个位置填入0~9的数字,再给出m个限制 每个限制[li,ri]表示这个区间的区间乘积为9的倍数 求方案数 Sol: 直接上题解 #include<bits/stdc++.h> #define N 阅读全文
posted @ 2020-11-08 21:12 Creed-qwq 阅读(122) 评论(0) 推荐(0) 编辑
摘要:Pro: https://pintia.cn/problem-sets/1322796904464203776/problems/1322798545527595009 有一个用小方块搭成的立体图形 给出它的左前视图每一列的高度 然后钦定k个位置的方块数 求一共有多少种合法的方案 \(n,m,k 阅读全文
posted @ 2020-11-05 13:13 Creed-qwq 阅读(357) 评论(0) 推荐(0) 编辑
摘要:Pro:https://www.luogu.com.cn/problem/P3942 Sol: 时隔多年重新学会了这道题目的正确做法 首先我们可以得到这样一个显然的贪心就是 每次找到一个深度最深的没被覆盖的点 然后找到他的K级祖先 然后把他K级祖先周围距离不超过K的点全部覆盖 正确性显然 但这样做的 阅读全文
posted @ 2020-10-19 21:58 Creed-qwq 阅读(122) 评论(0) 推荐(0) 编辑
摘要:链接:http://zhengruioi.com/problem/265 第一种操作使得你可以任意访问该字符串的全排列 因此可以得到n!a!b!c!d!种方案 然后把每一组(a,b,c,d)看成一个节点的话 第二种操作就是在这些节点中连边 最终答案就是一个最长路 tarj 阅读全文
posted @ 2020-09-25 05:15 Creed-qwq 阅读(113) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.org/problemnew/show/CF809C 这个题的难点主要在于看出这个矩阵所有数字 1后,第i行第j列就等于i^j。 这个规律对着这个表,观察一会大概是可以观察出来的。 然后就是容斥+数位dp求解即可。 cpp include define N 110 阅读全文
posted @ 2019-05-02 10:17 Creed-qwq 阅读(256) 评论(0) 推荐(0) 编辑
摘要:这是一道麻将自动机的模板题(雾 其实这是一道dp套dp借助自动机实现的麻将好题! 首先把期望转化一下,拆成sigema p(x i) 现在要计算i张牌不胡的概率,也就等价于计算i张牌不胡的方案数。 如果我们能建立一个关于麻将的自动机,支持插入麻将,判断当前牌型是否能胡,既可以在麻将自动机上dp解决本 阅读全文
posted @ 2019-04-27 18:30 Creed-qwq 阅读(291) 评论(0) 推荐(0) 编辑
摘要:感觉比ZJOI的麻将要休闲很多啊。 这个题就是一个最优化问题,没有面子的特殊牌型可以直接用复杂度较低的贪心判掉。 有面子的话就是一个经典dp。(曾经还在ZJOI写过这个毒瘤东西 大概就是存一下对子,面子,杠子的个数,再记一下上两个位置剩余的牌的个数,转移非常简单。 写起来挺爽的。 cpp inclu 阅读全文
posted @ 2019-04-26 06:34 Creed-qwq 阅读(402) 评论(0) 推荐(0) 编辑
摘要:比较套路的DP优化高斯消元。 考虑射从里面射到第i面镜子的光线为F[i],外面为G[i]。 显然有 A[i]✖F[i]+B[i]✖G[i]=F[i+1] A[i+1]✖G[i+1]+B[i+1]✖F[i+1]=G[i] 然后如果一直F[i],G[i],就可以直接推出F[i+1]和G[i+1]。 但是 阅读全文
posted @ 2019-04-25 01:23 Creed-qwq 阅读(192) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P5319 把题目要求最大化的那个式子,取一手对数,然后就变成了一个分数规划问题。 二分后AC自动机上DP即可。 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define N 阅读全文
posted @ 2019-04-25 01:17 Creed-qwq 阅读(181) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-04-18 17:04 Creed-qwq 阅读(2) 评论(0) 推荐(0) 编辑
摘要:非常神仙的一道题! 题意:给出某n个数字跑完全背包m容量的dp数组,求满足要求的字典序最小的n个元素,不知道n是多少。 首先考虑付公主的背包这个题。 对dp数组求一个ln,设它为F。 已知 e^(G1+G2+G3)=e^F,其中Gi是第i个物品的生成函数求ln。(重量为i的物品的Gi=∑ 1/i ✖ 阅读全文
posted @ 2019-04-03 06:54 Creed-qwq 阅读(118) 评论(0) 推荐(0) 编辑
摘要:https://loj.ac/problem/6072 虽然结合了很多算法,但是一步一步地推一下还不算太难的一道题。 首先考虑枚举枚举有用的苹果的集合,然后去算生成树个数。 先考虑怎么计算生成树个数。 发现可以使用matrix tree。 所有有用点可以和有用点以及坏点连边,所有不是坏点的无用点只能 阅读全文
posted @ 2019-04-02 11:29 Creed-qwq 阅读(288) 评论(0) 推荐(0) 编辑
摘要:挺不错的一个题。 题意即为求一个图的独立集方案数。 如果原图是一棵树,可以直接大力f[x][0/1]来dp。 由于非树边很少,考虑2^11容斥,强制某些点必选,然后再O(n)dp,这样应该过不了。 发现这个容斥本质上是对一些点进行修改,修改的形式是强制它必须选。 直接xjb上一个ddp就没了。 这里 阅读全文
posted @ 2019-03-31 00:35 Creed-qwq 阅读(211) 评论(0) 推荐(0) 编辑
摘要:pro: 维护一个01字符串,支持在结尾动态加字符。 每一个长度 define N 22000 define L 20000 define eps 1e 7 define inf 1e9+7 define db double define ll long long define ldb long d 阅读全文
posted @ 2019-02-25 16:16 Creed-qwq 阅读(354) 评论(0) 推荐(0) 编辑
摘要:01背包退背包 首先dp出01背包数组dp[]。 完全背包退背包 首先dp出完全背包数组dp[]。 转移的时候带系数的背包不一定可以退背包。 还有个比较经典的题 https://www.luogu.org/problemnew/show/P1450 容斥求多重背包方案数。 阅读全文
posted @ 2019-02-07 07:00 Creed-qwq 阅读(820) 评论(0) 推荐(0) 编辑
摘要:比赛的时候又被垃圾题艹翻了啊。 这个题显然是区间dp 考虑怎么转移。 类似消除方块和ZYB玩字符串那样的一个DP。 可以从左到右依次考虑消除。 dp[l][r][k][flag]表示区间l,r左边粘着k个flag。 转移方式: 1.考虑强行去继续黏上下一个字符并使k+1。 2.考虑把一段跳过去,让被 阅读全文
posted @ 2019-02-02 23:10 Creed-qwq 阅读(213) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示