【历年CSP-S复赛第一题】暴力解法与正解合集(2019-2022)
- P5657 [CSP-S2019] 格雷码
- P7076 [CSP-S2020] 动物园
- P7913 [CSP-S 2021] 廊桥分配
- P8817 [CSP-S 2022] 假期计划
P5657 [CSP-S2019] 格雷码
暴力50分
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) 
#define int long long
#define PII pair<int,int> 
#define pb push_back
using namespace std;
const int N = 1e6+5;
int n,k;
signed main()
{IOS;cin>>n>>k;vector<string> v;v.pb("0");v.pb("1");for(int j=1;j<=n-1;j++) {vector<string> vt;for(int i=0;i<(int)v.size();i++){vt.pb("0"+v[i]);}for(int i=(int)v.size()-1;i>=0;i--){vt.pb("1"+v[i]);}v = vt;}cout<<v[k];
}
正解
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) 
#define int long long
#define PII pair<int,int> 
#define pb push_back
using namespace std;
const int N = 1e6+5;
unsigned long long n,k;
signed main()
{IOS;cin>>n>>k;__int128 sum = (__int128)pow(2,n);int pre = -1;while(1){if(pre==-1){if(k<=sum/2-1){cout<<0;pre = -1;}else{cout<<1;pre = 1;k -= sum/2;}	}else{if(k<=sum/2-1)//k下标从1开始 {cout<<1;pre = -1;}else{cout<<0;pre = 1;k -= sum/2;}}sum /= 2;if(sum==1) break;}
}
P7076 [CSP-S2020] 动物园
暴力
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) 
#define int long long
#define PII pair<int,int> 
#define pb push_back
using namespace std;
const int N = 1e6+5;
int n,m,c,k;
int limit[N],va[N];
signed main()
{IOS;cin>>n>>m>>c>>k;for(int i=1;i<=n;i++) cin>>va[i];while(m--){int a,b;cin>>a>>b;limit[a] = b;//动物编号第a为1就必须有b号饲料 }set<int> s;for(int i=1;i<=n;i++)//由已有动物来倒推我有哪些饲料{for(int j=0;j<=k-1;j++){if((va[i]>>j)&1)//动物编号的二进制第j位为1 {s.insert(limit[j]);//动物编号的二进制第j位为1,即需要limit[j]号饲料}}}int sum = 0;for(int i=0;i<=pow(2,k)-1;i++){int suc = 1;for(int j=0;j<=k-1;j++){if((i>>j)&1){if(limit[j]==0) continue;if(s.count(limit[j])) continue;suc = 0;}}if(suc==1) sum++;}cout<<sum-n;
}
正解
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) 
#define int long long
#define PII pair<int,int> 
#define pb push_back
using namespace std;
const int N = 1e6+5;
int n,m,c,k;
int limit[N],va[N];
bool vis[N];
signed main()
{IOS;cin>>n>>m>>c>>k;for(int i=1;i<=n;i++) cin>>va[i];while(m--){int a,b;cin>>a>>b;limit[a] = b;//动物编号第a为1就必须有b号饲料 }for(int j=0;j<=k-1;j++){if(limit[j]==0) vis[j] = 1;for(int i=1;i<=n;i++){if((va[i]>>j)&1) vis[j] = 1;//由已有动物来倒推我哪些位置有哪些饲料}}int sum = 0;for(int i=0;i<=k-1;i++){if(vis[i]==1) sum++;}if(sum==64){if(n==0) cout<<"18446744073709551616";else cout<<(1ull<<(sum-1))-n+(1ull<<(sum-1));}else cout<<(1ull<<sum)-n;
}
P7913 [CSP-S 2021] 廊桥分配
暴力
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) 
#define int long long
#define PII pair<int,int> 
#define pb push_back
using namespace std;
const int N = 1e6+5;
int n,m1,m2;
struct node{int in;int out;
}va[N],vb[N];
bool cmp(node a,node b)
{return a.in<b.in;
}
int solve(int sum1,int sum2)
{int ans = 0;priority_queue <int,vector<int>,greater<int> > q1,q2;for(int i=1;i<=m1;i++) { while(q1.size()&&q1.top()<=va[i].in) q1.pop();if(q1.size()<sum1){ans++;q1.push(va[i].out);}}for(int i=1;i<=m2;i++) { while(q2.size()&&q2.top()<=vb[i].in) q2.pop();if(q2.size()<sum2){ans++;q2.push(vb[i].out);}}return ans;
}
signed main()
{IOS;cin>>n>>m1>>m2;int maxn = 0;for(int i=1;i<=m1;i++){cin>>va[i].in>>va[i].out;}for(int i=1;i<=m2;i++){cin>>vb[i].in>>vb[i].out;}sort(va+1,va+1+m1,cmp);sort(vb+1,vb+1+m2,cmp);for(int i=0;i<=n;i++){maxn = max(maxn,solve(i,n-i));}cout<<maxn;
}
正解
#include<bits/stdc++.h>
#define PII pair<int,int>
#define fi first
#define se second
#define int long longusing namespace std;const int N = 1e5+10;int n,m1,m2;
PII va[N],vb[N];
int cnt1[N],cnt2[N];priority_queue<PII,vector<PII>,greater<PII>> q1,q2;int solve1()
{for(int i=1;i<=n;i++) q1.push({0,i});for(int i=1;i<=m1;i++){int min_id = 1e9;vector<PII > v;while(q1.size()&&q1.top().fi<=va[i].fi){v.push_back(q1.top());if(min_id>q1.top().se) min_id = q1.top().se;q1.pop();}for(auto t:v){if(t.se==min_id) q1.push({va[i].se,t.se});else q1.push({0,t.se});}if(min_id!=1e9) cnt1[min_id]++;}for(int i=1;i<=n;i++) cnt1[i] = cnt1[i]+cnt1[i-1];
}int solve2()
{for(int i=1;i<=n;i++) q2.push({0,i});for(int i=1;i<=m2;i++){int min_id = 1e9;vector<PII > v;while(q2.size()&&q2.top().fi<=va[i].fi){v.push_back(q2.top());if(min_id>q2.top().se) min_id = q2.top().se;q2.pop();}for(auto t:v){if(t.se==min_id) q2.push({va[i].se,t.se});else q2.push({0,t.se});}if(min_id!=1e9) cnt2[min_id]++;}for(int i=1;i<=n;i++) cnt2[i] = cnt2[i]+cnt2[i-1];
}signed main()
{
//	freopen("w.in","r",stdin);
//  freopen("ho.out","w",stdout);cin>>n>>m1>>m2;for(int i=1;i<=m1;i++) cin>>va[i].fi>>va[i].se;for(int i=1;i<=m2;i++) cin>>vb[i].fi>>vb[i].se;sort(va+1,va+1+m1);sort(vb+1,vb+1+m2);solve1();solve2();int anw = 0;for(int i=0;i<=n;i++) anw = max(anw,cnt1[i]+cnt2[n-i]);cout<<anw;return 0;
}相关文章:
【历年CSP-S复赛第一题】暴力解法与正解合集(2019-2022)
P5657 [CSP-S2019] 格雷码P7076 [CSP-S2020] 动物园P7913 [CSP-S 2021] 廊桥分配P8817 [CSP-S 2022] 假期计划 P5657 [CSP-S2019] 格雷码 暴力50分 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define int long long #d…...
基于PyQt5和SQLite的数据库操作程序
基于PyQt5和SQLite的数据库操作程序:功能解析 在现代办公和数据处理中,数据库操作是不可或缺的一部分。然而,传统的数据库管理工具往往界面复杂,操作繁琐,对于非专业人士来说存在一定的学习曲线。为了解决这个问题,我们开发了一款基于PyQt5和SQLite的数据库操作程序。该…...
 
在Ubuntu 20.04中安装CARLA
0. 引言 CARLA (Car Learning to Act) 是一款开源自动驾驶模拟器,其支持自动驾驶系统全管线的开发、训练和验证(Development, Training, and Validation of autonomous driving systems)。Carla提供了丰富的数字资产,例如城市布局…...
 
【高中数学/对数/导数】曲线y=ln|x|过坐标原点的两切线方程为?
【问题】 曲线yln|x|过坐标原点的两切线方程为?(高考真题) 【出处】 《高考数学 函数与导数题型解题研究》P5第8题 中原教研工作室编著 【解答】 yln|x|的图线分两部分,y轴左边的部分是ylnx的镜像 所以知ylnx上切线过原点的…...
Qt CMake
使用 CMake 构建 CMake 是一款用于简化跨不同平台开发项目的构建流程的工具。 CMake 可自动生成构建系统,如 Makefile 和 Visual Studio 项目文件。 CMake 是一个第三方工具,有自己的文档。 本主题介绍如何在 Qt 5 中使用 CMake 3.1.0。 开始使用 CMak…...
 
制造企业各部门如何参与生产成本控制与管理?
国内制造业的分量可不轻,从日常生活用品到高端工业设备,中国制造几乎涵盖了各个领域。 不过很多制造业企业在管理方面确实存在一些难题:成本控制不容易,产品质量并不稳定,生产周期也常常较长。 一、中国制造业生产管…...
 
FireRedTTS - 小红书最新开源AI语音克隆合成系统 免训练一键音频克隆 本地一键整合包下载
小红书技术团队FireRed最近推出了一款名为FireRedTTS的先进语音合成系统,该系统能够基于少量参考音频快速模仿任意音色和说话风格,实现独特的音频内容创造。 FireRedTTS 只需要给定文本和几秒钟参考音频,无需训练,就可模仿任意音色…...
 
活体检测标签之2.4G有源RFID--SI24R2F+
首先从客户对食品安全和可追溯性的关注切入,引出活体标签这个解决方案。接着分别阐述活体标签在动物养殖和植物产品方面的应用,强调其像 “身份证” 一样记录重要信息,让客户能够了解食品的来源和成长历程,从而放心食用。最后呼吁…...
 
Web3Auth 如何工作?
Web3Auth 用作钱包基础设施,为去中心化应用程序 (dApp) 和区块链钱包提供增强的灵活性和安全性。在本文档中,我们将探索 Web3Auth 的功能,展示它如何为每个用户和应用程序生成唯一的加密密钥提供程序。 高级架构 Web3Auth SDK 完全存在于用…...
问:SQL中join语法的差异?
在SQL中,JOIN语法用于结合来自两个或多个表的数据。不同类型的JOIN会基于不同的条件来合并表中的数据。以下是几种常见的JOIN及其差异: 假设我们有两个表:employees 和 departments。 employees 表: employee_idnamedepartment_id1Alice10…...
计算机网络各层有哪些协议?计算机网络协议解析:从拟定到实现,全面了解各层协议的作用与区别
在数字化时代,计算机网络无处不在,已经成为不可或缺的一部分。为了让不同设备能够有效地进行通信,网络协议作为一种约定和规则,确保了数据在网络中的可靠传输。今天,我们将深入探讨计算机网络的各层协议,详…...
解决方案:机器学习中,基学习器 跟 弱学习器,有什么区别
文章目录 一、现象二、解决方案 一、现象 在工作中,在机器学习中,有时候会看到基学习器 跟 弱学习器,会容易混淆,所以整理一下 二、解决方案 在机器学习中,“基学习器”(Base Learner)和“弱…...
 
【Python】ftfy 使用指南:修复 Unicode 编码问题
ftfy(fixes text for you)是一个专为修复各种文本编码错误而设计的 Python 工具。它的主要目标是将损坏的 Unicode 文本恢复为正确的 Unicode 格式。ftfy 并非用于处理非 Unicode 编码,而是旨在修复因为编码不一致、解码错误或混合编码导致的…...
第9课-C++String功能的探索
1:C 语言中的字符串 vs C string 类 1.1 C 语言中的字符串 在 C 语言中,字符串本质上是以 \0 结尾的字符数组。C 标准库为此提供了 str 系列函数,如 strlen()、strcpy() 和 strcat() 等。虽然这些函数可以操作字符串,但它们的操…...
 
基于Hive和Hadoop的保险分析系统
本项目是一个基于大数据技术的保险分析系统,旨在为用户提供全面的汽车保险信息和深入的保险价格分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 Spark…...
 
国庆节快乐前端(HTML+CSS+JavaScript+BootStrap.min.css)
一、效果展示 二、制作缘由 最近,到了国庆节,自己呆在学校当守校人,太无聊了,顺便做一个小demo帮祖国目前庆生!!! 三、项目目录结构 四、准备工作 (1)新建好对应的文件目录 为了方便ÿ…...
 
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化 阿里 MySQL 命名规范MySQL8 DDL的原子化 阿里 MySQL 命名规范 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价…...
PyTorch源码系列(一)——Optimizer源码详解
目录 1. Optimizer类2. Optimizer概览3. 源码解析3.1 构造方法3.1.1 全局设置情形3.1.2 局部设置情形3.1.3 覆盖测试3.1.4 逐行讲解 3.2 add_param_group3.3 step3.4 zero_grad3.5 self.state3.6 state_dict3.7 load_state_dict 4. SGD Optimizer5. 极简版Optimizer源码6. 自定…...
Java - LeetCode面试经典150题(三)
区间 228. 汇总区间 题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中…...
 
基于SpringBoot+Vue+MySQL的民宿预订平台
系统展示 用户前台界面 管理员后台界面 商家后台界面 系统背景 随着旅游业的蓬勃发展,民宿作为一种独特的住宿方式,受到了越来越多游客的青睐。然而,传统的民宿预定方式往往存在信息不对称、效率低下等问题,难以满足游客的个性化需…...
 
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
 
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
 
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
 
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
 
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
