09 2020 档案

摘要:题目链接:https://www.luogu.com.cn/problem/CF1312E 解题思路: 本题要做两次DP。 第一次DP:区间DP。 定义 f[i][j] 表示 [i,j] 范围内的数合并成一个数之后的这个数是啥;如果没有办法合并成一个数,则 \(f[i][j] = - 阅读全文
posted @ 2020-09-30 16:04 quanjun 阅读(161) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://codeforces.com/problemset/problem/598/E 题目大意: 给一个 n×m 的巧克力块切除总共 k 小块(不需要全都切出来,只需要切出来的一些块的总数是 k 即可),切的代价为切得那条边小块个数的平方,求 阅读全文
posted @ 2020-09-30 15:21 quanjun 阅读(429) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://codeforces.com/problemset/problem/864/E 题目大意: 有 n 件物品,取第 i 件物品需要 ti 时间,且必须在时刻 di 之前取走,能够获得的最大价值是 pi,问在此约束条件能够获得的最大 阅读全文
posted @ 2020-09-30 12:07 quanjun 阅读(155) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://codeforces.com/problemset/problem/1132/F 题目大意: 给你一个串 s,每次可以花费 1 的代价删去一个子串,要求子串的每一位为同一个字符。 求删去整个串的最小代价。 1|s|500 解题思路: 区间DP 阅读全文
posted @ 2020-09-30 10:57 quanjun 阅读(167) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://codeforces.com/problemset/problem/478/D 解题思路: 定义 f[i][j] 表示第 i 层并且总使用了 j 个红色格子的方案总数。 则:f[i][j]=f[i1][j]+f[i1][jh]阅读全文
posted @ 2020-09-29 21:43 quanjun 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://codeforces.com/problemset/problem/1370/D 解题思路: 一开始的想法是定义状态 dpi,j 表示“前 i 个数,选了第 i 个数,共选了 j 个数的最小值”。则状态转移方程为(没有验证过): \(d 阅读全文
posted @ 2020-09-29 18:57 quanjun 阅读(144) 评论(0) 推荐(0) 编辑
摘要:目前还没有做。等开始做了在此更新。。 阅读全文
posted @ 2020-09-29 17:08 quanjun 阅读(386) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P2534 解题思路: IDA*搜索。 首先需要离散化一下, n 个数变为了 0n1。 然后估价函数 h() 可以定义为相邻元素相差不为 1 的对数,当然如 阅读全文
posted @ 2020-09-28 21:58 quanjun 阅读(149) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2234 题目大意: 一天机器人小A在玩一个简单的智力游戏,这个游戏是这样的,在一个4*4的矩阵中分别有4个1,4个2,4个3和4个4分别表示4种不同的东西,每一步小A可以把同一行的4个数往左移或者往右移一 阅读全文
posted @ 2020-09-28 20:48 quanjun 阅读(117) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://codeforces.com/contest/1420/problem/E 题目大意: 给你一个长度为 n01序列,每一次操作你可以交换相邻的两个元素。 定义序列的 保护值( protection )为“序列中一对数值为 0 的数,且这对数之间夹着至少 阅读全文
posted @ 2020-09-25 17:20 quanjun 阅读(275) 评论(0) 推荐(0) 编辑
摘要:示例代码: #include <bits/stdc++.h> using namespace std; int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int main() { partial_sum(a, a+11, a); // a已经变为了原来的 阅读全文
posted @ 2020-09-25 17:07 quanjun 阅读(665) 评论(0) 推荐(1) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6171 题目大意: 假设你是一个著名的海军上将。我们海军有 21 艘战舰。战舰有 6 种类型。 首先,我们有一艘 指挥舰 ,海军上将必须在其中,它用数字 0 表示。其他的战舰的类型 阅读全文
posted @ 2020-09-19 15:34 quanjun 阅读(151) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3017 题目大意: 有 n(30) 块硬币(n 可能是奇数),每块硬币都有一个币值。要求将 n 块金币分成两堆,使得两堆硬币币值和的差尽可能地小。输出这个最小的差。 解题思 阅读全文
posted @ 2020-09-18 23:27 quanjun 阅读(120) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P2346 首先需要注意 题目描述 中说道的这句话: 黑白双方交替走棋,任意一方可以先走 然后我这边用的是迭代加深搜索解决的这个问题。 我觉得 迭代加深搜索 结合了 DFS 和 BFS 的优点: 能够像BFS一样进行层次遍历 阅读全文
posted @ 2020-09-18 18:54 quanjun 阅读(363) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P3110 解题思路: 对 1,2,n 三个点分别求一下最短路(因为是无权图所以可以直接用BFS实现最短路)。 示例代码如下: #include <bits/stdc++.h> using namespace std; 阅读全文
posted @ 2020-09-18 15:13 quanjun 阅读(103) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P4799 解题思路: 如果暴搜时间复杂度是 O(240),所以考虑折半搜索。 前一半搜索的时候记录好所有的状态,然后对这些状态对应的价格排序。 后一半搜索的时候到边界条件时用二分确定前一半的数量。 时间复杂度 阅读全文
posted @ 2020-09-18 13:31 quanjun 阅读(149) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P5691 解题思路: 因为暴搜的时间复杂度为 O(1506),所以采用折半搜索(meet-in-middle search)。 我这里用 map 记录 hash,所以总的时间复杂度为 \(O(12 \cdot 1 阅读全文
posted @ 2020-09-18 10:47 quanjun 阅读(161) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P2324 解题思路: A* 搜索。 h(x) 表示当前状态下有多少位置和目标状态不一样。 示例代码: #include <bits/stdc++.h> using namespace std; const int 阅读全文
posted @ 2020-09-17 22:59 quanjun 阅读(136) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P1379 一般搜索: #include <bits/stdc++.h> using namespace std; int tmp[3][3], dir[4][2] = { -1, 0, 1, 0, 0, -1, 0, 1 阅读全文
posted @ 2020-09-17 21:38 quanjun 阅读(167) 评论(0) 推荐(0) 编辑
摘要:之前的折半枚举的代码有一点点问题,已修改。 - 2020.10.3 题目链接:https://www.luogu.com.cn/problem/P2962 题目大意: 有 n(1n35) 盏灯,每盏灯与若干盏灯相连,每盏灯上都有一个开关,如果按下一盏灯上的开关,这盏灯以及 阅读全文
posted @ 2020-09-17 16:38 quanjun 阅读(257) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P4552 解题思路:设差分数组 d[i]=a[i]a[i1],用 sump 表示所有 >0d[i] 之和;用 sumn 表示所有 <0 的 \( 阅读全文
posted @ 2020-09-13 20:35 quanjun 阅读(191) 评论(0) 推荐(0) 编辑
摘要:Thonny 是一款比较轻便的Python IDE,内置有Python 3.7,所以下下来直接安装应该就可以使用(这我也是听官网说的,因为我安装前已经安装了Python 3.8.5) 官网地址:https://thonny.org/ 阅读全文
posted @ 2020-09-10 11:54 quanjun 阅读(672) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P2851 解题思路: 对FJ做多重背包,对商人做完全背包。 这里比较困惑我的是背包的容量。其大小的思路来自 IcproX大佬的分享 首先说一下,a 上界是 vmax2 下面给出理由 若知v_, 阅读全文
posted @ 2020-09-09 22:38 quanjun 阅读(129) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2639 题目大意:给出一行价值,一行体积,让你在v体积的范围内找出第k大的值.......(注意,不要 和它的第一题混起来,它第一行是价值,再是体积) 思路:首先dp[i][j]代表的是在体积为i的时候第 阅读全文
posted @ 2020-09-09 17:18 quanjun 阅读(96) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P1757 解题思路: 所谓分组背包,就是将物品分组,每组的物品相互冲突,最多只能选一个物品放进去。 这种题怎么想呢?其实是从「在所有物品中选择一件」变成了「从当前组中选择一件」,于是就对每一组进行一次 0-1 背包就可以了 阅读全文
posted @ 2020-09-09 16:28 quanjun 阅读(210) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P1507 解题思路:二维费用背包模板题。 示例代码: #include <bits/stdc++.h> using namespace std; const int maxn = 505; int v1, v2, n, f 阅读全文
posted @ 2020-09-09 14:05 quanjun 阅读(97) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P5662 解题思路: 我们进行 t1 轮 完全背包 : 把今天手里的钱当做背包的容量, 把商品今天的价格当成它的消耗, 把商品明天的价格当做它的价值。 示例代码: #include <bits/stdc++.h> 阅读全文
posted @ 2020-09-09 13:37 quanjun 阅读(229) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P5019 今天复习了一下差分,然后脑袋里面想题,然后就想到了这道《铺设道路》。 然后这个是我之前用 贪心 写的题解:https://www.cnblogs.com/quanjun/p/13137699.html 现在简要讲 阅读全文
posted @ 2020-09-04 22:03 quanjun 阅读(137) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=3263 题目大意:有 N 头牛,最高的是第 I 头,身高是 H ,现在有 R 组相对关系。每组相对关系有两个数 AB,表示 AB 能相互看见,也就是他们中间的牛 阅读全文
posted @ 2020-09-04 21:40 quanjun 阅读(107) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/UVA1625 解题思路: s1[1..n],s2[1..m] 分别表示两个字符串; st1[c] 表示字符 c 在字符串 s1 中第一次出现的位置; ed1[c] 表示字符 \(c\ 阅读全文
posted @ 2020-09-04 13:20 quanjun 阅读(211) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://codeforces.com/contest/1238/problem/E 题目大意: 给你一个长度为 n(n105) 的字符串s和 m(m20) ,这个字符串由前 m 个小写字母组成。 现在你要找一个前 m 个字符的一 阅读全文
posted @ 2020-09-03 21:03 quanjun 阅读(187) 评论(0) 推荐(0) 编辑
摘要:题目描述 聪聪喜欢玩植物大战僵尸,在游戏里有一条水平道路,道路的一端是入口,另一端是房子。僵尸会从道路的入口一端向房子一端移动。这条道路刚好穿过 N 块连续的空地。初始时,僵尸通过每块空地的时间是 T 秒。玩家可以在这 N 个空地中种植植物以攻击经过的僵尸,每块空地中只能种植 阅读全文
posted @ 2020-09-03 20:51 quanjun 阅读(327) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P2466 题目大意:略。 解题思路: 首先将 n 个彩蛋按照 x 从小到大排序。 然后定义状态 f[L][R][s],其含义为: 当 s=0 时:接完了第 [L,R] 范围内的所有彩 阅读全文
posted @ 2020-09-02 20:07 quanjun 阅读(188) 评论(0) 推荐(1) 编辑
摘要:国家集训队1999论文集 陈宏:《数据结构的选择与算法效率——从IOI98试题PICTURE谈起》 来煜坤:《把握本质,灵活运用——动态规划的深入探讨》 齐鑫:《搜索方法中的剪枝优化》 邵铮:《数学模型的建立、比较和应用》 石润婷:《隐蔽化、多维化、开放化——论当今信息学竞赛中数学建模的灵活性》 杨 阅读全文
posted @ 2020-09-02 16:54 quanjun 阅读(242) 评论(0) 推荐(0) 编辑

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