首页 > 编程语言 >2024牛客寒假算法基础集训营1

2024牛客寒假算法基础集训营1

时间:2024-02-08 18:11:21浏览次数:28  
标签:199 所以 题解 然后 2024 牛客 枚举 答案 集训营

D. 数组成鸡

image-20240208170306191

题解

观察到 \(abs(M) \leq 1e9\),容易知道如果绝对值不为 \(1\) 的数的个数大于 \(30\) 个的话,显然溢出,不会在答案的范围内

再仔细分析性质,如果整个数组中数的种类超过了 \(20\) 种,那么除了 \(0\) 之外,最坏的结果就是 \(-10, -9...-1,1,2,...10\) 这样的情况,他们的乘积为 \((10!)^2 > 1e9\),所以显然如果种类数超过 \(20\) 我们可以不用管了

对于种类数小于 \(20\) 的情况,我们考虑暴力跑出所有可行的答案放在 \(set\) 中,然后 \(O(1)\) 回答查询

那么究竟怎么暴力?我们分两种操作,第一种先将原数组升序排列,然后通过操作使得最小值为 \(0\),因为数组中不允许存在两个元素以上的值 \(> \sqrt{1e9}\),所以暴力 \([-4e4,4e4]\) 枚举偏移量,然后直接暴力 \(O(n)\) 去累乘,然后判断合法性,因为很容易超过 \(1e9\) 所以实际上很难跑满 \(O(n)\),这样就枚举出了答案的上界

第二种操作先将原数组降序排列,然后通过操作使得最大值为 \(0\),后面的操作和第一种一样,这样就枚举出了答案的下界

F. 鸡数题!

image-20240208173034039

题解:第二类斯特林数

条件 \(3\):说明二进制上一共只有 \(n\) 个 \(1\)

条件 \(4\):说明每个 \(1\) 只能分给 \(1\) 个数

条件 \(1\):每个数至少有 \(1\) 个 \(1\)

条件 \(2\):分完后保证有序

发现其本质就是 \(n\) 个不同的小球放入 \(m\) 个相同的盒子中,要求盒子非空,求方案数

只是最后分完之后将盒子按照大小排序而已,所以方案数没有改变

这显然是第二类斯特林数

H. 01背包,但是bit

image-20240208173501459

题解:按位枚举

假设 \(m\) 的第 \(x\) 位为 \(1\),则如果所选物品的重量或的和在第 \(x\) 位为 \(0\),那么比 \(x\) 低的位我们可以随便取 \(0\) 或 \(1\),没有关系,比\(x\) 的高的位必须是 \(m\) 的子集,那么我们可以尽可能贪心的选,一直逼近 \(m\)

所以我们只要枚举 \(m\) 二进制中所有 \(1\) 的位,然后按照上面的步骤统计出答案后取 \(max\) 即可

最后别忘了对 \(m\) 本身统计答案,只要 \(w[i]\) 是 \(m\) 的子集,就可以拿

I. It's bertrand paradox. Again!

image-20240208174244346

题解:期望 / 统计量的选定和参数估计

可以观察到第一个人生成的数据中 \(x, y\) 分布的更加均匀

所以我们定义随机变量 \(X\) 为点到圆心距离的平方,易得每个点被选到的概率为 \(\frac{1}{199\times 199}\),所以得到 \(E(X) = \frac{1}{199\times 199} \sum x^2 + y^2\)

我们得到了 \(1e5\) 个样本,由于样本均值是无偏估计,所以我们可以大约使用样本均值来代替期望,所以我们只要求出 \(X\) 的样本均值后与 \(EX\) 比较即可,误差较小的就是第一个人

J. 又鸟之亦心

image-20240208175037430

题解:二分答案

考虑 check,假设检查的答案为 \(mid\),一个显然的性质,当处于第 \(i\) 个任务的时候,一定有一个人在 \(a[i]\) 位置上,所以我们通过 \(set\) 维护另一个人可能在的位置,如果另一个人没有位置,说明答案不合法

复杂度:\(O(nlog^2n)\)

K. 牛镇公务员考试

image-20240208175419138

题解:基环树 + 拓扑排序求环

容易发现对于一条链来说,只要其中任意一个题目的答案确定了,那么这条链上所有题目的答案就确定了

所以对于一个环来说,容易产生矛盾

然后我们将题目抽象为给定 \(n\) 个点和 \(n\) 个有向边的可能不连通的图,由于每个点都有一个出边,所以每个连通块一定是一颗基环树,也就是说每个连通块中一个有且只有一个环,我们只要把所有的环找出来,不在环上的一定不影响答案,然后在环上任意找一个起点,跑 \(5\) 次,数一下没有产生冲突的次数

那么答案就是所有环上没有冲突次数的乘积

然后问题就转化为求环,然后在环上检查合法性了

标签:199,所以,题解,然后,2024,牛客,枚举,答案,集训营
From: https://www.cnblogs.com/Zeoy-kkk/p/18011993

相关文章

  • 2024牛客寒假算法基础集训营1 补题
    2024牛客寒假算法基础集训营1补题A.DFS搜索模拟题意:给你一个字符串\(S\),求出\(S\)中是否存在子序列“DFS“和"dfs"。思路:直接模拟即可参考代码:#include<bits/stdc++.h>usingnamespacestd;#definefffirst#definesssecond#defineebemplace_back#define......
  • THUWC & NOIWC 2024游记
    1.25从长沙坐高铁出发,上次坐高铁身份证出问题了这次还新办了张身份证。经历6个小时到达重庆。去PKU的佬们先走了,只剩下我,lj(机房同好)和yzj(高二强大学长)。先报到,试机浅浅把前两道题过了,然后直接开润。到了酒店直接开摆。1.26THUWCDay1,五个小时四道题。开T1,一开始只会45......
  • 2024牛客寒假算法基础集训营3
    2024牛客寒假算法基础集训营3A.智乃与瞩目狸猫、幸运水母、月宫龙虾思路:就是一个简单的字符串#include<bits/stdc++.h>usingnamespacestd;voidsolve(){stringa,b;cin>>a>>b;if(a[0]==b[0]||a[0]-'A'+'a'==b[0]||b[0]-'A'+'a'==......
  • 牛客寒假集训营 第三场
    这场做了6题,没有做全场,做了个半场吧,还算可以,最后一题磨了很久。A.智乃与瞩目狸猫、幸运水母、月宫龙虾思路分析:是个语法题,单独拿首字母出来全部化成大写然后再判断就可以了。code:点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defi......
  • BeginCTF 2024(自由赛道)CRYPTO
    PAD某同学在学习RSA得时候,觉得仅仅靠着比特位得RSA是不安全的,于是参考了部分资料后,灵光乍现Author:lingfengDifficult:easytask.pyimportrandom,mathfromCrypto.Util.numberimport*fromflagimportflagflag=flag[:64]assertlen(flag)==64classRSA():......
  • 阿里云参编业内首个代码大模型标准丨云原生 2024 年 1 月产品技术动态
    云原生月度动态云原生是企业数字创新的最短路径。《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。趋势热点......
  • WC2024
    最简单的一届WC。P10143[WC2024]代码堵塞难度:1拆贡献,考虑\(i\)选\(0\)还是\(1\):如果\(i\)选\(0\),那么它前面选\(0\)的加上它不超过\(T\)。如果\(i\)选\(1\),那么它后面选\(0\)的加上它和它前面的所有数不超过\(T\)。随便背包可以做到\(\mathcal{O}(nT......
  • WC2024 游记
    WC2024游记Day0&Day1见参考资料[1]。Day2今天是,上午题目选讲,下午讲量子计算。上午的东西不怎么感兴趣,摆摆摆。下午的东西感觉是有点意思的,听听听。可是有点不符合预期啊,前半部分讲了一堆没什么意义的科普,后半部分讲的量子算法又掉线了。那没办法了,摆摆摆。还是不能......
  • CTS 2024 游记
    前情提要CTT2024游记-Qiuly-洛谷博客(luogu.com.cn)。CTT2024总榜rk27。标准分总分29.89404899。距离rk67.2152226分,rk411.02257773分。想要至少翻进个答辩。1.25早上的高铁,第一次看到这么多一中oier一起出行。高铁去贵州绕了一圈,把时长顶到了6h。......
  • 2024/2/7学习进度笔记
    为什么要用非线性函数要解释这个问题,可以反过来思考一下,为什么激活函数不能使用线性函数。如果使用线性函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。加深神经网络的层数就没有什么意义了。线性函数的问题在于不管加深层数到多少,总是存在......