Codeforces Round 1013 (Div. 3)(A-F)
题目链接:Dashboard - Codeforces Round 1013 (Div. 3) - Codeforces
A. Olympiad Date
思路
找到第一个位置能凑齐01032025的位置
代码
void solve(){int n;cin>>n;vi a(n+10);int id=0;map<int,int> mp;for(int i=1;i<=n;i++){cin>>a[i];mp[a[i]]++;if(!id&&mp[0]>=3&&mp[1]>=1&&mp[3]>=1&&mp[2]>=2&&mp[5]>=1){id=i;}}cout<<id<<"\n";
}
B. Team Training
思路
将数组a划分成不同的组别,最大化实力>=x的数量
贪心一下,如果a[i]>=x单独划分成一组,否则就多凑几个人到x
代码
void solve(){int n,x;cin>>n>>x;vi a(n+10);for(int i=1;i<=n;i++){cin>>a[i];}sort(a.begin()+1,a.begin()+1+n,greater<int>());int cnt=0;int t=1;for(int i=1;i<=n;i++){if(a[i]>=x){cnt++;}else{if(t*a[i]>=x){cnt++;t=1;}else{t++;}}}cout<<cnt<<"\n";
}
C. Combination Lock
思路
构造,说实话这题全靠猜,我赛时傻傻地看样例2构造n=7的情况,其实只需要倒序输出一下就行,或者如下这么构造也是可以的
代码
void solve(){int n;cin>>n;if(n%2==0){cout<<"-1\n";return;}vi ans(n+1);ans[1]=1;int t=n;for(int i=n-1;i>=1;i-=2){ans[i]=t--;}for(int i=n;i>=1;i-=2){ans[i]=t--;}for(int i=1;i<=n;i++){cout<<ans[i]<<" ";}cout<<"\n";
}
D. Place of the Olympiad
思路
可以用二分找,也可以直接用贪心数学
这里我用的贪心,将k个均匀的放在n行中,我们只需要看被分配最多凳子的那一行能分的最小长凳的长度即可
代码
#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=2e5+10;
const int inf=1e18;
const int mod=998244353;void solve(){int n,m,k;cin>>n>>m>>k;int t=k/n;int mx=t;if(k%n) mx++;int x=m-mx;if(x<=0){cout<<m<<"\n";return;}int y=mx/(x+1);if(mx%(x+1)==0){cout<<y<<"\n";}else{cout<<y+1<<"\n";}}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;cin>>_;while(_--) solve();return 0;
}
E. Interesting Ratio
思路
我们发现合法的对数只能是(1 2)(2 4)(4 8)... (1 3)(2 6)(3 9)...(1 5)(2 10)...
发现都是(1*k 素数*k)k是任意正整数,这样统计就行了
代码
#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=1e7+10;
const int inf=1e18;
const int mod=998244353;vector<int> minp,primes;
void sieve(int n){minp.assign(n+1,0);primes.clear();for(int i=2;i<=n;i++){if(minp[i]==0){minp[i]=i;primes.push_back(i);}for(auto p:primes){if(i*p>n){break;}minp[i*p]=p;if(p==minp[i]){break;}}}
}
bool isprime(int n){return minp[n]==n;
}void solve(){int n;cin>>n;int cnt=0;for(int i=0;i<primes.size();i++){if(n<primes[i]) break;cnt+=(n/primes[i]);}cout<<cnt<<"\n";
}
signed main() {vcoistntcout<<fixed<<setprecision(2);sieve(N);int _=1;cin>>_;while(_--) solve();return 0;
}
F. Igor and Mountain
思路
很明显此题是一个从最底层从下到上统计数量的动态规划dp的问题
用表示到达第i行第j列的方法数,此节点的dp值来源于下面一层到达此节点的方法,以及同层之间到达此节点的方法
那么我们便明确了状态转移方程,显然直接这样遍历是复杂度很高的
我们需要优化一下,根据d我们可以缩短枚举的范围,因为我们更新的时候加的是一段区间内的总和,又可以用前缀和优化
代码
#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=2e5+10;
const int inf=1e18;
const int mod=998244353;void solve(){int n,m,d;cin>>n>>m>>d;vector<vi> dp(n+10,vi(m+10)); //第i行第j列的数量vector<vector<char>> s(n+10,vector<char>(m+10));bool b=false;for(int i=1;i<=n;i++){bool f=false;for(int j=1;j<=m;j++){cin>>s[i][j];if(s[i][j]=='X'){f=true;}}if(!f) b=true;}if(b){cout<<"0\n";return;}int xd=sqrt(d*d-1); //上面一个点能从下面到的区间for(int i=n;i>=1;i--){vi tmp(m+1,0); //表示第i行某个节点 从下面一行到此节点 的数量vi predp(m+10,0); //表示上一层dp的前缀和vi pretmp(m+10,0); //表示本层tmp的前缀和if(i==n){for(int j=1;j<=m;j++){if(s[i][j]=='X') tmp[j]=1;}}else{for(int j=1;j<=m;j++){predp[j]=(predp[j-1]+dp[i+1][j])%mod;}for(int j=1;j<=m;j++){if(s[i][j]=='X'){// 尝试暴力更新tmp的值// for(int k=max(j-xd,1ll);k<=min(j+xd,m);k++){// if(s[i+1][k]=='X'){// tmp[j]=(tmp[j]+dp[i+1][k])%mod;// }// }tmp[j]=(tmp[j]+predp[min(j+xd,m)]-predp[max(j-xd,1ll)-1]+mod)%mod;}}}for(int j=1;j<=m;j++){pretmp[j]=(pretmp[j-1]+tmp[j]%mod);}for(int j=1;j<=m;j++){if(s[i][j]=='X'){// 尝试暴力更新灯dp的值// for(int k=max(j-d,1ll);k<=min(j+d,m);k++){// if(s[i][k]=='X')// dp[i][j]=(dp[i][j]+tmp[k])%mod;// }dp[i][j]=(dp[i][j]+pretmp[min(j+d,m)]-pretmp[max(j-d,1ll)-1]+mod)%mod;}}}int ans=0;for(int i=1;i<=m;i++){ans=(ans+dp[1][i])%mod;}cout<<ans%mod<<"\n";
}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;cin>>_;while(_--) solve();return 0;
}
相关文章:
Codeforces Round 1013 (Div. 3)(A-F)
题目链接:Dashboard - Codeforces Round 1013 (Div. 3) - Codeforces A. Olympiad Date 思路 找到第一个位置能凑齐01032025的位置 代码 void solve(){int n;cin>>n;vi a(n10);int id0;map<int,int> mp;for(int i1;i<n;i){cin>>a[i];mp[a…...
Flink 常用及优化参数
流批模式 SET execution.runtime-mode streaming; // or batch基础 Checkpoint 配置 -- 启用 Checkpoint,间隔 5 分钟 SET execution.checkpointing.interval 5min; -- Checkpoint 超时时间(10 分钟) SET execution.checkpointing.timeou…...
Vite 与 Nuxt 深度对比分析
一、核心定位差异 二、核心功能对比 渲染能力 Vite:默认仅支持客户端渲染(CSR),需通过插件(如vite-plugin-ssr)实现 SSR/SSG,但配置灵活 Nuxt:原生支持 SSR(服务端渲…...
Linux内核 内存管理 物理内存初始化流程
1.ARM64页表初始化流程图 start_kernel()│▼ setup_arch() // 架构相关初始化│▼ early_fixmap_init() // 初始化Fixmap(临时映射设备树等)│▼ arm64_memblock_init() // 从设备树解析内存布局│▼ arm…...
PyBluez2 的详细介绍、安装指南、使用方法及配置说明
PyBluez2:Python 蓝牙开发的核心库 一、PyBluez2 简介 PyBluez2 是 Python 的开源蓝牙编程库,支持蓝牙 2.0、BLE(低功耗蓝牙)和传统蓝牙协议栈的开发。它提供了对蓝牙硬件适配器的底层控制,适用于设备发现、配对、数…...
通过一个led点灯的demo来熟悉openharmony驱动编写的过程(附带hdf详细调用过程)
概述 本应用程序(led_rgb)是在上实现直接通过消息机制与内核驱动进行交互,设置RGB三色灯的亮灯行为。我从网上随便找了个demo测试了一下,坑了三天…,整个状态如下图,同时也迫使我深度梳理了一下整个流程框架。直到绝望的时候&…...
pycharm2024.1.1版本_jihuo
目录 前置: 步骤: step one 下载软件 step two 卸载旧版本 1 卸载软件 2 清除残余 step three 下载补丁 step four 安装2024.1.1版本软件 step five 安装补丁 1 找位置放补丁 2 自动设置环境变量 step six 输入jihuo码 前置: 之…...
目标检测20年(四)——最终章
欢迎各位读者尽情阅读前三篇文献解读。这一篇将会介绍文献的第五部分:目标检测近些年的新技术发展以及第六部分:总结与未来展望。这也是本篇论文解读的最后一篇文章。 目录 五、目标检测最新进展 5.1 不采用滑动窗口的检测 5.2 旋转和尺度变化的鲁棒性…...
PyTorch处理数据--Dataset和DataLoader
在 PyTorch 中,Dataset 和 DataLoader 是处理数据的核心工具。它们的作用是将数据高效地加载到模型中,支持批量处理、多线程加速和数据增强等功能。 一、Dataset:数据集的抽象 Dataset 是一个抽象类,用于表示数据集的接口。你…...
【Linux】POSIX信号量与基于环形队列的生产消费者模型
目录 一、POSIX信号量: 接口: 二、基于环形队列的生产消费者模型 环形队列: 单生产单消费实现代码: RingQueue.hpp: main.cc: 多生产多消费实现代码: RingQueue.hpp: main.…...
Spring Boot 连接 MySQL 配置参数详解
Spring Boot 连接 MySQL 配置参数详解 前言参数及含义常用参数及讲解和示例useUnicode 参数说明: 完整配置示例注意事项 前言 在 Spring Boot 中使用 Druid 连接池配置 MySQL 数据库连接时,URL 中 ? 后面的参数用于指定连接的各种属性。以下是常见参数…...
[linux] linux基本指令 + shell + 文件权限
目录 1. Linux的认识 1.1. Linux的应用场景 1.2. Linux的版本问题 1.3. 操作系统的认识 1.4. 常用快捷键 2. 常用指令介绍 2.1. ADD 2.1.1. touch [file] 2.1.1.1. 文件的属性信息 2.1.2. mkdir [directory] 2.1.3. cp [file/directory] 2.1.4. echo [file] 2.1.4.…...
查看进程文件描述符的限制
查看进程文件描述符限制 rootgb:/home/gb/Monitor-Device-Mgr/Monitor-Device-Mgr/bin# ps -ef |grep Monitor-Device-Mgr root 3976 2380 59 11:10 pts/2 00:00:06 ./Monitor-Device-Mgr root 4010 2395 0 11:10 pts/3 00:00:00 grep --colorauto Monito…...
Python实现小红书app版爬虫
简介:由于数据需求的日益增大,小红书网页版已经不能满足我们日常工作的需求,为此,小编特地开发了小红书手机版算法,方便大家获取更多的数据,提升工作效率。 手机版接口主要包括:搜素࿰…...
【docker】docker-compose安装RabbitMQ
docker-compose安装RabbitMQ 1、配置docker-compose.yml文件(docker容器里面的目录请勿修改)2、启动mq3、访问mq4、查看服务器映射目录5、踩坑5.1、权限不足 1、配置docker-compose.yml文件(docker容器里面的目录请勿修改) versi…...
playwright-go实战:自动化登录测试
1.新建项目 打开Goland新建项目playwright-go-demo 项目初始化完成后打开终端输入命令: #安装项目依赖 go get -u github.com/playwright-community/playwright-go #安装浏览器 go run github.com/playwright-community/playwright-go/cmd/playwrightlatest insta…...
LeetCode hot 100 每日一题(13)——73. 矩阵置零
这是一道难度为中等的题目,让我们来看看题目描述: 给定一个 _m_ x _n_ 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 提示: m matrix.lengthn matrix[0].length1 < m, n …...
CEF 给交互函数, 添加控制台是否显示交互参数log开关
CEF 控制台添加一函数,枚举 注册的供前端使用的CPP交互函数有哪些 CEF 多进程模式时,注入函数,获得交互信息-CSDN博客 这两篇文章,介绍了注入函数,在控制台中显示 各自提供的交互函数信息。 有些场景下,我们还需要更详细的信息,比如想知道 彼此传递的参数, 如果每次调…...
云端存储新纪元:SAN架构驱动的智能网盘解决方案
一、企业存储的"不可能三角"破局 1.1 传统存储架构的困局 性能瓶颈:NAS架构在1000并发访问时延迟飙升300%容量限制:传统RAID扩容需停机维护,PB级存储扩展耗时超48小时成本矛盾:全闪存阵列每TB成本高达$3000࿰…...
PVE 安装黑苹果 MacOS
背景 我需要一台黑苹果,登录我不常用苹果账号。 方法 The Definitive Guide to Running MacOS in ProxmoxRunning a MacOS 15 Sequoia VM in ProxMox VE及视频 按照第二个的视频一步一步配置,第一个链接提供了不同版本OS...
Unity URP自定义Shader支持RenderLayer
前言: 当我们想用一个灯光只对特定的物体造成影响,而不对其余物体造成影响时,我们就需要设置相对应的LightLayer,但是这在URP12.0是存在的,在之后就不存在LightLayer这一功能,URP将其隐藏而改成了RenderLa…...
Axure项目实战:智慧城市APP(完整交互汇总版)
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:智慧城市APP 主要内容:主功能(社保查询、医疗信息、公交查询等)、活动、消息、我的页面汇总 应用场景ÿ…...
LVS-DR模式配置脚本
LVS-DR模式配置脚本 实验环境,需要4台虚拟机 IP说明172.25.254.101客户端172.25.254.102负载均衡器DS172.25.254.103真实服务器RS172.25.254.104真实服务器RSVIP:172.25.254.255/32 系统必须有ipvsadm和ifconfig命令 dnf install ipvsadm dnf install n…...
树状数组 3 :区间修改,区间查询
【题目描述】 这是一道模板题。 给定数列 a[1],a[2],…,a[n],你需要依次进行q个操作,操作有两类: 1lrx:给定 l,r,x对于所有 i∈[l,r],将a[i]加上x(换言之,将 a[l],a[l1],…a[r] 分别加上 x&a…...
架构思维:预约抢茅子架构设计
文章目录 案例:预约抢茅子复杂度分析商品预约阶段等待抢购阶段商品抢购阶段订单支付阶段 技术方案商品预约阶段一、基于 Redis 单节点的分布式锁方案1. 核心流程2. 关键设计点 二、Redis 单节点方案的局限性1. 单点故障风险2. 主从切换问题 三、多节点 Redis 实现高…...
使用 gone.WrapFunctionProvider 快速接入第三方服务
项目地址:https://github.com/gone-io/gone 本文中源代码: esexamples/es 文章目录 1. gone.WrapFunctionProvider 简介2. 配置注入实现3. 实战示例:Elasticsearch 集成4. 使用方式5. 最佳实践6. 总结 在如何给Gone框架编写Goner组件…...
基于SpringBoot+Vue的在教务管理(课程管理)系统+LW示例
1.项目介绍 系统角色:管理员、学生、教师功能模块:管理员(学院管理、专业管理、班级管理、学生管理、教师管理、课程管理、选课修改)、教师(授课查询、教师课表、成绩录入)、学生(选修课程、学…...
gitee 常用指令
1.拉取代码 // http git clone http.........// https git clone https......... 2. 设置自己账户和密码 ----- 绑定git git config --global user.name "你的用户名"git config --global user.email "你的邮箱" 3. 上传本地代码至git git initgit r…...
etcd性能测试
etcd性能测试 本文参考官方文档完成etcd性能测试,提供etcd官方推荐的性能测试方案。 1. 理解性能:延迟与吞吐量 etcd 提供稳定、持续的高性能。有两个因素决定性能:延迟和吞吐量。延迟是完成一项操作所花费的时间。吞吐量是在某个时间段内…...
JIRA/Xray测试管理工具的最佳实践:从基础到高阶的全场景指南
引言:测试管理的数字化转型与工具价值 在数字化时代,软件质量已成为企业竞争力的核心指标。然而,传统的测试管理方式——如Excel记录用例、邮件沟通缺陷、手动执行回归测试——已无法满足快速迭代的敏捷开发需求。据统计,全球因测…...
