
[Dynamic programming]动态规划
Zeolim
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[主席树单点更新区间极值动态开点][最长上升子序列] CodeForces 474 F. Pathwalks
题意: 给定一张图 联通或不联通, 求最大的路径长度 使得路径边号递增且权值递增 其实就是 线段树/树状数组 求最长上升子序列且限制转移条件为边两点时才能转移 考虑建1e5棵线段树/树状数组进行维护 下标是权值 值是以下标为结尾的lis 必然爆炸,所以用主席树动态开点维护查询即可 代码瞎搞一下就行 #include <bits/stdc++.h> using nam...原创 2019-10-21 20:21:37 · 304 阅读 · 0 评论 -
[DP][bitset][线段树]练习赛53 A C E
A 超越学姐爱字符串 A:超越学姐非常喜欢自己的名字,以至于英文字母她只喜欢“c”和“y”。因此超越学姐喜欢只含有“c”和“y”的字符串,且字符串中不能出现两个连续的“c”。请你求出有多少种长度为n的字符串是超越学姐喜欢的字符串。答案对1e9+7取模。 解题思路:设dp[MAXN][2] 代表第i个位置是c 或 y的情况数 有dp[1][0] = dp[1][1] =1 则每...原创 2019-10-16 21:20:44 · 292 阅读 · 0 评论 -
[树上DP] I 2019 P2634 [国家集训队]聪聪可可
求树上简单路径长度为2019倍数的路径条数 解题思路 : 二维状态dp[i][j]代表i节点的子树上所有点到i的距离为j的个数 考虑两点u, v,两点间的贡献为ans += dp[u][i] * dp[v][(2019 - i - v + 2019) % 2019]; i =0 - 2018 此时u的贡献会转移为dp[u][(i + val(边权)) % 2019] += d...原创 2019-10-08 20:54:07 · 359 阅读 · 0 评论 -
[dp]第十届蓝桥杯国赛CB组C
题意:任选素数组合为2019, 求总方案数。 计数dp傻逼题 场上死活跑不出来结果, 一进循环素数表就变零,从头调到尾 无fuck说,八字不合 答案:55965365465060 /* Zeolim - An AC a day keeps the bug away */ //#pragma GCC optimize(2) #include <bits/stdc++.h&...原创 2019-05-26 13:43:40 · 515 阅读 · 0 评论 -
[概率dp] 流浪地球
现在告诉你每只救援队的目标发动机的编号以及这只救援队在规定时间内成功救援的概率,假如有至少k个行星发动机能够得到重启,则认为地球会被拯救。请你设计一个程序,帮助人类完成这个计算。 第一行给出N,M,K。N代表人类派出的救援队总数,M代表被摧毁的行星发动机,K代表至少需要重启的行星发动机总数。(1<=N<=1e5,K<=M<=2000) 接下来N行,每行给出ai,pi,...原创 2019-05-14 10:57:54 · 237 阅读 · 0 评论 -
[DP] D. Beautiful Array
http://codeforces.com/problemset/problem/1155/D 基础的线性dp 先导知识点:最大子段和 dp[i] = max(dp[i - 1] + arr[i] , 0) dp[0]转移最大子段和 dp[1]转移dp[0]正在乘val的最大子段和 dp[2]转移dp[1]乘val后的最大子段和 ll ans = 0; for(in...原创 2019-05-01 08:34:50 · 410 阅读 · 0 评论 -
[DP] 简单的烦恼
此题是一个有条件限制的01背包 解法1: 首先 最大体积肯定是 其次 易得大于体积 t 的状态只能由小于 t 的状态转移而来 解法2: 最大答案肯定是 t 体积以内的最大非 t 体积 + max val[i] 所以对物品排序, 用t体积背前n - 1个物品, 然后加上max val[i] int main() { ios::sync_with_stdio(fal...原创 2019-04-21 18:44:48 · 233 阅读 · 0 评论 -
[动态规划]51nod 1101 换零钱
1101 换零钱 N元钱换为零钱,有多少不同的换法?币值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。 例如:5分钱换为零钱,有以下4种换法: 1、5个1分 2、1个2分3个1分 3、2个2分1个1分 4、1个5分 (由于结果可能会很大,输出Mod 10^9 + 7的结果) 收起 输入 输入1个数N,N = 100表示1元钱。(1 <= N ...原创 2019-03-27 13:50:22 · 296 阅读 · 0 评论 -
[洛谷] P1508 吃吃吃
简单DP 注意最后取值即可 //#pragma GCC optimize(2) #include <cstdio> #include <iostream> #include <cstdlib> #include <cmath> #include <cctype> #include <string> #include ...原创 2018-10-18 09:57:49 · 272 阅读 · 0 评论 -
[模板] 循环数组/数组的最大子段和
数组的最大子段和 不断保留当前段的最大值, 时间复杂度O(n) 初始段为首位元素 若该段加下一元素比下一元素大 则段加和有意义且可累积更大和 若非则断段, 段从下一元素开始从新累计 循环数组则要考虑首尾相接是和最大的情况 若首尾相接 则必定有 中间段之和最负 求出最负段的和 用总元素和减去最负段的和 即为该情况的解 具体可用所有元素取负后再求最大子段和 该和求负即为...原创 2018-10-12 11:01:53 · 221 阅读 · 0 评论 -
[洛谷] P1091 合唱队形
思路很好想 从前从后两遍最长上升子序列 而且要用n方的算法 nlogn不易记录当前位值 数据不严谨 题目要求是先递增后递减序列 结果数据给了全递增数列 也算合法 真的是醉醉的 //#pragma GCC optimize(2) #include <cstdio> #include <iostream> #include <cstdlib> #in...原创 2018-09-20 17:05:28 · 323 阅读 · 0 评论 -
[洛谷] P1515 旅行
dfs 递推 都是15ms 递推: //#pragma GCC optimize(2) #include <cstdio> #include <iostream> #include <cstdlib> #include <cmath> #include <cctype> #include <string> #incl...原创 2018-09-24 11:41:43 · 587 阅读 · 0 评论 -
[洛谷] P2677 超级书架2
贪心 DP 背包 //#pragma GCC optimize(2) #include <cstdio> #include <iostream> #include <cstdlib> #include <cmath> #include <cctype> #include <string> #include <cs...原创 2018-09-24 10:55:55 · 432 阅读 · 0 评论 -
牛客小白月赛7
A.送分题 题目描述 做水题就是在浪费时间,但是一场比赛要是没有送分的签到题,大家的比赛体验就会很差。为了优化你的比赛体验又不浪费你的读题时间,我并不打算给你很复杂的故事背景,你只需要复制下面的代码并选择正确的语言提交即可通过此题。 #include<iostream> using namespace std; long long f(long long n) { ...原创 2018-09-19 09:08:03 · 226 阅读 · 0 评论 -
[DP] [01] [洛谷] P1510 味精填海
基础01背包DP 考察对背包决策过程的理解 #pragma GCC optimize(2) #include <cstdio> #include <iostream> #include <cstdlib> #include <cmath> #include <cctype> #include <string> #in...原创 2018-08-16 07:14:16 · 322 阅读 · 0 评论 -
[DP] [洛谷] P1048 采药
//#pragma GCC optimize(2) #include <cstdio> #include <iostream> #include <cstdlib> #include <cmath> #include <cctype> #include <string> #include <cstring>原创 2018-08-11 16:19:26 · 325 阅读 · 0 评论 -
[DP][DFS]P1164 小A点菜
没有任何思路 //#pragma GCC optimize(2) #include <cstdio> #include <iostream> #include <cstdlib> #include <cmath> #include <cctype> #include <string> #include <cstr...原创 2018-08-11 16:18:25 · 216 阅读 · 0 评论 -
[DP] [01背包] [洛谷] P1060 开心的金明
基础01背包练习 value of j[i] equal to vj[i] * wj[i] #pragma GCC optimize(2) #include <cstdio> #include <iostream> #include <cstdlib> #include <cmath> #include <cctype> ...原创 2018-08-11 16:17:22 · 194 阅读 · 0 评论 -
[DP] [模板] 01背包
1.标准模板 以横轴坐标为体积 以纵轴坐标为当前物品至首物品 则 dp[i][j] 即为 OPT(体积j, 物品1 - i) //#pragma GCC optimize(2) #include <cstdio> #include <iostream> #include <cstdlib> #include <cmath> #include...原创 2018-08-11 15:14:12 · 208 阅读 · 0 评论