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

H:01背包,但是bit

这题一看数据范围很大,重量和价值都是1e8级别的,当时还在想是不是背包,原来就是位运算

具体来说,我们枚举m的每一位为1的1,强制这一位为0,这样m被分为前后两部分,对于前面的部分一定要满足或后小于m,简单说就是,在前面m不为1的位绝不能为1,而我们令当前这一位1为0了,对于后面所有位都为1,也不可能大于当前这一位,那么我们就可以根据这进行枚举计算了

int n, m;
int w[N], v[N];
void solve()
{cin >> n >> m;for (int i = 1; i <= n; i++)cin >> v[i] >> w[i];int ans = 0;for (int i = 1; i <= n; i++){if ((w[i] | m) == m)ans += v[i];}for (int i = 29; i >= 0; i--){if (m >> i & 1){int x = m ^ (1 << i);            // 前面和m一样,但是第i位为0了,故后面就算全是1也不会大于m,就是对于后面解除了限制for (int j = i - 1; j >= 0; j--) // 后面没有限制{x |= (1 << j);}int res = 0;for (int j = 1; j <= n; j++)if ((w[j] | x) == x)res += v[j];ans = max(ans, res);}}cout << ans << endl;
}

I: It's bertrand paradox. Again!

找到两种方法会使得哪个统计量有显著区别,尝试区分这个统计量的均值;

比如求出法1该统计量均值m1、法2该统计量均值m2,那对于输入数据,直接看输入 数据的该统计量m和m1与m2谁更近就行了

其实很简单,就当再复习一遍随机数的求法了

void solve()
{// int ans1 = 0, ans2 = 0;// srand(time(NULL));// for (int i = 1; i <= 1e5; i++)// {//     int x = rand() % 199 - 99;//     int y = rand() % 199 - 99;//     int r = rand() % 100 + 1;//     while (x - r < -100 || x + r > 100 | y + r > 100 || y - r < -100)//     {//         r = rand() % 100 + 1;//     }//     ans1 += r;// }// for (int i = 1; i <= 1e5; i++)// {//     int x = rand() % 199 - 99;//     int y = rand() % 199 - 99;//     int r = rand() % 100 + 1;//     while (x - r < -100 || x + r > 100 | y + r > 100 || y - r < -100)//     {//         x = rand() % 199 - 99;//         y = rand() % 199 - 99;//         r = rand() % 100 + 1;//     }//     ans2 += r;// }// cout << LF(6);// cout << 1.0 * ans1 / 100000 << ' ' << 1.0 * ans2 / 100000 << endl;int n;double ans = 0;cin >> n;for (int i = 1; i <= n; i++){int x, y, z;cin >> x >> y >> z;ans += z;}ans = 1.0 * ans / 100000;double dis1 = abs(ans - 17);double dis2 = abs(ans - 25);if (dis1 < dis2)cout << "bit-noob" << endl;elsecout << "buaa-noob" << endl;
}

F:鸡数题!

第二类斯特林数

假设您已经学完了斯特林数,那本题的做法是:

• 将n个bit每个bit看作一件物品

• 将m个数字每个看作一个集合

• 注意到这几乎就是第二类斯特林数S(n,m)的定义:n个有区别球放到m个无区别盒子

• 还差在哪里呢?我们发现,本题的盒子(ai)并不是无区别的,但因为第二个条件要求了 每个盒子里的数从小到大有序,所以对于S(n,m)无序中的一种方案故只需要乘1即可,对其按ai大小排序就得 到了本题的一种方案,且可以证明这是一种一一映射(重点是证明没有多对一)

• 因此,本题答案就是斯特林数S(n,m)

百度链接第二类斯特林数

int pre[N];
int qpow(int a, int b)
{int res = 1;while (b){if (b & 1)res = res * a % mod;a = a * a % mod;b >>= 1;}return res;
}
void init()
{pre[0] = 1;for (int i = 1; i <= 1e6; i++){pre[i] = pre[i - 1] * i % mod;}
}
void solve()
{init();int n, m;cin >> n >> m;if (n < m){cout << 0;return;}int ans = 0;for (int i = 0; i <= m; i++){int t = 1;if (i % 2)t = -1;t *= pre[m] * qpow(pre[m - i], mod - 2) % mod * qpow(pre[i], mod - 2) % mod;t = (t * qpow(m - i, n) % mod) % mod;ans = ((ans + t) % mod + mod) % mod;}ans = (ans * qpow(pre[m], mod - 2) % mod) % mod;cout << ans << endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/663281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣202-快乐数

快乐数 题目链接 解题思路&#xff1a; 两个指针&#xff0c;一快一慢&#xff0c;如果相遇&#xff0c;就会生成环如果环内元素为1,那么就可以返回 class Solution { public:int get(int n){int res 0;while(n){res (n%10) * (n%10);n / 10;}return res;}bool isHappy(int …

docker面试问题二

如何防止Docker容器中的漏洞和攻击&#xff1f; 防止Docker容器中的漏洞和攻击是一个多层次、多方面的任务&#xff0c;涉及从镜像构建、容器运行到网络安全的整个生命周期。以下是一些关键措施&#xff1a; 使用官方和受信任的镜像&#xff1a; 总是从官方源或受信任的第三方…

基于SSM的个性化旅游攻略定制系统设计与实现(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的个性化旅游攻略定制系统设计与实现&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xf…

故障诊断 | 一文解决,RF随机森林的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,RF随机森林的故障诊断(Matlab) 模型描述 随机森林(Random Forest)是一种集成学习(Ensemble Learning)方法,常用于解决分类和回归问题。它由多个决策树组成,每个决策树都独立地对数据进行训练,并且最终的预测结果是由所有决策…

为什么SSL会握手失败?SSL握手失败原因及解决方案

随着网络安全技术的发展&#xff0c;SSL证书作为网站数据安全的第一道防线&#xff0c;被越来越多的企业选择。SSL证书使用的是SSL协议&#xff0c;而SSL握手是SSL协议当中最重要的一部分。当部署SSL证书时&#xff0c;如果服务器和客户端之间无法建立安全连接&#xff0c;就会…

C++学习Day01之using声明以及using编译指令

目录 一、程序1.1 using声明1.2 using声明与就近原则1.3 using编译指令与就近原则1.4 多个using编译指令 二、分析与总结 一、程序 1.1 using声明 #include<iostream> using namespace std;namespace KingGlory {int sunwukongId 1; } void test01() {//1、using声明u…

由数据插入超长引起的问题——了解GaussDB和openGauss的字符集

前言 故事是这样开始的。我们的小DEMO项目的数据库版本从openGauss 2.1.0升级到了5.0.0版本。升级后进行功能验证的时候&#xff0c;测试同学发现个BUG&#xff0c;原来通过gs_restore导出来的数据再导入时报超长&#xff0c;插入失败了&#xff0c;如下图所示&#xff0c;nva…

2024年第十五届电子商务、管理与经济国际会议(ICEME 2024)即将召开!

2024年第十五届电子商务、管理与经济国际会议(ICEME 2024) 将于2024年7月19-21日在北京召开。本次会议将由北京工业大学主办&#xff0c;中国澳门圣若瑟大学提供学术支持。ICEME 2024旨在为来自世界各地的电子商务、管理与经济的研究人员提供一个展示最新研究成果的高质量交流平…

市场复盘总结 20240202

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 昨日主题投资 连板进级率 6/30 20% 二进三…

java多线程详解

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。简单理解为&#xff1a;引用软件中相互独立&#xff0c;可以同时允许的功能 进程是程序的基本执行实体 并发&#xff1a;在同一时刻&#xff0c;有多个指令在单个CPU上交替…

java事务相关知识小总结

java事务相关知识小总结 Spring 事务相关知识&#xff1a; Spring提供了强大的事务管理机制&#xff0c;支持声明式事务和编程式事务。以下是一些与Spring事务相关的关键知识点&#xff1a; 声明式事务管理&#xff1a; 使用 Transactional 注解声明事务&#xff0c;可以应用…

Java开发四则运算-使用递归和解释器模式

使用递归和解释器模式 程序结构设计具体实现1. 先上最重要的实现类&#xff1a;ExpressionParser&#xff08;最重要&#xff09;2. 再上上下文测试代码&#xff1a;Context&#xff08;程序入口&#xff0c;稍重要&#xff09;3. 使用到的接口和数据结构&#xff08;不太重要的…

C++类和对象(3)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任…

Linux服务详解

如有错误或有补充&#xff0c;以及任何改进的意见&#xff0c;请在评论区留下您的高见&#xff0c;同时文中给出大部分命令的示例&#xff0c;即是您暂时无法在Linux中查看&#xff0c;您也可以知道各种操作的功能以及输出 如果觉得本文写的不错&#xff0c;不妨点个赞&#x…

C++ easyx 结合C++实现 画同心圆。

easyx 结合C实现 画同心圆。 #include<graphics.h> #include<conio.h>int main() {initgraph(666, 666); // 初始化为 666*666 的画布/* circle */setcolor(BLUE); //circle 的线条为某色setfillcolor(YELLOW); //circle 内某色填充 setlinestyle(PS_…

windows11安装docker for windows一直报错的记录

电脑windows11 安装docker&#xff0c;启用wsl2&#xff0c;这块网上搜搜 参考 旧版 WSL 的手动安装步骤 其他都没有问题&#xff0c;通过wsl2访问 Ubuntu22.04 也没有问题 问题是docker 安装需要执行 wsl --update 一直报错&#xff1a;请在存储设置中,将系统驱动器设置为新内…

LeetCode每日一题 | 1686. 石子游戏 VI

文章目录 题目描述问题分析程序代码 题目描述 原题链接 Alice 和 Bob 轮流玩一个游戏&#xff0c;Alice 先手。 一堆石子里总共有n个石子&#xff0c;轮到某个玩家时&#xff0c;他可以 移出 一个石子并得到这个石子的价值。Alice 和 Bob 对石子价值有 不一样的的评判标准 。双…

基于 Echarts 的 Python 图表库:Pyecahrts交互式的日历图和3D柱状图

文章目录 概述一、日历图和柱状图介绍1. 日历图基本概述2. 日历图使用场景3. 柱状图基本概述4. 柱状图使用场景 二、代码实例1. Pyecharts绘制日历图2. Pyecharts绘制2D柱状图3. Pyecharts绘制3D柱状图 总结 概述 本文将引领读者深入了解数据可视化领域中的两个强大工具&#…

关于VxTerm有可能通过SSH协议默认情况下不能正常连接华为S5735交换机的解决办法

此方法为网友&#xff1a;刘春&#xff08;QQ282867758&#xff09;多次测试后找到的解决办法。 在此感谢他&#xff01;谢谢&#xff01; 默认情况下&#xff0c;VxTerm与S5735建立SSH连接时采用的Kex Exchange算法为&#xff1a;diffie-hellman-group-exchange-sha256&…