首页 > 其他分享 >11.2 炼石模拟赛

11.2 炼石模拟赛

时间:2024-11-02 11:09:19浏览次数:1  
标签:frac 炼石 11.2 玩偶 log 观察 机子 模拟 贪心

T1

贪心即可。

T2

考虑贪心。

观察 1

不能出玩偶的机子应该最后修。

所有钦定不出玩偶的机子都是平凡的,就是假在这里了!

观察2

所有人一起修机是最优的。

观察3

对于所有钦定出玩偶的机子,应该按照 \(b\) 数组从小到大排序后修理。


有以上的观察,不难发现应该按照 \(b\) 数组排序。然后若选定了玩偶,应该从前往后修。手玩一下(主要是看 \(n\) 的范围) 知道贪心是不可取的,定义 \(f_{i,j,k}\) 表示前 \(i\) 个机子,有 \(j\) 个玩偶,破译了 \(k\) 台机子最小时间。

有转移:

啥也不干:\(f_{i,j,k}=f_{i-1,j,k}\)

不用玩偶:$$f_{i,j,k}=f_{i-1,j,k-1}+\frac{a_i}{j+1}$$

用:$$f_{i,j,k}=f_{i-1,j-1,k-1}+\frac{b_i}{j}$$

时间复杂度 \(O(n^3)\),一看就正确

牛魔的怎么假了


重新思考一下,枚举一个 \(x\) 表示强制取 \(x\) 个玩偶时的情况。

如果一个数不取,那么时间应该是 \(\frac{a_i}{x+1}\)

式子就是:\(\sum\limits_{i=1}^x \frac{b_i}{i}+\sum\limits^{m-x}_{i=1}\frac{a_i}{x+1}\)

每次都重新 dp 一次是 \(O(n^4)\),很不妙。

大胆猜测可以三分。这次不会假吧?


对了。但是 \(O(n^3\log n)\) 肯定超了。

\(O(\log n)\) 枚举一个 \(x\),发现不管是 \(a_i\) 还是 \(b_i\) ,都是选定以后贪心的往后选一些数。所以如果取了某些 \(a_i\) ,然后就是取所有没有取的 \(b_i\),不好贪。

发现一个性质,就是不取就是不优的。

维护状态 \(f_{i,j}\) 表示前 \(i\) 个玩偶,取了 \(j\) 个玩偶的最小值,转移:

\(f_{i,j}=\min(f_{i-1,j-1}+\frac{b_i}{j},f_{i-1,j}+\frac{a_i}{x+1})\)

重要的:结算状态是 \(f_{i,x}\),往后维护即可。

细节似乎有点多。不想写。(调不出来了)


嘿嘿调过了,时间复杂度 \(O(n^2\log n)\),薄纱标程。


T3

标签:frac,炼石,11.2,玩偶,log,观察,机子,模拟,贪心
From: https://www.cnblogs.com/g1ove/p/18521722

相关文章

  • 多校 A 层冲刺 NOIP2024 模拟赛 17
    多校A层冲刺NOIP2024模拟赛17T1网格签到题注意到\(+\)与\(\times\)由于优先级其实是分开的,所以可以考虑每到达一个\(+\)计算一次贡献(乘上一个组合数),然后将前置贡献重新赋值为方案数,DP只需考虑连续\(\times\)段即可。时间复杂度\(O(nm)\)。T2矩形根号分治发现不......
  • 模拟实现字符串函数
    今天给大家分享几个字符串函数的模拟实现,它们分别是strlen,strcpy,strcat函数。这几个函数我上一期已经介绍过了,那么今天我就不过多介绍它们了,今天着重来看它们是如何实现的1.strlen函数我们先看代码这个函数的逻辑便是记录\0之前的字符,那么我们便可以通过计数器来实现,用一......
  • 20241101 模拟赛总结
    期望得分:100+47+35+22=204实际得分:100+47+3+22=172订正记录T1订正了之前T3,晚了半个多小时才开T1……开始大胆猜想是从小到大排序计算,后面发现不对?又想了一个邻项交换的点子,发现没什么区别,后面又猜是不是一段后缀,发现几个样例还真是!进一步思考后发现,是一段递增的子序列,并且起......
  • OIFC未来共同体20241030noip模拟四
    T1我们发现\(1\)其实根本没有用,只和一个连通块里的\(0\)的个数有关,直接\(dfs\),判断即可。#include<iostream>#include<cstring>usingnamespacestd;inlineintread(){registerintx=0,f=1;registercharc=getchar();while(c<'0'||c>'......
  • OIFC未来共同体20241028noip模拟三
    T1状压\(dp\),两两之间有相同的位,那一位就为\(1\),否则就为\(0\),考虑哪些选法不合法,要在\(0\)的位上为\(1\),即只在\(1\)上选和不选都是不可以的,于是状压\(dp\)即可。#include<iostream>#defineintlonglongusingnamespacestd;inlineintread(){registerintx......
  • OIFC未来共同体20241023noip模拟二
    T1考虑从后往前去做,随机化字母权值,考虑两个字符,一个设为正的权值,一个设为负的权值,两两就可以抵消,若有一个后缀权值等于另一个后缀权值且长度为偶数,就肯定有一个回文串,若有一个后缀权值等于另一个后缀权值加减一个字母的权值且长度为奇数,就也肯定有一个回文串,存下来,离散化即可。#......
  • OIFC未来共同体20241021noip模拟一
    T1建边,发现要找偶环,但两个奇环也可以拼在一起,于是按照上面的思路模拟即可。但是挂了一个点,不知道为啥。#include<iostream>#include<vector>#include<cstring>usingnamespacestd;inlineintread(){registerintx=0,f=1;registercharc=getchar();while(c<......
  • 2024.11.01模拟赛
    唉不——开——心——有些话就不说了。T1打假了,打了T3、T4的特殊样例(共10分),原本是抱着爆0的心态的,结果没想到T1数据水到直接给了我70分——但T3T4爆掉了,总分70分。差点爆0,不——开————心——————题目小链接T1【二分图匹配】题目大意:给出两个长度分别为n,m(1......
  • 【考试题解】多校A层冲刺NOIP2024模拟赛17
    A.网格(grid)题目内容给你一个\(n\timesm\)的字符网格\(s\),\(s_{i,j}\in[1,9]\cup\{+,*\}\),从\((1,1)\)开始,仅向下或向右走并最终到达\((n,m)\)的路径被称为合法路径,求所有合法路径对应的表达式的运算结果之和,答案对\(998244353\)取模。部分分44pts爆搜,枚举路径,......
  • 2024 -- 国庆集训 -- 临沂四中 -- 10月01 日 -- S/N模拟赛#1 题解
    A.2025--[炼石计划--NOIP模拟三]--T1--矩形赛时草了个\(O(n^4\log(n))\)竟然能过70分虽然本来就是这么分配的,发现正解只需将二分改为双指针就可以了,最气的是上面计算的时候用到还是尺取下面就用的二分(唐诗)。其实这题就是暴力,然后在低级的暴力上加一些操作变得稍微高级一......