11 2023 档案
发表于 2023-11-30 22:13阅读次数:5评论次数:0
摘要:约定 在本文中,用 代指图的点数,用 代指图的边数,用 代指点 的出度,即以 为出发点的边数。 直接存边 方法 使用一个数组来存边,数组中的每个元素都包含一条边的起点与终点(带边权的图还包含边权)。(或者使用多个数组分别存起点,终
阅读全文 »
发表于 2023-11-30 11:07阅读次数:13评论次数:0
摘要:基本情况 A题秒了。 B题条件没想明白,也不造点数据就无脑交,导致罚了不少时。 B. Laura and Operations Problem - B - Codeforces 我先推出了,对于一个数,当另外两个数的个数之和为偶数时解可行,且这个数本身要能跟后面数替换。 比如 1 1 2 2 3 3
阅读全文 »
发表于 2023-11-29 18:31阅读次数:137评论次数:0
摘要:JAVA的swap实现 JAVA不能操作地址,所以不能像CPP那样方便地实现对基本数据类型的swap。 java中的基本数据类型传递属于引用传递,并不会像c/c++实现指针传递; 通过包装类对象配合反射可以实现数据的交换。 只能通过以下几种方式。 通过数组对象交换 public class Test
阅读全文 »
发表于 2023-11-29 17:53阅读次数:3评论次数:0
摘要:P1363 幻象迷宫 判断无限路径(判环) 难点就在判断该点是否会无限走过。 思路是维护目前 下的传送次数,和历史上 的传送次数。 如果 已经被走过,且传送次数又和历史上不同,说明已经开始无限循环了。 #include<iostream
阅读全文 »
发表于 2023-11-29 16:43阅读次数:22评论次数:0
摘要:P2853 [USACO06DEC] Cow Picnic S 逆向思维 如果顺着题目走,不大好做。 考虑该题要求的是可以供所有奶牛到达的牧场,那么不如从奶牛所在的牧场下手 即对每个奶牛所在的牧场 ,对所有到达点标记。 那么显然当一个点的标记等于 时,说明该牧场是合适的。
阅读全文 »
发表于 2023-11-29 14:26阅读次数:13评论次数:0
摘要:P4017 最大食物链计数 记忆化搜索 DP 角度解 从捕食者向被捕食者建边 维护每个生物的捕食 eat,和被捕食数量 beat。 对每一个食物链顶端 dfs,向下搜索直到找到最低级的生物,记忆化当前结点对应的食物链长度。 #include <iostream> #include <algorith
阅读全文 »
发表于 2023-11-29 13:17阅读次数:22评论次数:0
摘要:DAG拓扑排序 引入 小学奥数类型题。 沏茶过程 (烧水壶) 到 (接水) 到 (烧水 洗茶杯 找茶叶)(并行) 到 (沏茶) 即有先后顺序的流程,且必须所有步骤都能执行。 概述 拓扑排序是对DAG(有向无环图)的顶点进行的一种线性排序,排序序列中每个顶点都会且仅会出现一次,且对于所有有向边 \(u
阅读全文 »
发表于 2023-11-28 21:58阅读次数:3评论次数:0
摘要:引用类型 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。 对象、数组都是引用数据类型。 所有引用类型的默认值都是null。 一
阅读全文 »
发表于 2023-11-28 21:58阅读次数:1评论次数:0
摘要:形式参数与实际参数 形式参数 public static int sum(int a, int b) 实际参数 int x = 10, y = 20; int result = sum(x, y); 两项规则 对于基本数据类型(包括String) 形式参数的操作不会影响实际参数 对于引用数据类型(除
阅读全文 »
发表于 2023-11-28 21:58阅读次数:3评论次数:0
摘要:使用引用类型 导包 import 包路径名 创建 数据类型 变量名称 = new 数据类型() 使用 变量名称.方法名()
阅读全文 »
发表于 2023-11-28 21:58阅读次数:2评论次数:0
摘要:使用定义好的类 导包 如果需要使用的目标类和当前类位于同一个包下的,那么可以省略导包不写。 否则需要使用import导包语句 创建 类名称 对象名 = new 类名称(); 使用 使用成员变量:对象名.成员变量名 调用成员方法:对象名.成员方法名(参数)
阅读全文 »
发表于 2023-11-28 21:58阅读次数:4评论次数:0
摘要:如何定义一个标准的类(POJO类) POJO: Plain Old Java Object 所有成员变量都需要使用private关键字私有化 为每一个成员变量编写一对setter,getter方法 编写一个无参数的构造方法 编写一个全参数的构造方法 public class student { //
阅读全文 »
发表于 2023-11-28 21:58阅读次数:2评论次数:0
摘要:面向对象(object-oriented) 类与对象关系 属性 事物特征描述信息,“是什么” 行为 事物能力行动方案,“能做什么” 类 抽象的,一张“设计图” 对象 具体的,真正的“手机实例” 由类创造对象 类的定义 成员变量(member-variable) 将变量位置直接定义在类中,在方法外 成
阅读全文 »
发表于 2023-11-28 21:58阅读次数:1评论次数:0
摘要:基本数据类型的包装类 基本数据类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean
阅读全文 »
发表于 2023-11-28 21:58阅读次数:8评论次数:0
摘要:构造方法 构造方法就是专门来创建对象的方法。当通过new关键字创建对象时,其实就是在调用构造方法。 定义格式 public 构造方法名(参数类型 参数名称) { 方法体 //return;通常省略不写 } 注意事项 构造方法不能写返回值类型,连void都不能写。 构造方法的名称必须和所在的类名称完全
阅读全文 »
发表于 2023-11-28 21:58阅读次数:16评论次数:0
摘要:(方法)局部变量和成员变量 定义位置不同 局部变量 定义在方法内部 成员变量 直接定义在类当中,在方法外面的 内存中的位置不同 局部变量 在栈stack内存中 成员变量 在堆heap内存中 生命周期不同 局部变量 随着方法的进栈而出现,随着方法的出栈而消失 成员变量 随着对象被创建而出现,随着对象被
阅读全文 »
发表于 2023-11-28 21:58阅读次数:2评论次数:0
摘要:Switch case 特例 如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。 public class Test { public static void main
阅读全文 »
发表于 2023-11-28 21:58阅读次数:4评论次数:0
摘要:String字符串再识 String是一种引用类型,是一个类 只要是字符串就是java.lang.String的对象,如 ”Hello" String str; String这个类为什么不需要导包 所有类都需要导包才能使用,除了两种情况 要使用的目标类,和当前类位于同一个包下。 要使用的目标类,位于
阅读全文 »
发表于 2023-11-28 21:58阅读次数:110评论次数:0
摘要:private关键字用法 超出本类范围之外,不能直接访问 可以间接访问,如利用成员方法赋值,利用成员方法取值 private int age; public void setAge(int num) { if (num > 0) { age = num; } else { System.out.pr
阅读全文 »
发表于 2023-11-28 21:58阅读次数:5评论次数:0
摘要:java循环控制语句 都只能默认作用于所属层次的循环 break 退出循环 continue 跳过本次循环; public class LoopControl { public static void main(String[] args) { int count = 0; for (int i =
阅读全文 »
发表于 2023-11-28 21:58阅读次数:17评论次数:0
摘要:JAVA初始化 数组一旦在内存中被创建了,数组的长度就不能发生改变 动态初始化 直接指定数组的长度,也就是数组当中到底可以存放多少个数据 第一种格式 数据类型[] 数组名称 = new 数据类型[数组长度] 第二种格式(拆分开来) 数据类型[] 数组名称 数组名称 = new 数据类型[数组长度]
阅读全文 »
发表于 2023-11-28 21:58阅读次数:4评论次数:0
摘要:JAVA内存分配 Stack: 主要用来存放局部变量 Heap:凡是new出来的东西,都在堆当中,堆当中的数据有默认值规则: 整数,默认0 浮点数,默认0.0 字符,默认'\u000' 布尔值,默认false 引用类型(包含字符串),默认null 方法区(Method Area)存放与.CLASS相
阅读全文 »
发表于 2023-11-28 21:58阅读次数:3评论次数:0
摘要:JAVA短路逻辑 && //左侧一旦判断直接结束 & //两侧表达式都会执行 || | //同理
阅读全文 »
发表于 2023-11-28 21:58阅读次数:2评论次数:0
摘要:IO流 概述与分类 IO流主要用于传输数据,典型的应用场景有:读写本地文件、上传下载文件。 按照数据传输的方向分 输入流(Input) 让数据进入应用程序中 输出流(Output) 即让数据离开应用程序 按照数据的种类 字节流 可以处理任何一种数据 字符流 只能处理纯文本数据 三步骤 创 做 关
阅读全文 »
发表于 2023-11-28 21:58阅读次数:98评论次数:0
摘要:FileWriter覆盖写入和追加写入 覆盖写入 FileWriter fw = new FileWriter("file02.txt"); fw.write("World"); 追加写入 FileWriter fw = new FileWriter("file02.txt",true); fw.w
阅读全文 »
发表于 2023-11-28 21:55阅读次数:1评论次数:0
摘要:面向过程与面向对象 面向过程 每一个步骤亲力亲为 面向对象 不关心步骤和过程,而是关心谁能帮我做这件事 面向对象三大特征 封装性 继承性 多态性
阅读全文 »
发表于 2023-11-28 21:54阅读次数:15评论次数:0
摘要:ELIPSE常用快捷键 代码格式美化 ctrl + shift + f 智能提示 alt + / 批量替换 alt + shift + r 快速生成get,set方法 Source -> Generate Getters and Setters 快速生成多重载构造方法 Source -> Gener
阅读全文 »
发表于 2023-11-28 20:25阅读次数:20评论次数:0
摘要:P5318 【深基18.例3】查找文献 基本思路 邻接表实现,结果得为了边有序再专门开一个 vector 预处理完再存边。 而且一开始忘记 vis[1] = true 了! #include<iostream> #include<algorithm> #include<cstdio> #includ
阅读全文 »
发表于 2023-11-28 19:25阅读次数:47评论次数:0
摘要:P1955 [NOI2015] 程序自动分析 基本思路 考虑到了不等号的不可传递性,所以决定只开相等的并查集。 然后突发奇想,觉得可以在找父亲的过程中判断是不是冲突。 然而这样就不能路径压缩,显然超时。 并且,根本没看清楚数据范围,实际上这题的数很大,裸开数组会爆炸。 这是一开始的代码 #inclu
阅读全文 »
发表于 2023-11-28 16:08阅读次数:4评论次数:0
摘要:P3879 TJOI2010 阅读理解 基本想法 开一个 map 组成的数组,然后每篇文章分配一个 map。查找的时候在每次都跑一遍。 显然 MLE 了。 改进 既然如此,录入的时候直接把单词出现对应的文章编号存起来就行,就是开一个 map<string, vector<int>>。 但是同一篇文章
阅读全文 »
发表于 2023-11-27 18:12阅读次数:10评论次数:0
摘要:STL之map 学籍管理 题目描述 您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 条): 插入与修改,格式1 NAME SCORE:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 \(\te
阅读全文 »
发表于 2023-11-27 17:42阅读次数:8评论次数:0
摘要:STL之set 木材仓库 题目描述 博艾市有一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是相同的。作为仓库负责人,你有时候会进货,有时候会出货,因此需要维护这个库存。有不超过 100000 条的操作: 进货,格式1 Length:在仓库中放入一根长度为 Length(不超过
阅读全文 »
发表于 2023-11-27 17:18阅读次数:29评论次数:0
摘要:哈希表 引入 哈希表又称散列表,一种以「key-value」形式存储数据的数据结构。所谓以「key-value」形式存储数据,是指任意的键值 key 都唯一对应到内存中的某个位置。只需要输入查找的键值,就可以快速地找到其对应的 value。可以把哈希表理解为一种高级的数组,这种数组的下标可以是很大的
阅读全文 »
发表于 2023-11-27 10:53阅读次数:14评论次数:0
摘要:并查集 概述 并查集是一种树形数据结构,经常用于处理一些集合之间的操作,例如元素查找,集合合并。 不同集合在并查集中以不同的树表示,一般每棵树的根节点会作为当前集合的代表元。 想要查询两个元素是不是在同一集合中,只需要比较两个元素所在集合的代表元是否相同即可。 实现 初始化 const int N
阅读全文 »
发表于 2023-11-26 19:01阅读次数:16评论次数:0
摘要:二叉树的最近公共祖先 概述 对于两个节点 、 ,找到一个深度最大的 , 是 、 的祖先。 则 为这两个节点的最近公共祖先(LCA)。 初始方法 对于 或 : 从该结点一直向上找祖先,知道找到整棵树的根节点,
阅读全文 »
发表于 2023-11-26 09:56阅读次数:127评论次数:0
摘要:基本情况 A题花了快半小时,做出来了但是不如正解。 B题又是老毛病,一条路走到黑,爆搜打出来超时就死命想剪枝和记忆化,没想过换方法(觉得贪心不可行)。 C题其实想的是对的,但是没继续想下去。 A - Jagged Swaps Problem - A - Codeforces 我的解法 没啥好说的,纯
阅读全文 »
发表于 2023-11-25 17:19阅读次数:19评论次数:0
摘要:第13周训练报告 训练 刷区间DP题 P1775 石子合并(弱化版) CF607B Zuma P3205 HNOI2010 合唱队 P1880 NOI1995 石子合并 P4170 CQOI2007 涂色 P1140 相似基因 P4290 HAOI2008 玩具取名 P1063 NOIP2006 提
阅读全文 »
发表于 2023-11-24 19:40阅读次数:2评论次数:0
摘要:P1364 医院设置 存树 struct Node { int left, right, father, value; } t[MAXN]; int main() { for (int i = 1; i <= n; i++) { cin >> t[i].value >> t[i].left >> t
阅读全文 »
发表于 2023-11-24 15:21阅读次数:12评论次数:0
摘要:二叉搜索树 总定义 若左子树不空,则左子树上所有结点的值均小于它的根结点的值。 若右子树不空,则右子树上所有结点的值均大于它的根结点的值。 左、右子树也分别为二叉搜索树。 没有权值相等的结点。 结点定义 当前节点的权值 val 即序列中的数 左孩子的下标与右孩子的下标 ls rs 计数器 cnt 代
阅读全文 »
发表于 2023-11-23 00:00阅读次数:13评论次数:0
摘要:二叉树初探 完美二叉树 理论基础 完美二叉树,即层数为 ,而总结点数为 。 对于每个结点 ,左节点为 ,右节点为 。 显然可以用递归遍历。 存储方式 for (int i = 0; i < 1 << n;
阅读全文 »
发表于 2023-11-21 22:58阅读次数:20评论次数:0
摘要:P2234 [HNOI2002] 营业额统计 题解思路 对原数组排序,记录下排序前的位置。 对排序后的数组构造链表。 从原数组的 往 枚举,比较排序生成链表中该元素的前驱或后继与该元素差值的最小值,加入答案。 在排序生成的链表中删除该元素。 正确性的疑惑 一开始很困惑,难道排
阅读全文 »
发表于 2023-11-21 15:02阅读次数:9评论次数:0
摘要:P1241 括号序列 RE一半 #include<iostream> #include<algorithm> #include<cstdio> #include<stack> using namespace std; string s; char ans[400]; bool vis[400]; i
阅读全文 »
发表于 2023-11-21 11:56阅读次数:9评论次数:0
摘要:初级线性表 vector v.resize(n,m) 重新调整数组大小为 ,如果比原来的小,就删除多余信息。如果比原来的大,就把新增的部分初始化为 ,其中 可以省略。 vector<int> a(n + 1) 初始化。 P3613 [深基15.例2]寄包柜 #incl
阅读全文 »
发表于 2023-11-20 17:10阅读次数:58评论次数:0
摘要:Introduction Story of 0/1 knapsack problems Application of 0/1 knapsack problem On 0-1 Knapsack Problem Model for Security Investment Decision(economi
阅读全文 »
发表于 2023-11-20 11:09阅读次数:10评论次数:0
摘要:P4170 [CQOI2007] 涂色 基本思路 很容易口胡一个状态。 表示 到 的最小操作次数。 然而转移就开始满头大汗。 状态转移 只想到 以及肯定有 \(F_{l,r} = \min(F_{l,r},
阅读全文 »
发表于 2023-11-20 10:16阅读次数:63评论次数:0
摘要:基本情况 做A题的速度比之前快多了,大概20分钟搞定。 B题想了一个贪心错解,想用链表实现,但是不熟练,实现太慢,而且还被hack了。 但是自己hack掉了,造数据上进步。 B. Milena and Admirer Problem - B - Codeforces 我的错解 贪心思路 发现一个大于
阅读全文 »
发表于 2023-11-19 21:11阅读次数:34评论次数:0
摘要:基本情况 第一次在 CF 上 AC 了超过一道题。(毕竟是Div3) B 题卡住了很久。 D 没有深入思考。 B. 250 Thousand Tons of TNT Problem - B - Codeforces 一开始死活过不了的代码: #include <iostream> #include
阅读全文 »
发表于 2023-11-16 12:23阅读次数:55评论次数:0
摘要:P9242 [蓝桥杯 2023 E题] 接龙数列 一眼LIS 但是TLE八个点。 发现是sb了,应该用string来存数直接取首位末位。 改完50分,TLE五个点。 换状态 为以数字 结尾的最长接龙数列。 则顺推每个数字,从每个数字的首位
阅读全文 »
发表于 2023-11-15 16:43阅读次数:16评论次数:0
摘要:P4310 绝世好题 基础思路 类似 。但只有 for(int i=1;i<=n;++i) { for(int j = 1; j < i; ++j) { if(s[i]&s[j])f[i]=max(f[i],f[j]+1); } } 优化时间 一种很妙的剪枝。 因为
阅读全文 »
发表于 2023-11-15 11:50阅读次数:31评论次数:0
摘要:P1854 花店橱窗布置 初始思路 状态方程 为前 种花,装在前 个花瓶内的最大美学值。 状态转移 \[F_{i, j} = \max(F_{i, j}, F_{i - 1, k} + a_{i, j}) j \in [i, v - (f - i)]
阅读全文 »
发表于 2023-11-14 19:22阅读次数:19评论次数:0
摘要:P1004 [NOIP2000 提高组] 方格取数 基本思路 我想的是搞两次二维 DP 第一次搞完之后把走过的删掉,然后搞第二次,然而只有 #include<iostream> #include<algorithm> #include<cstdio> using namespac
阅读全文 »
发表于 2023-11-14 17:53阅读次数:23评论次数:0
发表于 2023-11-12 16:24阅读次数:9评论次数:0
摘要:图论复习之链式前向星存图 理论 其实就是静态建立的邻接表,时间效率为 ,空间效率也为 ,遍历效率也为 。 是边数。 实现 边的结构 struct Edge { int to, w, next;//终点,边权,同起点的上一条边的编号 }edge[max
阅读全文 »
发表于 2023-11-11 18:45阅读次数:36评论次数:0
摘要:动态规划思路 可行性 抛开取模问题和空间限制,该题存在最优子结构性和无后效性,而这两个问题都可以另外处理。 状态定义 为前 棵树,剩余 单位化肥时的最大覆盖距离。 状态转移 先忽略取模问题 推导状态转移方程 不选择对当前第\(\space i\spac
阅读全文 »
发表于 2023-11-11 10:31阅读次数:7评论次数:0
摘要:导弹拦截 被19年薄纱了。 嗯造两个小时,44pts。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 1e5 + 10;
阅读全文 »
发表于 2023-11-10 11:59阅读次数:3评论次数:0
发表于 2023-11-10 10:57阅读次数:9评论次数:0
发表于 2023-11-09 07:42阅读次数:11评论次数:0
摘要:P1509 找啊找啊找GF 次要性动态规划 概念 次要性dp是指,在使得一个条件到达最优的情况下,让第二个条件也达到最优,在第二个条件也达到最优时,让第三个条件也最优... 这种分先后次序(或者说分主次)依次达成最优解的动态规划,被称为 次要性dp 思路 确定优化目标 让女朋友最多。 在女朋友最多的
阅读全文 »
发表于 2023-11-08 20:31阅读次数:7评论次数:0
摘要:P1877 HAOI2012 音量调节 可行性背包 思路 把状态方程的性质设置为可行性,即要么可行,要么不可行。 定义状态方程 表示前 首歌能否到达音量 。 那么状态转移方程则是 \(F[i][j] = F[i][j] || F[i - 1][j - w[i]]\
阅读全文 »
发表于 2023-11-08 17:21阅读次数:17评论次数:0
摘要:DP无思路题汇总 即只能完全靠题解想出做法的题目。 P5020 NOIP2018 提高组 货币系统 P2851 USACO06DEC The Fewest Coins G P1877 [HAOI2012] 音量调节 P1941 飞扬的小鸟 P3842 [TJOI2007] 线段 P2285 [HNO
阅读全文 »
发表于 2023-11-08 16:51阅读次数:11评论次数:0
摘要:P5322 BJOI2019 排兵布阵 基本思路 一眼背包,然后无脑套01,样例也过了,直接提交,40pts。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace
阅读全文 »
发表于 2023-11-07 15:42阅读次数:45评论次数:0
摘要:P5662 CSP-J 2019 纪念品 基本思路 状态方程 满头大汗地想了一个半小时,推导出一个可行的状态方程。 表示第 天,前 种纪念品,花费 金币所能得到的第二天最大卖出价格 状态转移 首先第一维明显可以用滚动数组优化。 然后就是枚举\(k\
阅读全文 »
发表于 2023-11-06 21:22阅读次数:21评论次数:0
摘要:P5365 SNOI2017 英雄联盟 基本思路 刚洗完澡做的,脑子转不动了。 疑似开始自动化思考了,状态转移方程是这一坨 事实上根本不对。首先当前的方案数完全没有体现出来,只乘了之前的方案数,而且这是一个最优性问题,不是计数问题
阅读全文 »
发表于 2023-11-06 15:53阅读次数:15评论次数:0
摘要:Cut Ribbon 基本思路 一眼完全背包,然而样例全过却无法AC。 看了提示之后明白这是一个要求必须完全装满的完全背包。 意思就是纸带剪完的剩余也得是要求的长度。 我一开始的想法是打标记,所有非要求长度的都标记成负数,然后要求长度的F数组设为1。 for (int i = 0; i <= 501
阅读全文 »
发表于 2023-11-05 20:12阅读次数:10评论次数:0
摘要:P4141 消失之物 基本思路 做 次计数背包。 当然 . #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N
阅读全文 »
发表于 2023-11-05 16:12阅读次数:21评论次数:0
摘要:P1156 垃圾陷阱 基本思路 受这题的影响,我总觉得这题不应该直接把时间当作状态方程的值,于是搞了 ,为前 个物品,前 时间内能到达的最大高度,然后又搞一个数组维护最优时间,但我的能力根本行不通。 #include<iostream> #include<algo
阅读全文 »
发表于 2023-11-04 17:30阅读次数:17评论次数:0
摘要:P2370 yyy2015c01 的 U 盘 基础思路 看到题目要求最小需要的最大接口。自然认为既然答案要求接口,那状态方程的值就是接口。 一开始状态方程F[i][j], 为前 个接口, 为当前体积。而F[i][j]则为当前最小的最大接口值 状态转移方程F[i][j] = m
阅读全文 »
发表于 2023-11-04 15:11阅读次数:11评论次数:0
摘要:P1734 最大约数和 基本思路 设状态方程F[i][j]为前 个数和为 时的最大约数和。 状态转移则是F[i][j] = max(F[i - 1][j], F[i - 1][j - i] + divisorSum(i) 即要么选 ,要么不选。 代码实现 WA一个点,TLE六
阅读全文 »
发表于 2023-11-04 13:54阅读次数:33评论次数:0
摘要:P1466 USACO2.2 集合 Subset Sums 毫无思路 如果不告诉我这题是DP题,我一定会爆搜。 看了题解,很妙。 居然也能套背包板子。 定义F[i][j]为在前 个数中选择一些数其和为 的方案总数。 显然转移方程F[i][j] = F[i - 1][j] + F[i
阅读全文 »
发表于 2023-11-04 13:10阅读次数:10评论次数:0
摘要:P2347 NOIP1996 提高组 砝码称重 最初思路 看出来是多重背包,但是第一次用于求方案数,一开始想的是累加。但是实现起来发现结果很抽象,想想也不是那么回事。比如从样例上来说,F[3] = 1,F[2] = 1,F[1] = 1,显然F[3] != F[1] + F[2] 改进思路 然后受到
阅读全文 »
发表于 2023-11-03 12:25阅读次数:14评论次数:0
摘要:P1802 5 倍经验日 基本思路 还是零一板子,只是在枚举小于当前所需药水量时需要考虑输家的加分。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; int n, x; int F[9000]
阅读全文 »
发表于 2023-11-03 10:58阅读次数:3评论次数:0
摘要:P1510 精卫填海 最初思路 状态方程F[i],i是体积,F[i]指能填平该体积的最小体力。 推出转移方程F[i] = min(F[i], F[i-v[i]] + m[i]) 但是代码实现只有10pts #include <iostream> #include <cstdio> #include
阅读全文 »
发表于 2023-11-03 10:06阅读次数:16评论次数:0
摘要:P1833 樱花(有疑惑) 最逆天的一集 一开始打算用最初的二维数组dp做,一直80tps,T一个点,WA一个点。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; string a, b; i
阅读全文 »
发表于 2023-11-01 22:27阅读次数:8评论次数:0
摘要:DP查缺补漏之多重背包优化原理 普通思路 类似完全背包 for (int i = 1; i <= n; i++) { for (int j = 1; j <= W; j++) { for (int k = 0; k * w[i] <= j && k <= m[i]; k++) { F[i][j] =
阅读全文 »
发表于 2023-11-01 15:57阅读次数:5评论次数:0
摘要:P1853 投资的最大效益 思路 就是一道完全背包板子题,不过是要操作n次然后每次更新背包容量。 但是TLE一个点 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace st
阅读全文 »
发表于 2023-11-01 15:04阅读次数:7评论次数:0
摘要:DP查缺补漏之完全背包优化原理 先复习一下基本知识 状态假设 DP[I][J]为前 个物品,容量小于 时的最优解(最大价值) 状态转移 DP[I][J] = max(DP[I - 1][J], DP[I - 1][J - k*V[I]] + k*W[I]) 对于第 个物品,两
阅读全文 »
发表于 2023-11-01 11:05阅读次数:9评论次数:0
摘要:DP查缺补漏之01背包优化原理 先复习一下基本知识 状态假设 DP[I][J]为前 个物品,容量小于 时的最优解(最大价值) 状态转移 DP[I][J] = max(DP[I - 1][J], DP[I - 1][J - V[I]] + W[I]) 对于第 个物品,两种可能
阅读全文 »