首页 > 其他分享 >GZOI2024 Day1 T2 card

GZOI2024 Day1 T2 card

时间:2024-09-09 13:25:31浏览次数:1  
标签:GZOI2024 frac T2 张牌 Day1 card

GZOI2024 Day1 T2 card

首先最后一张牌可能不会弃满 \(b_i\) 张牌。而如果我们要打出若干张牌,肯定想要最后打出 \(b_i\) 最大的那张牌,这样显然更划算。因此要先按照 \(b_i\) 排序。

首先很容易想到背包。把同类牌拆成 \(c_i\) 个,然后直接背包:\(f_{i,j}\) 表示遍历到第 \(i\) 张牌,一共用了 \(j\) 张牌(包括打出去的和弃掉的),的最大价值。显然这样会超时。因为牌的数量太多了。这样背包感觉没有什么优化的前途。

考虑不把同类牌拆开。那么在第 \(i\) 类牌转移时就需要枚举打出几张这类牌。考虑如何优化。

\[f_{i,j}=\max_{k=1}^{c_i}\{f_{i-1,j-(b_i+1)k}+c_ik\} \]

于是我们要寻找最优决策点 \(k\)。

感觉这个东西看起来很能斜率优化。

(以下计算省略 \(i\) 这一维,以及所有 \(b_i\) 默认加 \(1\))

设 \(x<y\),若 \(f_{j-bx}+cx<f_{j-by}+cy\)。

这东西,\(f\) 的下标不等于 \(x,y\),是做不了斜优的,不行你试试看。

所以我们设 \(x'=j-bx,y'=j-by\),则 \(x=\frac{x'-j}{b},y=\frac{y'-j}{b}\)。

以下省略 '

设 \(x<y\),若

\[f_x+c\frac{x-j}{b}<f_y+c\frac{y-j}{b}\\ -\frac{c}{b}(y-x)<f_y-f_x\\ -\frac{c}{b}<\frac{f_y-f_x}{y-x}\]

注意,由于 \(x=j-bx,y=j-by\),所以 $x,y\equiv j(\bmod b) $。所以要把 \(f\) 分成 \(b\) 个部分分别计算。

因为我们是枚举 \(i\),然后枚举 \(j\) 计算 \(f_j\) 的,因此 \(b,c\) 看作常数。要求的斜率固定,可以开 \(b\) 个单调队列维护最优决策点。决策点可以 \(O(1)\) 找出,时间复杂度是 \(O(n\sum c)\),时限 \(4s\),可以通过此题。由于 \(f_{i,j}\) 的 \(i\) 这一维可以循环利用空间优化掉,所以空间是 \(O(\sum c)\) 的。单调队列空间是 \(O(n)\) 或者 \(O(nb)\) 的,反正 \(b=500\),都能过。

标签:GZOI2024,frac,T2,张牌,Day1,card
From: https://www.cnblogs.com/liyixin0514/p/18404357

相关文章

  • IBM AI Developer 专业证书专项课程-Introduction to Software Engineering-Unit2-前
    前端网站开发前端开发简介用户交互:用户在浏览在线购物网站时,主要与网站的前端进行交互。这包括浏览不同的页面、选择不同的产品类别、比较产品等活动。前端的作用:前端是用户直接接触的部分,它决定了用户如何与网站或应用进行交互,以及他们的视觉体验。网站开发基础HTML(Hyp......
  • Study Plan For Algorithms - Part26
    1.礼物的最大价值在一个m*n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?方法一:de......
  • Study Plan For Algorithms - Part27
    1.最长不含重复字符的子字符串请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。方法一:deflengthOfLongestSubstring(s):n=len(s)max_len=0start=0char_index={}forendinrange(n):ifs[en......
  • GZOI2024 Day1 T3 coin
    coin(GZOI2024Day1T3)题目大意给你\(n\)个硬币,每个硬币有属性\(a_i,b_i,p_i\),表示有\(p_i\)的概率值为\(a_i\),有\(1-p_i\)的概率值为\(b_i\)。所有的\(a_i\)所有的\(b_i\)均不同。有\(q\)次询问,询问有两种:给定\(l,r,k\),问\([l,r]\)的硬币值都\(<\)第\(......
  • Nature Genetics | Rajeev K. Varshney综述:解锁植物遗传学的端粒到端粒(T2T)基因组组装
    近期,RajeevK.Varshney团队在Naturegenetics发表综述文章:Unlockingplantgeneticswithtelomere-to-telomeregenomeassemblies。摘要连续基因组序列组装将帮助我们实现作物转化基因组学的全面潜力。最近在测序技术方面的进步,尤其是长读长测序策略,使得构建无间隙的端粒到......
  • MGT2IMG Australian-based renewable energy
    Assessment2–GroupAssessmentforMGT2IMGType: GroupReportGroupsize: 3studentseachDocument: MSWordwith12fontsizeand1.5spacingWordcount: 1,000perstudent(10+/-allowed)Referencingstyle.: APA7/8Weight: 30%Due: Sunday,29.09.202......
  • Study Plan For Algorithms - Part24
    1.全排列II题目链接:https://leetcode.cn/problems/permutations-ii/给定一个可包含重复数字的序列nums,按任意顺序返回所有不重复的全排列。classSolution:defpermuteUnique(self,nums:List[int])->List[List[int]]:defbacktrack(nums,path,res,us......
  • Study Plan For Algorithms - Part25
    1.栈的压入、弹出序列输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。方法一:defvalidateStackSequences(pushed,popped):stack=[]len_pushed=len(pushed)stack_index=0i......
  • Study Plan For Algorithms - Part23
    1.跳跃游戏II题目链接:https://leetcode.cn/problems/jump-game-ii/给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度:0<=j<=nums[i]i+j<n返回到达nums[n-1]的最小跳跃次数。classSolutio......
  • T2 的莫反式子
    正在实现,不知道对不对,但是先放这,哪个大佬发现问题了和我说下设\[f(l)=\sum\cdots\sum[\gcd=1,\text{lcm}=l]\]\[g(l)=\sum\cdots\sum[\gcd=1,\text{lcm}\midl]\]\[h(l)=\sum\cdots\sum[\text{lcm}\midl]\]则\[g(l)=\sum_{l\midd}f(d)\]\[f(l)=\sum_{l\midd}\mu(......