Z_L_G
Z_L_G
全部文章
题解
总结(20)
训练赛(16)
归档
标签
去牛客网
登录
/
注册
又活一天?
你怎么可能做和别人相同的事情又同时超过别人呢?
全部文章
/ 题解
(共127篇)
算法入门-石子合并
题意 给定n堆石子,成环放置,每堆石子有自己的重量,每次合并可以合并相邻的两堆,合并的得分是两堆石子重量和,求解把所有石子合并成一堆所得的最大得分和最小得分 思路 由于两堆石子是相邻的,所以每一次合成其实是对一个区间中的两堆的分界做考虑,下面按求最大得分考虑,如一共1~5,合并1~5的最后一次...
dp
区间dp
2025-05-04
0
67
算法入门-田忌赛马
题意 齐王和田忌各有n匹马,田忌赢得200,输得-200,平局不得钱,请你安排顺序,解出可获得的最大钱数 思路 先将齐王和田忌的马降序排序 贪心:对于齐王的第k匹马,田忌如果能赢就直接选当前第一匹马,如果不能赢就选择最后一匹马 对于平局的情况,选择第一匹和最后一匹都有可能导致错误决策...
dp
区间dp
2025-05-03
0
77
算法入门-多重背包
题意 种物品,每种物品有 个,体积 ,价值 ,背包体积 ,求最大价值 思路 可以把每个物品直接放 次,转化为01背包,大数据会TLE 打包-二进制优化:显然,每个数n可以拆成所有不大于它的二进制次方组合+剩余部分,如此便可表示从0~n,所以对每个 进行拆分,从1开始,不断拆分,直到拆不出...
dp
多重背包
2025-05-01
0
49
算法入门-完全背包
题意 n种物品,每种物品有vol和val,背包体积为v,每种物品可以有任意多个,求背包最大价值和背包恰好装满最大价值 思路 01背包变种,更新第二维时需要重复更新,改变循环方向即可 AC代码 #include<bits/stdc++.h> using namespace std;...
dp
完全背包
2025-05-01
0
39
算法入门-01背包
题意 给定n个物品,每个物品由价值和体积,问装入体积为v的背包的最大价值和恰好装满的最大价值 思路 01背包问题,对于每个物品考虑装和不装即可,如果不装\装不下 ,如果装则考虑装进来后的价值 ,对于每一个物品,在装和不装里取最大即可 。 注意到,n和val最大都可以取1000,二维数...
dp
01背包
2025-05-01
0
63
算法入门-最长公共子序列
题意 给定两个字符串a,b,求a,b最长公共子串 思路 动态规划,最长的子串一定是由倒数第二长的子串加上两个串中一组相同的字符得来的 即:(相同时) (不同) AC代码 #include<bits/stdc++.h> using namespace std; int f[5050][...
dp
2025-04-30
0
49
算法入门-[NOIP2001]装箱问题
题意 n个物品,箱子体积为v,装入物品后,箱子的最小剩余体积是多少 思路 动态规划 对于每一个物品,考虑放或者不不放,观察体积 即维护放入前i个物品能否满足体积为j (当前物品已经比需要的体积大了,放不进去) (当前物品可以放的进去,考虑放/不放) 特别的,本题有三种写法...
dp
2025-04-30
0
58
算法入门-传球游戏
题意 n个人围成环,传球m次,传回第一个人的方案数有多少种? 思路 结束状态为最后一步传回第一个人,上一步为m-1步传回1号左右的两个人 维护即可 AC代码 #include<bits/stdc++.h> using namespace std; int n,m; int dp...
dp
2025-04-26
0
51
算法入门-滑雪
题意 在n*m的地图中,每个点有权值,并且在任一点都可以向四周比自己权值小的点走动,求最多走动多少步 思路 对于走动最长路径的最后一个点,他一定是由上下左右中比他小且已走路径最长的点走来,对于倒数第二个点同理,故需要维护每个点可以走的最长路径,记dp[i][j]为从(i,j)开始走的最长路径,...
dp
记忆化搜索
2025-04-26
0
54
算法入门-Tree Decoration
题意 以p(父亲),c(需要挂的最少装饰物个数),t(挂一个装饰物需要的时间)的形式输入每一个树上的节点。 问满足每一个节点的装饰物需求最少需要多少时间 思路 对于叶子节点i,他上面至少悬挂c[i]个装饰物 对于其它节点j,如果他的子节点累计挂的装饰物已经大于等于c[j],则什么都不用做,如果...
深度优先搜索
树
2025-04-14
0
41
首页
上一页
3
4
5
6
7
8
9
10
11
12
下一页
末页