随笔分类 -  动态规划

摘要:## 题目 ## 题意 给两个括号字符串,找到一个括号序列合法的超字符串 ## 思路 - [类似方法](https://leetcode.cn/problems/shortest-common-supersequence/solutions/2194615/cong-di-gui-dao-di-tu 阅读全文
posted @ 2023-06-14 14:38 俄罗斯刺沙蓬 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目 (Fake Plastic Trees)[https://codeforces.com/problemset/problem/1693/B] 题意 输入 T(≤1e3) 表示 T 组数据。所有数据的 n 之和 ≤2e5。 每组数据输入 n(2≤n≤2e5) 表示一棵 n 个节点的树,编号从 1 阅读全文
posted @ 2023-05-18 17:29 俄罗斯刺沙蓬 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题目 E. Generate a String 题意 输入三个不同的整数 n(1n107)xy(1x,y109)。 从 0 开始,每次可以 + 1 , - 1 ,代价是x,或者当前值 * 2,代价是y 问怎样才能到达n用最小的代价 思路 第一方法是暴 阅读全文
posted @ 2023-05-08 17:37 俄罗斯刺沙蓬 阅读(22) 评论(0) 推荐(0) 编辑
摘要:## 题目 - [B. Greg and Graph](https://codeforces.com/contest/295/problem/B) ## 题意 - 输入 n(1≤n≤500) 表示 n 个点的有向完全图,然后输入 n*n 的邻接矩阵 a,其中 a[i][j] 表示 i 到 j 的边权 阅读全文
posted @ 2023-04-27 21:40 俄罗斯刺沙蓬 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目 D. Remove One Element 题意 输入 n(2≤n≤2e5) 和长为 n 的数组 a(1≤a[i]≤1e9)。 从 a 中去掉一个数(也可以不去掉)。 输出 a 的最长严格递增连续子数组的长度。 思路 一种方法是前缀最长和后缀最长,加起来。这种方法比较简单。 用状态机来写,定义 阅读全文
posted @ 2023-04-25 19:47 俄罗斯刺沙蓬 阅读(31) 评论(0) 推荐(0) 编辑
摘要:题目 B. Tree Tag 题意 思路 因为这是一颗树,所以不管怎么追逐,我们都可以理解为在同一条路上追逐(去掉我们不走的路,就是一个线段) 首先,如果da > db,显然能追上,进一步,da == db时,因为路径的长度是有限的,也显然可以追上 因为树上任意两点的最短路径是固定的,所以a点可以一 阅读全文
posted @ 2023-04-20 21:13 俄罗斯刺沙蓬 阅读(20) 评论(0) 推荐(0) 编辑
摘要:题目 D. Program 题意 给一个长度为n的‘+’,‘-’序列,表示+1和-1 在给m个查询,问忽略[l,r]之间的序列,能走到多少个不同的数字 思路 分为前后缀计算,前缀计算比较简单关键是后缀计算 后缀上,需要关注能够到达的最小值和最大值 定义sufL[i]和sufR[i]分别表示为到达的最 阅读全文
posted @ 2023-04-13 11:45 俄罗斯刺沙蓬 阅读(106) 评论(0) 推荐(0) 编辑
摘要:https://codeforces.com/contest/1766/problem/D 题意找到连续的最长gcd(a+k,b+k) == 1(a < b,k = {0,1,2,...}) 思路: gcd(a+k,b+k) == gcd(a+k,b - a) a - b = 1时特判 可以推出gc 阅读全文
posted @ 2023-04-06 15:34 俄罗斯刺沙蓬 阅读(32) 评论(0) 推荐(0) 编辑
摘要:https://codeforces.com/contest/1762/problem/D 给一个长度为n的permutation,每次一个询问,得到结果为gcd(i,j),请在2*n次之内找到那个是0(或者哪两个之中之一是0) 思路 三个指针i,j,k(i<j<k) 令x=gcd(a[i],a[j 阅读全文
posted @ 2023-04-06 15:34 俄罗斯刺沙蓬 阅读(15) 评论(0) 推荐(0) 编辑
摘要:https://atcoder.jp/contests/arc132/tasks/arc132_c 很难想到的动态规划,优化空间的思路非常巧妙 用相对位置来转移 f[i][j]表示i之前,放置数字的压缩情况为j,的所有方案数 ** f[i+1][(j | (1 << k)) >> 1] += f[i 阅读全文
posted @ 2023-04-06 15:33 俄罗斯刺沙蓬 阅读(32) 评论(0) 推荐(1) 编辑
摘要:https://atcoder.jp/contests/abc259/tasks/abc259_f 树形dp(最简单的那种类型,但是题目的方法还是很巧妙的) 易知:负权边可以忽略 思路 定义 定义f[i][0]表示以i为根的子树尽量用到d[i]-1条边的最大可能(留一条边给父节点联通用) f[i][ 阅读全文
posted @ 2023-04-06 15:32 俄罗斯刺沙蓬 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题目 1811E - Living Sequence 题意 找出第n个,数位中不含‘4’的数字 思路 数位dp + 二分 唯一要注意的就是纯dfs搜索会卡常(hh,就是复杂度太高了),用上一点记忆化 代码 const int N = 14; int dp[N][N]; int a[N]; int l 阅读全文
posted @ 2023-04-05 21:07 俄罗斯刺沙蓬 阅读(23) 评论(0) 推荐(0) 编辑
摘要:题目 https://codeforces.com/contest/1808/problem/C 题意 给两个数 l 和 r (1lr1018) 请找出再这个范围内的一个数字,使得按数位这个数字中的数最大值和最小值之差最小 思路 当 l 和 r 的数位长度不一样时,可 阅读全文
posted @ 2023-04-03 13:57 俄罗斯刺沙蓬 阅读(44) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> #define debug1(a) cout << #a << '=' << a << endl; #define debug2(a, b) cout << #a << " = " << a << " " << #b << " = " << b << 阅读全文
posted @ 2023-03-09 11:20 俄罗斯刺沙蓬 阅读(15) 评论(0) 推荐(0) 编辑
摘要:题目 https://leetcode.cn/problems/number-of-ways-to-earn-points/description/?orderBy=most_votes https://codeforces.com/problemset/problem/148/E 题意(仅第二题) 阅读全文
posted @ 2023-03-07 20:54 俄罗斯刺沙蓬 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题目 https://codeforces.com/problemset/problem/219/D https://leetcode.cn/problems/count-number-of-possible-root-nodes/ https://leetcode.cn/problems/mini 阅读全文
posted @ 2023-03-06 15:47 俄罗斯刺沙蓬 阅读(39) 评论(0) 推荐(0) 编辑
摘要:题目 https://leetcode.cn/problems/count-the-number-of-square-free-subsets/ 思路 类似01背包优化的状态压缩dp(误) 首先按照数字分出是否有平方子集,然后再计数cnt[x] 枚举合法的数字(2 ~ 30),为什么不算1?因为所有 阅读全文
posted @ 2023-02-25 10:11 俄罗斯刺沙蓬 阅读(69) 评论(0) 推荐(0) 编辑
摘要:题目 最长有效括号 方法一:dp int longestValidParentheses(string s) { int ans = 0; stack<int> sta; sta.push(-1); for(int i = 0;i < s.size();i ++) { if(s[i] == '(') 阅读全文
posted @ 2023-02-21 19:02 俄罗斯刺沙蓬 阅读(24) 评论(0) 推荐(0) 编辑
摘要:题目 https://codeforces.com/contest/1788/problem/E 题意 给一个长度为n的数组a 定义一个子段为[x,y],价值是长度(y - x + 1) 要选择一个子段,必须0i=xya[i] 问所有不相交子段的最大价值和是多少 阅读全文
posted @ 2023-02-16 20:55 俄罗斯刺沙蓬 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题目 [https://codeforces.com/contest/1324/problem/E](https://codeforces.com/contest/1324/problem/E) 题意 输入 n(≤2000) h L R (0≤L≤R<h≤2000) 和长为 n 的数组 a(1≤a[ 阅读全文
posted @ 2023-02-13 16:39 俄罗斯刺沙蓬 阅读(10) 评论(0) 推荐(0) 编辑

返回顶端
点击右上角即可分享
微信分享提示