随笔分类 - 学科竞赛--算法学习 / 动态规划
摘要:
写在前面 参考博客< 课程安排 我们首先要解决的问题是: 如何判断课程冲突? 首先如果他们在最开始就冲突了,那么就一定冲突 最开始即 [s%t,f%t] 这一段区间,初相位? 然后呢? 不知道 不妨假设一下,如果他们的t不相同,那么就存在冲突 其实可以画个图 在无限长的区间中,如果t不相同,那么一定
阅读全文

摘要:
最长上升子序列 之前我定义的dp是: dp[n][i]:表示在前n个数中选,并以数a[i]结尾的最长上升序列 但是这个状态的转移有点不自然,感觉就想有很多多余的感觉 if (i<=n-1) dp[n][i]=dp[n-1][i] if (a[i]>a[j] && j<=n-1) dp[n][i]=m
阅读全文

摘要:大佬博客 由于树形dp种类繁多,而且大佬博客中总结的很好,这里我就只记录下我写到的树形dp 《F - Components》 简单的来说就是: 给一颗有n个节点的树,因为对于有n个节点的树,其n个节点有个点集 现在问:由这,每个点集会形成h个连通分量 求连通分量为时,所对应的点集个数 当根u,其下有
阅读全文
摘要:《基于连通性的棋盘式状态压缩dp》 因为最典型的例子是放棋盘的一类问题所以我们叫他为棋盘式:典型例子如下:https://www.acwing.com/problem/content/1066/ 像这类题目如果以dfs的方式思考是不好想的,不如从上到下枚举一下到底每一行的状态到底是如何的, 因为由题
阅读全文
摘要:链接:https://blog.csdn.net/qq_51354600/article/details/120960472
阅读全文
摘要:《题一:Subsequence Path》 原题链接:https://atcoder.jp/contests/abc271/tasks/abc271_e 原题详细题解:https://atcoder.jp/contests/abc271/editorial/4940 题目大意: 有N个城镇编号为1、
阅读全文
摘要:《题一》 原题链接:https://atcoder.jp/contests/abc271/tasks/abc271_d 翻译: 问题陈述 有N张卡片,每面写一个整数。卡片 正面写着一个整数ai,背面写着一位整数bi。 您可以选择将每张卡片的正面或背面都显示出来。 确定您是否可以放置卡片,使可见整数的
阅读全文
摘要:《需求引出》 《情况一:》 在一般的dp问题中,我们的当前项都是可以由前一项推出的, 但是在一些情况下我们要用到前前项的情况,这个时候可以将这个情况当做一个状态表示出来,进行转移 其中0表示:f[i][0]:在第i家店铺,不偷时的最大值 其中1表示:f[i][1]:在第i家店铺,偷时的最大值 转载博
阅读全文
摘要:《最初始的01背包问题》 让我们用暴力搜索试一试: int dfs(int i,int j){} 这个函数的作用是:返回在前i个物品中选,体积不超过j的能得到的最大价值; 1 int dfs(int i,int j) 2 { 3 int res; 4 if (i==0)res=0; 5 if (j<
阅读全文
摘要:最原始问题: 1 给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 2 3 输入格式 4 第一行包含整数 N。 5 6 第二行包含 N 个整数,表示完整序列。 7 8 输出格式 9 输出一个整数,表示最大长度。 10 11 数据范围 12 1≤N≤1000, 13 −109≤
阅读全文
摘要:代码: 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 using namespace std; 5 const int N = 12; 6 int g[N][N], dp[2*N][N][N], n;//注意这
阅读全文
摘要:1 H. eroengine's Sign Problem 2 time limit per test1 second 3 memory limit per test256 megabytes 4 inputstandard input 5 outputstandard output 6 eroen
阅读全文
摘要:均衡 描述: 吉格尔有一种奇怪的“平衡”,他想保持平衡。实际上,该设备不同于任何其他普通天平。 它订购了两条重量可以忽略不计的手臂,每条手臂的长度为15。一些钩子连接到这些手臂上,Gigel想挂起他收集的G重量(1<=G<=20)中的一些重量,因为知道这些重量在1范围内有不同的值。。25.Gigel
阅读全文