自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 多重背包问题---超详细讲解+优化(不懂你揍我)

多重背包我们其实可以看成为01背包和完全背包的组合。但是怎么组合的呢?也可以就把多重背包问题转换成01背包问题,我们一起来看看解题思路。1.状态表示DP问题我们先来看状态表示二维数组的表示,F[i][j]代表前 i 个物品中,背包容量为 j 时所能拿到的最大价值。然后我们就看如何把多重背包转换成01背包与完全背包。2.转换(1)转换为01背包我们知道,01背包问题指的是各个物品只有一件,但在多重背包问题中,我们每种物品有 Si 件。我们可以考虑将多个同种物品合成一件物品。..

2022-04-01 18:51:24 27305 26

原创 试题 算法提高 游览计划

试题 算法提高 游览计划ADV-1134 游览计划

2023-03-14 10:17:07 229

原创 Codeforces Round #842 (Div. 2)

Codeforces Round #842 (Div. 2)A.Greatest ConvexB.Quick SortC.Elemental DecompressD.Lucky Permutation

2023-01-06 13:03:33 568 3

原创 Codeforces Round #830 (Div. 2)

A. BestieB. UguD1. Balance (Easy version)D2. Balance (Hard version)

2022-10-24 14:16:44 1020 5

原创 2022牛客多校训练(2) D. Link with Game Glitch

建图,a,b,c,d建立从b到c的边,权值为d/b,然后用spfa判环。如果存在环,不能无线制造,那么肯定是越制造越小的,这样代表我们的w可以更大一点,反之让w更小一点。然而存在无限制造的情况,比如消耗1个1类物品制造2个2类物品,一个2类物品有可以制造2个1类物品,现在为了杜绝这种现象,将消耗a个b制造c个d变为了消耗a个b制造c*w个d。第一行输入n,m,有n类物品,给每类物品编号1~n,有m种配方。接下来m行包含四个整数abcd,代表用a个b类物品,可以制造出c个d类物品。............

2022-07-27 12:22:41 523 2

原创 洛谷P1445 [Violet]樱花--质因子分解

思路:首先将方程左边通分:​​​​​​​​​​​​​​​​​​​​​然后十字相乘:看到这里就有点因式分解分味道了,我们再给两边同时加上,然后分解因式得到:令a=x-n!,b=y-n!,c=,那么a*b=c 的求a,b有多少组解,由于n! 为确定的,a,b有多少不同的解就...

2022-04-13 21:21:34 335

原创 第十三届蓝桥杯C B组 G:积木画

题意:在一块2*N的话画布上有三种不同的积木,问恰好拼完 N 列的时候有多少不同的方案?思路:一看是 2*N 的画布,且数据量很大,所以不用多想,咱们已经锁定dp了。dp就想好状态表示和转移方程。状态表示:我们用 f [N][3] 这个数组来表示不同状态下的方案数,f [i][0] 表示当前为第 i 列,且前i-1列已经拼满,且第 i 列也拼满的方案数;f [i][1] 表示当前为第 i 列,且前 i-1 列已经拼满,且第 i 列差一个拼满,由于第 i 列有两个格子,那么差一个格子拼..

2022-04-12 22:00:50 620

原创 第十三届蓝桥杯C B组 J:砍竹子

思路:首先看数据范围 2e5,比较大。而且有一个不变的是 我们每次都从最高的竹子区间开始砍,那么每进行一次砍操作,接着还得再找出最高的竹子区间,所以自然而然想到了一个数据结构:堆。想到 堆 思路就打开了。可以用pair存高度和编号,也可用结构体,我习惯用结构体,所有这次用结构体排序来解题,想看pair实现的可以移步 我大哥的题解 。结构体自写运算符重载,在这里格式要写对了:const一个也不能少typedef long long ll;struct node{ ll ...

2022-04-11 22:18:52 3593 2

原创 蓝桥c++ B组 微生物增殖

假设有两种微生物 X 和 YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只 Y 就是最终导致 Y 种群灭绝的最后一根稻草!解题思路:由于新出

2022-04-08 17:28:49 113

原创 P1462 通往奥格瑞玛的道路 二分+单源最短路(dijkstra)

题目背景在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量。有一天他醒来后发现自己居然到了联盟的主城暴风城。在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛。题目描述在艾泽拉斯,有n个城市。编号为1,2,3,…,n。城市之间有m条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量。每次经过一个城市,都会被收取一定的过路费(包括起点和终点)。路上并没有收费站。假设1为暴风城,n为奥格瑞玛,而他的血量最多为b...

2022-04-08 12:03:22 178

原创 P1144 最短路计数

题目描述给出一个N个顶点M条边的无向无权图,顶点编号为1-N。问从顶点1开始,到其他每个点的最短路有几条。输入格式第一行包含2个正整数N,M为图的顶点数与边数。接下来M行,每行2个正整数x,y表示有一条顶点xx连向顶点yy的边,请注意可能有自环与重边。输出格式共N行,每行一个非负整数,第ii行输出从顶点1到顶点i有多少条不同的最短路,由于答案有可能会很大,你只需要输出ans mod 100003后的结果即可。如果无法到达顶点i则输出0。输入输出,样例输入5 71 2

2022-04-07 17:19:41 346

原创 第十一届蓝桥杯大赛决赛试题 B:扩散

问题描述:地图无限大,初始点(0, 0), (2020, 11), (11, 14), (2000, 2000)。总共扩散2020次,问总共可以扩散多少点(重复点不计数)。思路:多源BFS,初始点为4个,需要加上计时(具体代码中有注释)。#include<bits/stdc++.h>using namespace std;const int p=2500;long long cnt=4;bool vis[10000][10000];int xx[4]={0...

2022-04-07 16:40:07 218

原创 P1439 【模板】最长公共子序列

题目描述给出 1,2,…,n 的两个排列 P1​ 和 P2​ ,求它们的最长公共子序列。输入格式第一行是一个数 n。接下来两行,每行为 n 个数,为自然数 1,2,…,n 的一个排列。输出格式一个数,即最长公共子序列的长度。输入输出样例输入 #1复制5 3 2 1 4 51 2 3 4 5输出 #1复制3说明/提示对于50%的数据,n≤10^3; 对于100%的数据,n≤10^5解题思路:我们可以将此题转换为最长上升子序列来做。首..

2022-04-05 13:46:22 293

原创 D-括号问题

题意:一个 ( 与一个 ) 对应,一个 [ 与一个 ] 对应。每对应一个括号则最长括号长度加 2 ,如果此括号没有与之对应的括号,则无效。给出一个括号序列,求其中最长匹配括号长度。状态表示:dp[i][j] 表示第 i 个括号到第 j 个括号最长的匹配括号长度。转移方程:先枚举括号长度,对于每个长度,我们需要判断此长度的左右断点 S[i] S[j]是否匹配,如果匹配,那么dp[i][j]就等于第 i+1 个括号到第 j-1 个括号最长匹配长度 + 2.如果不匹配那么我们就..

2022-04-02 17:59:51 176

原创 最长回文子串长度

状态表示:dp[i][j] 表示第 i 个字符到第 j 个字符是否为回文串。转移方程:显而易见我们需要先枚举子串长度,最小回文串就是一个字符时,所以dp[i][i]应该置1。同时两个相邻字符如果相同,这也为长度为2的回文串成立的条件。我们的字符串 存于数组 S 中,如果串 S [i] 到 S [j] 的左端点S [i]与右端点S [j]相同,这时如果 串 i+1 到 j-1 是一个回文串,那么串 S [i] 到 S [j] 也是一个回文串。其余情况都不是回文串。所以有状态转移方程 i..

2022-04-02 17:19:39 76

原创 动态规划之最长公共子序列

题意:给出两个字符串X,Y。求出X,Y两个字符串的最长公共子序列长度。这算是动归的入门题了,但是需要考虑好思路。状态表示dp [i][j]表示串 X 的前 i 个字符和串 Y 的前 j 个字符的最长公共子序列长度。转移方程我们的思路是这样的:用变量 i 代表遍历到了 X 的哪个字符,变量 j 代表遍历到了 Y 的哪个字符。如果 X[i] == Y[j] ,那么我们就把这个字符加到子序列中继续判断,如果X[i] != Y[j],我们就延续上个状态中最长的子序列,继续判断。举一个简单..

2022-04-02 17:07:25 702

原创 试题 历届真题 括号序列【第十二届】【省赛】【B组】

题目分析 :看完题觉得题目挺难的,考虑过用dp做,但无奈想不出来合适的转移方程。后来看了题解,终于理解,写下这篇题解,包含一些自己的理解。对于 '(' 和 ')' ,并不是我们遇到一个不匹配的括号就需要加上与之匹配的括号。比如(((),第一个括号为左括号,第二个括号也为左括号,但跟第一个括号匹配的括号我们也不一定加在第二个括号处,可以等着从后面的括号处加,再或者后面会出现右括号与第一个左括号匹配。所以我们对于一个括号序列最少需要添加多少个是必须遍历到n才知道的,也就是说我们希望尽...

2022-03-31 17:22:12 2835 2

原创 P1880 [NOI1995] 石子合并

P1880 [NOI1995] 石子合并此篇题解写给像我一样的蒟蒻。第一步对于石子合并,因为可以从任意一对相邻的石子开始合并,所以要理解什么是破环成链。对于破环成链,我们对4 5 9 4这组数据进行分析首先我们知道在一个环上,4 5 9 4可以分布在不同位置,如 ...

2022-03-20 17:36:06 267 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除