首页 > 其他分享 >24/04/09 CSP-J 模拟赛

24/04/09 CSP-J 模拟赛

时间:2024-04-14 14:46:26浏览次数:31  
标签:24 纪念品 09 金币 le 出边 换回 CSP dp

\(\color{red}(1)\) P2296 [NOIP2014 提高组] 寻找道路

  • 在有向图 \(G\) 中,每条边的长度均为 \(1\),现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:

    1. 路径上的所有点的出边所指向的点都直接或间接与终点连通。

    2. 在满足条件 \(1\) 的情况下使路径最短。

    注意:图 \(G\) 中可能存在重边和自环,题目保证终点没有出边。

    请你输出符合条件的路径的长度。

  • \(n \le 10^4\),\(m \le 2 \times 10^5\)。

显然的想法是,我们将所有满足「所有出边所指向的点都直接或间接与 \(t\) 连通」的点拿出来建图,然后求 \(s\) 到 \(t\) 的最短路即可。问题是如何找到这些点。

首先可以建反图,从 \(t\) 开始 dfs,求出所有能到达 \(t\) 的点并标记。然后枚举每一个点,检查它的出边能否都被标记即可。

\(\color{red}(2)\) P5662 [CSP-J2019] 纪念品

  • 小伟突然获得一种超能力,他知道未来 \(T\) 天 \(N\) 种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。

    每天,小伟可以进行以下两种交易无限次

    1. 任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品;
    2. 卖出持有的任意一个纪念品,以当日价格换回金币。

    每天卖出纪念品换回的金币可以立即用于购买纪念品,当日购买的纪念品也可以当日卖出换回金币。当然,一直持有纪念品也是可以的。

    \(T\) 天之后,小伟的超能力消失。因此他一定会在第 \(T\) 天卖出所有纪念品换回金币。

    小伟现在有 \(M\) 枚金币,他想要在超能力消失后拥有尽可能多的金币。

  • \(T ,N \le 100\),\(M \le 1000\)。

一个观察,可以发现如果我持有一个物品多天(例如在 \(s\) 天买,\(t\) 天卖),相当于在 \(s + 1 \sim t - 1\) 这些天中,先将这个物品卖掉,再买回。

所以我们不需要记录每天手里持有多少纪念品,统一认为今天买的纪念品,明天就立刻卖掉。

设计 \(dp_{i, j, k}\) 表示第 \(i\) 天,考虑第 \(j\) 个物品,当前手中还有 \(k\) 元时,明天早上能获得的最大收益。则转移:

\[dp_{i, j, k} = \max(dp_{i, j - 1, k}, dp_{i, j - 1, k + p_{i, j}} + p_{i + 1, j}) \]

然后我们求出 \(dp_i\) 中的最大值,作为下一天的起始钱数(与 \(m\) 类似)。

标签:24,纪念品,09,金币,le,出边,换回,CSP,dp
From: https://www.cnblogs.com/2huk/p/18134124

相关文章

  • 【CSP】202009-4 星际旅行 90%
    题目大意:n维空间内有一半径为r的球体,空间中球体之外有m个点,在不穿过球体的条件下求这m个点两两间的最短曲线距离。分析:显然有两种情况:1.两点连线不经过球体;2.两点连线穿过球体。第一种情况显然,考虑第二种情况:将球心、两点作为研究平面,可以发现最短曲线一定包括两条线段和一段......
  • 2024最新家庭版升级专业版密钥
    Windows11专业版是面向小型企业和组织的Windows11版本。它包含了家庭版的所有功能,并增加了一些额外的功能,例如:设备加密:使用BitLocker对设备上的驱动器进行加密,以保护敏感数据。远程桌面:从任何位置远程连接到您的设备。多用户登录:允许多个用户同时使用您的设备,每个用户......
  • q3-瞎汤姆养-2024.4.14
    第一批买的黑水虻孵化卵的时候没管理好,人为的搞死了,然后又买了一批,这批感觉活了点,这批是4月6日买的。不过看在鸡粪里不是特别活跃,是不是温度太高或者太低了,这个我不太知道。主要还是后期管理需要弄家里一直不给我地方搞,这个还需要空间才能玩得转,还要防止它跑出去,成虫是会飞的。......
  • 2024-04-13:用go语言,给定一个整数数组 `nums`, 请编写一个函数,返回一个新的数组 `counts
    2024-04-13:用go语言,给定一个整数数组nums,请编写一个函数,返回一个新的数组counts。满足以下条件:对于每个nums[i],counts[i]表示在nums[i]右侧且比nums[i]小的元素数量。输入:nums=[5,2,6,1]。输出:[2,1,1,0]。答案2024-04-13:来自左程云。灵捷3.5大体过程如下:给定......
  • 2024.4.13 模拟赛总结
    坑点总结:1.关于数据顺序模拟赛T1题面清明节,又称祭祖节,在每年4月4日至6日之间,是祭祀、祭祖和扫墓的节日。小明的爸爸妈妈决定清明假期带着他回老家扫墓。小明的爸爸一共要开车行驶1000千米才能到家,现在沿途有N个旅馆,为了安全起见,每天晚上都不开车,住在旅馆里(晚上不可以......
  • 24/04/13 CF494C Helping People / HDU5866 Lucky E
    CF494C:题面翻译有一个长为\(n\)的数列,初始时为\(a_{1..n}\)。给你\(q\)个操作,第\(i\)个操作将\([l_i,r_i]\)内的数全部加一,有\(p_i\)的概率被执行。保证区间不会交错,即:\(\foralli,j\in[1,q],l_i\ler_i<l_j\ler_j\)或\(l_i\lel_j\ler_j\ler_i\)或\(l_j\le......
  • MySQL-09-mysql 存储过程入门介绍
    拓展阅读MySQL00ViewMySQL01Rulermysql日常开发规范MySQL02truncatetable与delete清空表的区别和坑MySQL03Expression1ofORDERBYclauseisnotinSELECTlist,referencescolumnMySQL04EMOJI表情与UTF8MB4的故事MySQL05MySQL入门教程(MySQLtutor......
  • CF244B Undoubtedly Lucky Numbers 题解
    题目简述给定一个$n$,问有多少个小于等于$n$的数只由两个不同的数字$x$和$y$组成。题目分析直接枚举肯定不行,我们考虑枚举$x$和$y$,再利用深搜,生成所有不大于$n$且只由$x$和$y$组成的数字,利用map去重,统计答案即可。代码#include<iostream>#include<map>usi......
  • 24天【代码随想录算法训练营34期】第七章 回溯算法part01 ( ● 理论基础 ● 77. 组合
    **理论基础**voidbacktracking(参数){if(终止条件){存放结果;return;}for(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)){处理节点;backtracking(路径,选择列表);//递归回溯,撤销处理结果}}......
  • P2437 蜜蜂路线
    P2437蜜蜂路线题目描述一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房\(m\)开始爬到蜂房\(n\),\(m<n\),有多少种爬行路线?(备注:题面有误,右上角应为\(n-1\))输入格式输入\(m,n\)的值输出格式爬行有多少种路线样例......