Codeforces Round 1004 (Div. 2)(A-E)
题目链接:Dashboard - Codeforces Round 1004 (Div. 2) - Codeforces
A. Adjacent Digit Sums
思路
只有两种情况:n+1之后没有进位,y-x=1。n+1之后进位(y-x-1)%9==0。
代码
void solve(){int x,y;cin>>x>>y;if(y-x==1){cout<<"YES\n";return;}int t=x-y+1;if(t>=0&&t%9==0){cout<<"YES\n";return;}cout<<"NO\n";
}
signed main() {vcoistntint _=1;cin>>_;while(_--) solve();return 0;
}
B. Two Large Bags
思路
设了个1e5没算时间复杂度T了一发。。。。
根据题意的操作,n个x我们可以留下2个分别到两个袋子,n-2个x变成(x+1),一直往下推直到有一个数只有一个那么就不可能得到两个完全相同的袋子,否则则会得到两个相同的袋子
代码
void solve(){int n;cin>>n;vi a(n+10);vi mp(10001,0);for(int i=1;i<=n;i++){cin>>a[i];mp[a[i]]++;}for(int i=1;i<=10000;i++){if(mp[i]>1){mp[i+1]+=(mp[i]-2);}if(mp[i]==1){cout<<"NO\n";return;}}cout<<"YES\n";
}
signed main() {vcoistntint _=1;cin>>_;while(_--) solve();return 0;
}
C. Devyatkino
思路
原来直接暴力就可以了,,,,,
这题是有一定的规律的,首先出现7答案为0,其他我们发现答案最大是7,只要一直加999...,让最高位从0变成7就行对于所有数(题目给定范围n>=10)都成立,剩下的情况我们对每位数变成7要从两个方面考虑,那就是个位的数和其他,
对于个位数变成7,我们只需要一直加9就可将其变为7
对于其他位上的数为x,如果6>=x>=0,那么我们就能加99...使其进位到7,这还与这位数之后的数的大小有关
如果是x=8,例如8002,我们要先将2给消掉加两个9999,变成28000,再加9999变成37999即可
对于x=9我们发现无论怎么操作其结果是>7的
代码
暴力代码(我求求了建议下次把这个给卡掉哈)
bool check(int x){while(x){if(x%10==7) return true;x/=10;}return false;
}
void solve(){int n;cin>>n;int cnt=10;for(int i=1;i<=10;i++){int d=pow(10,i);d--;int x=n;int t=0;while(!check(x)){t++;x+=d;}cnt=min(cnt,t);}cout<<cnt<<"\n";
}
signed main() {vcoistntint _=1;cin>>_;while(_--) solve();return 0;
}
代码2
#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 ull unsigned long long
#define bit __builtin_popcount
#define lowbit(x) ((x)&-(x))
#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(){string s;cin>>s;int n=s.size();int ans=7;auto bol=[&](int st)->int{int x=0;for(int i=st+1;i<n;i++){x*=10;x+=(s[i]-'0');}return x;};for(int i=0;i<n;i++){if(s[i]=='7'){ans=0;}}if(s[n-1]=='8') ans=min(ans,1ll);if(s[n-1]=='9') ans=min(ans,2ll);if(s[n-1]=='0') ans=min(ans,3ll);if(s[n-1]=='1') ans=min(ans,4ll);if(s[n-1]=='2') ans=min(ans,5ll);if(s[n-1]=='3') ans=min(ans,6ll);if(s[n-1]=='4') ans=min(ans,7ll);if(s[n-1]=='5') ans=min(ans,8ll);for(int i=0;i<n-1;i++){if(s[i]<='6'&&s[i]>='0'){int t=bol(i);if(t>=('7'-s[i])){ans=min(ans,('7'-s[i])+0ll);}else{ans=min(ans,('7'-s[i])+1ll);}}if(s[i]=='8'){ans=min(ans,bol(i)+1ll);}}cout<<ans<<"\n";
}
signed main() {vcoistntint _=1;cin>>_;while(_--) solve();return 0;
}
D. Object Identification
思路
交互题练的还是少了,赛时没做出来
可以发现如果查询结果出现0那么就一定是A,那么怎么询问能够得到这一结果,因为是有向图,我们只需要找到一个不在a中出现的数x,(x,*)查询如果结果是0则A,否则B。如果a是全排列,即所有数都在a中出现,如果是A的话最多有n条边,那么查询出的结果一定是 <n-1 的,那么我们选择查询(1,n)如果结果 >=n-1 则是B,否则是A
总而言之:
如果a不是全排列,查询(x,*)(其中x是不在a中出现的数,*是除x之外[1,n]的所有数),如果结果是0则是A,否则B
如果a是全排列,查询(1,n)如果结果>=n-1则是B,否则是A
代码
#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 ull unsigned long long
#define bit __builtin_popcount
#define lowbit(x) ((x)&-(x))
#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;int query(int a,int b){cout<<"? "<<a<<" "<<b<<endl;int res;cin>>res;return res;
}void solve(){int n;cin>>n;vi a(n+1);vb b(n+1);for(int i=1;i<=n;i++){cin>>a[i];b[a[i]]=true;}for(int i=1;i<=n;i++){if(b[i]==false){int t=query(i,i==1?2:1);if(t==0){cout<<"! A"<<endl;}else{cout<<"! B"<<endl;}return;}}int x,y;for(int i=1;i<=n;i++){if(a[i]==1) x=i;if(a[i]==n) y=i;}int t1=query(x,y);int t2=query(y,x);if(t1!=t2){cout<<"! A"<<endl;return;}if(t1>=n-1){cout<<"! B"<<endl;}else{cout<<"! A"<<endl;}
}
signed main() {vcoistntint _=1;cin>>_;while(_--) solve();return 0;
}
E. White Magic
思路
我们可以发现的结论:没有0的序列一定成立,有两个0的序列一定不成立
那么答案显然是n-cnt0+1或n-cnt0,(cnt0是0的个数)
关于是否能够将一个0添加进去,我们只需要看最左边的0加进去是否成立即可,因为右边的0成立的话,左边的0一定是成立的
代码
#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 ull unsigned long long
#define bit __builtin_popcount
#define lowbit(x) ((x)&-(x))
#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;cin>>n;vi a(n+10);int cnt0=0;map<int,int> mp;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]==0) cnt0++;mp[a[i]]++;}if(mp[0]){mp[0]=1;}else{cout<<n<<"\n";return;}int mex=0;while(mp[mex]) mex++;int mi=inf;for(int i=1;i<=n;i++){if(a[i]==0&&!mp[a[i]]) continue;mp[a[i]]--;if(!mp[a[i]]) mex=min(mex,a[i]);mi=min(mi,a[i]);if(mi<mex){cout<<n-cnt0<<"\n";return;}}cout<<n-cnt0+1<<"\n";
}
signed main() {vcoistntint _=1;cin>>_;while(_--) solve();return 0;
}
相关文章:
Codeforces Round 1004 (Div. 2)(A-E)
题目链接:Dashboard - Codeforces Round 1004 (Div. 2) - Codeforces A. Adjacent Digit Sums 思路 只有两种情况:n1之后没有进位,y-x1。n1之后进位(y-x-1)%90。 代码 void solve(){int x,y;cin>>x>>y;if(y-x1){cout<<…...
pnpm的使用
pnpm的使用 1.安装和使用2.统一包管理工具下载依赖 1.安装和使用 pnpm:performant npm ,意味“高性能的npm”。 pnpm由npm/yarn衍生而来,解决了npm/yarn内部潜在的bug,极大的优化了性能,扩展了使用场景。被誉为“最先进的包管理工具”。 pnpm安装指令: npm i -g p…...
vscode调试redis
系统:ubuntu redis:redis-6.0.3 1.在vs中安装c/c编译插件 2.用vscode打开redis-6.0.3 3.在菜单中找到run->Add Configuration… 4.会在目录中生成一个./vscode目录,里面包含launch.json,修改launch.json中的program:${workspaceFolder}…...
Windows逆向工程入门之汇编指令格式与操作数类型
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 一、汇编指令格式基础 二、操作数类型详解 1. 立即数(Immediate) 2. 寄存器操作数(Register) 3. 内存操作数(Memory&#…...
亚远景-ASPICE 4.0与敏捷开发:如何实现高效协同
ASPICE 4.0与敏捷开发的结合是汽车软件开发领域的重要趋势。通过合理融合,可以实现高效协同,提升软件开发的质量和效率。以下是实现高效协同的关键要点: 1. 理解ASPICE 4.0与敏捷开发的互补性 ASPICE 4.0强调软件开发过程的规范性、可追溯性…...
pptx文档提取信息
目录 一、前言二、python-pptx提取核心代码三、LibreOffice 转换pdf再提取的核心代码一、前言 pptx文档提取解析常用的库。 如果只需要解析 .pptx 的文本、表格、图片,推荐使用 python-pptx(开源,轻量级)。 如果需要高性能、支持 .ppt、动画、格式转换,推荐 Aspose.Slid…...
蓝桥杯篇---超声波距离测量频率测量
文章目录 简介第一部分:超声波的简介工作原理1.发射超声波2.接收反射波3.计算时间差4.计算距离 硬件连接1.Trig2.Echo 示例代码代码说明注意事项1.声速2.延时精度3.硬件连接 第二部分:频率测量简介频率测量原理1.信号输入2.计数3.计算频率 硬件连接示例代…...
ML.Net二元分类
ML.Net二元分类 文章目录 ML.Net二元分类前言项目的创建机器学习模型的创建添加模型选择方案训练环境的选择训练数据的添加训练数据的选择训练数据的格式要预测列的选择模型评估模型的使用总结前言 ML.NET是由Microsoft为.NET开发者平台创建的免费、开源、跨平台的机器学习…...
vite让每个scss文件自动导入某段内容
写了如下一个scss函数,希望自动导入到每个scss文件里面 vite.config.ts里面如下配置 import fs from fsconst filePath resolve(__dirname, ./src/assets/css/index.scss);const Minxcss fs.readFileSync(filePath, utf8); css: {preprocessorOptions: {scss: {…...
分享一个使用的音频裁剪chrome扩展-Ringtone Maker
一、插件简介 铃声制作器是一个简单易用的 Chrome 扩展,专门用于制作手机铃声。它支持裁剪音频文件的特定片段,并将其下载为 WAV 格式,方便我们在手机上使用。无论是想从一段长音频中截取精彩部分作为铃声,还是对现有的音频进行个…...
基于Python的Optimal Interpolation (OI) 方法实现
前言 Optimal Interpolation (OI) 方法概述与实现 Optimal Interpolation (OI) 是一种广泛应用于气象学、海洋学等领域的空间数据插值方法。该方法通过结合观测数据与模型预测数据,最小化误差方差,从而实现对空间数据的最优插值。以下是OI方法的一般步骤…...
初学 mybatis
前言 回顾之前 不使用 mybatis 框架,我们是怎么通过Java 操作数据库的 "jdbc" 前提:使用maven 构建的项目 1 添加 关于jdbc 的依赖,以及辅助操作数据库的 commons-dubli jar包 截取 前后端项目 2 添加配置文件里面内容有&…...
机器学习:k均值
所有代码和文档均在golitter/Decoding-ML-Top10: 使用 Python 优雅地实现机器学习十大经典算法。 (github.com),欢迎查看。 在“无监督学习”中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律&…...
保姆级GitHub大文件(100mb-2gb)上传教程
GLF(Git Large File Storage)安装使用 使用GitHub desktop上传大于100mb的文件时报错 The following files are over 100MB. lf you commit these files, you will no longer beable to push this repository to GitHub.com.term.rarWe recommend you a…...
1.【BUUCTF】[SUCTF 2019]EasyWeb
进入题目页面如下 给出源码开始代码审计 <?php // 定义一个名为 get_the_flag 的函数,该函数主要处理文件上传逻辑 function get_the_flag(){// 构造用户上传文件的目录,目录名是 "upload/tmp_" 加上客户端 IP 地址的 MD5 哈希值$userdir…...
CloudberryDB(七)二级索引
在CloudberryDB中,二级索引的概念与PostgreSQL中的类似。但是,由于分布式特性,创建和使用二级索引需要考虑一些额外的因素。以下是关于二级索引的一些要点: 1. **创建索引**:在Greenplum中,可以使用CREATE…...
P1878 舞蹈课(详解)c++
题目链接:P1878 舞蹈课 - 洛谷 | 计算机科学教育新生态 1.题目解析 1:我们可以发现任意两个相邻的都是异性,所以他们的舞蹈技术差值我们都要考虑,4和2的差值是2,2和4的差值是2,4和3的差值是1,根…...
何须付费免费它不香吗
聊一聊 又是一年开学季。 开学了发一些应时期的小软件。 今天给大家分享一款学校班级课程表工具。 这款工具可以投放在学校电子大屏上。 支持学校的白板软件。 软件介绍 学校班级课程表 工具界面清爽,信息能一目了然。 虽然看感觉功能简单,但每个…...
ELK组成及实现原理
ELK是由三个主要组件组成的日志处理和搜索平台,分别是: Elasticsearch:Elasticsearch 是一个基于Lucene构建的开源搜索引擎,提供强大的搜索、分析功能。它负责存储和索引所有数据,并提供实时搜索能力。数据可以通过HTT…...
【Vue3源码解析】响应式原理
源码环境搭建 【Vue3源码解析】应用实例创建及页面渲染-CSDN博客 写文章时的Vue 版本: "version": "3.5.13",针对单个包进行开发环境打包、测试。 pnpm run dev reactivityreactive 创建响应式对象 packages/reactivity/src/reactive.ts …...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
