随笔分类 -  算法能力全面提升综合题单 / CF洛谷题合集

摘要:小A买了一个空间跑路器,每秒钟可以跑 2^k千米(k 是任意自然数)。 当然,这个机器是用longint 存的,所以总跑路长度不能超过其范围。 小A的家到公司的路可以看做一个有向图,小A 家为点 1,公司为点 n,每条边长度均为一千米。 小A想每天能醒地尽量晚,所以让你帮他算算,他最少需要几秒才能到 阅读全文
posted @ 2023-08-29 00:25 失控D大白兔 编辑
摘要:爱与愁大神后院里种了n 棵樱花树,每棵都有美学值 爱与愁大神在每天上学前都会来赏花。爱与愁大神可是生物学霸,他懂得如何欣赏樱花: 一种樱花树看一遍过,一种樱花树最多看,一种樱花树可以看无数遍。 但是看每棵樱花树都有一定的时间 。爱与愁大神离去上学的时间只剩下一小会儿了。求解看哪几棵樱花树能使美学值最 阅读全文
posted @ 2023-08-24 00:52 失控D大白兔 编辑
摘要:自 01背包问世之后,小 A 对此深感兴趣。一天,小 A 去远游,却发现他的背包不同于 01 背包, 他的物品大致可分为 k 组,每组中的物品相互冲突,现在,他想知道最大的利用价值是多少。 ###1. 动态规划 分组背包 ``` int maxval(int v,vector&c,vector&w, 阅读全文
posted @ 2023-08-24 00:39 失控D大白兔 编辑
摘要:设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重≤1000),可以表示成多少种重量? ###1. 动态规划 多重背包问题,结合0-1背包求解 ``` void ZeroOnePack(int cost,vector &dp){ for(int j=1000;j>=cost;j--) 阅读全文
posted @ 2023-08-24 00:16 失控D大白兔 编辑
摘要:有n种药草,每种药草数量无限,给出采摘药草的时间和价值 同时给出总时间t,求能采摘的最大价值 ###1. 动态规划 ``` void maxval(int v,vector&c,vector&w){ int n = w.size(); long long dp[v+1]; memset(dp,0,s 阅读全文
posted @ 2023-08-23 23:23 失控D大白兔 编辑
摘要:有n种候选食物,且只有一样,分别给出对应食物的体积、质量、卡路里 飞船空间和载重都有限,分别为v和m,求能承载食物的最大卡路里 ###1. 动态规划 ``` void maxval(int v,int m,vector&weight,vector&volume,vector&w){ int n = 阅读全文
posted @ 2023-08-23 23:05 失控D大白兔 编辑
摘要:Shaass拥有n本书。他想为他的所有书制作一个书架,并想让书架的长宽尽量小。 第i本书的厚度是t[i],且这本书的纸张宽度是w[i]。书的厚度是1或2,所有书都有同样的高度(即书架的高是均匀的) Shaass以以下的方式摆放这些书籍。 * 1.他选择了一些书并竖直摆放它们。 * 2.他将剩余的书籍 阅读全文
posted @ 2023-08-23 21:11 失控D大白兔 编辑
摘要:一共有n个文件,每个文件大小为c[i],价值为w[i] U盘大小为S,传输端口大小为L,求最小的传输端口L使得U盘总文件价值不小于p ###1. 二分 + 动态规划 端口只是限制了可选的文件,去掉这个限制后,原问题是0-1背包问题 ``` void maxval(int n,int p,int S, 阅读全文
posted @ 2023-08-23 15:51 失控D大白兔 编辑
摘要:对于从 1∼n 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的 求可以划分的方案数 ###1. 动态规划 ``` long long maxval(int n){ int sum = (1+n)*n/2; if(sum%2==1) return 0; vector dp(sum+ 阅读全文
posted @ 2023-08-23 15:08 失控D大白兔 编辑
摘要:小明可以同时做计算两道不同的题目 习题集包含n道题目,没到题目耗时nums[i],求最少需要时间 ###1. 动态规划 题目等价于将数组划分为两个和最接近的数组,求两数组和的最大值 ``` int maxval(vector &nums){ //尝试划分为两个最接近的数组,同时返回两数组和的最大值 阅读全文
posted @ 2023-08-23 14:42 失控D大白兔 编辑
摘要:选取和不超过 S 的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。 ###1. 动态规划 + 筛预处理 ``` vector prime(10e3+1,1);//约数和,即价值 int init = []() {//筛预处理 for(int i=2;i dp(V+1); long lo 阅读全文
posted @ 2023-08-23 00:59 失控D大白兔 编辑
摘要:有x个药物和n个敌人 战胜第i敌人可以获得win[i]的经验值,失败可以获得lose[i]经验值,要想战胜第i个敌人,需要使用c[i]个药物 求可以获得的最大经验值 ###1. 动态规划 有点类似分组背包,失败需要0个药物,战胜或输给同一个敌人不能同时发生,属于同一组 但该题战胜敌人可能使用0个药物 阅读全文
posted @ 2023-08-22 23:50 失控D大白兔 编辑
摘要:东海未填平的区域还需要至少体积为 v 的木石才可以填平,而西山上的木石还剩下 n 块,每块的体积和把它衔到东海需要的体力分别为 k 和 m。 精卫已经填海填了这么长时间了,她也很累了,她还剩下的体力为 c。 如果精卫能把东海填平,则输出她把东海填平后剩下的最大的体力,否则输出 Impossible 阅读全文
posted @ 2023-08-22 16:31 失控D大白兔 编辑
摘要:餐馆菜品种类不少,有N种,第i中卖c[i]元,且每种只有一样 小A要把V元全部花光,问有多少种点菜方式 ###1. 动态规划 dp[j] = dp[j] + dp[j-c[i]] ``` int maxval(int V,vector&c){ int n = c.size(); vector dp( 阅读全文
posted @ 2023-08-22 15:50 失控D大白兔 编辑
摘要:有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积。 现在从 n 个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。输出这个最小值。 ###1. 动态规划 使用动态规划计算可达性即可 ``` int maxval(int V,vector&c){ int n = c.siz 阅读全文
posted @ 2023-08-22 15:31 失控D大白兔 编辑
摘要:医师把辰辰带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间, 每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” ###1. 动态规划(0-1背包) 每个药草是唯一的 阅读全文
posted @ 2023-08-22 15:14 失控D大白兔 编辑

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