当前位置: 首页 > article >正文

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)

题目链接&#xff1a;Dashboard - Codeforces Round 1004 (Div. 2) - Codeforces A. Adjacent Digit Sums 思路 只有两种情况&#xff1a;n1之后没有进位&#xff0c;y-x1。n1之后进位(y-x-1)%90。 代码 void solve(){int x,y;cin>>x>>y;if(y-x1){cout<<…...

掌握正则表达式_模式匹配的艺术

当然,以下是《掌握正则表达式:模式匹配的艺术》文章内容,使用 Java 正则表达式,并包含丰富的代码示例: 1. 引言 1.1 正则表达式的定义与历史 正则表达式(Regular Expression,简称 regex 或 regexp)是一种用于描述文本模式的强大工具。它最初由数学家 Stephen Kleene…...

Python使用OpenCV图片去水印多种方案实现

1. 前言 本文为作者学习记录&#xff0c;使用Python结合OpenCV&#xff0c;总结了几种常见的水印去除方式&#xff0c;简单图片去水印效果良好&#xff0c;但是复杂图片有点一言难尽&#xff0c;本文部分代码仅供参考&#xff0c;并不能针对所有水印通用&#xff0c;需要根据具…...

论文阅读2——S波段宽波束圆极化天线设计

论文结构 研究背景&#xff0c;基于当前天线通信的应用基础进行分析&#xff0c;为了适应更多的应用环境和更复杂的通信信号提出宽波束圆极化的天线设计要求&#xff0c;圆极化天线可以接收到任意极化的电磁波且其辐射波也可以由其他任意极化天线接收到圆极化天线的特性&#…...

【java】基本数据类型和引用数据类型

在 Java 中&#xff0c;数据类型分为 基本数据类型 和 引用数据类型。它们的本质区别在于存储方式和操作方式。下面我会详细解释这两种数据类型&#xff0c;并用通俗易懂的语言帮助你理解。 1. 基本数据类型&#xff08;Primitive Data Types&#xff09; 基本数据类型是 Java…...

基于角色访问控制的UML 表示02

一个用户可以成为很多角色的成员&#xff0c;一个角色可以有许多用户。类似地&#xff0c;一个角色可以有多个权限&#xff0c;同一个权限可以被指派给多个角色。每个会话把一个用户和可能的许多角色联系起来。一个用户在激发他或她所属角色的某些子集时&#xff0c;建立了一个…...

CEF132 编译指南 Linux 篇 - 获取 CEF 源代码:源码同步详解(五)

1. 引言 在完成所有必要工具的安装和配置之后&#xff0c;我们来到了整个 CEF 编译流程中至关重要的环节&#xff1a;获取 CEF 源代码。CEF 源码的获取过程需要我们特别关注同步策略和版本管理&#xff0c;以确保获取的代码版本正确且完整。本篇将详细指导你在 Linux 系统上获…...

Golang关于结构体组合赋值的问题

现在有一个结构体&#xff0c;其中一个属性组合了另外一个结构体&#xff0c;如下所示&#xff1a; type User struct {Id int64Name stringAge int64UserInfo }type UserInfo struct {Phone stringAddress string }如果要给 User 结构体的 Phone 和 Address 赋值的话&am…...

django上传文件

1、settings.py配置 # 静态文件配置 STATIC_URL /static/ STATICFILES_DIRS [BASE_DIR /static, ]上传文件 # 定义一个视图函数&#xff0c;该函数接收一个 request 参数 from django.shortcuts import render # 必备引入 import json from django.views.decorators.http i…...

Springboot核心:统一异常处理

概述 统一异常处理机制在 Spring Boot 应用中是非常重要的核心点&#xff0c;因为它带来了多个方面的优势&#xff0c;能够显著提升应用的质量和开发效率。 为什么要优雅的处理异常 在后端发生异常或者是请求出错时&#xff0c;前端通常直接显示异常信息&#xff0c;而且对于…...

【银河麒麟高级服务器操作系统】服务器卡死后恢复系统日志丢失-分析及处理全过程

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://document.kylinos.cn 服务器环境以及配置 【机型】 处理器&#xff…...

【deepseek api 第三方平台使用参考】

1.硅基流动 1.1硅基流动网页版使用 打开硅基流动的官网 https://siliconflow.cn/zh-cn/ 点右上角登陆 在模型广场这里找到这个deepseek的r1 注意&#xff0c;一定选择下面标记【671B】的&#xff0c;这个是满血版 这个满血版收费标准是 4块钱/百万token输入 16块钱/百万token…...

通过 VBA 在 Excel 中自动提取拼音首字母

在excel里面把表格里的中文提取拼音大写缩写怎么弄 在Excel中&#xff0c;如果你想提取表格中的中文字符并转换为拼音大写缩写&#xff08;即每个汉字的拼音首字母的大写形式&#xff09;&#xff0c;可以通过以下步骤来实现。这项工作可以分为两个主要部分&#xff1a; 提取拼…...

动态规划dp_4

一.背包 如果求组合数就是外层for循环遍历物品&#xff0c;内层for遍历背包。 如果求排列数就是外层for遍历背包&#xff0c;内层for循环遍历物品。 二.题 1. 思路&#xff1a;dp五部曲&#xff0c;思路在注释 /* dp[i]表示&#xff1a;到达第 i 个台阶有dp[i]种方法 状态转…...

对贵司需求的PLC触摸的远程调试的解决方案

远程监控技术解决方案 一、需求痛点分析 全球设备运维响应滞后&#xff08;平均故障处理周期>72小时&#xff09;客户定制化需求频繁&#xff08;每月PLC程序修改需求超50次&#xff09;人力成本高企&#xff08;单次跨国差旅成本约$5000&#xff09;多品牌PLC兼容需求&am…...

Python用PyMC3马尔可夫链蒙特卡罗MCMC对疾病症状数据贝叶斯推断

全文链接&#xff1a;https://tecdat.cn/?p39937 本文聚焦于马尔可夫链蒙特卡罗&#xff08;MCMC&#xff09;方法在贝叶斯推断中的Python实现。通过介绍MCMC的基础原理、在贝叶斯推断中的应用步骤&#xff0c;展示了其在解决复杂分布采样问题上的强大能力。同时&#xff0c;借…...

网络工程师 (39)常见广域网技术

一、HDLC 前言 HDLC&#xff08;High-level Data Link Control&#xff0c;高级数据链路控制&#xff09;是一种面向比特的链路层协议。 &#xff08;一&#xff09;定义与历史背景 HDLC是由国际电信联盟&#xff08;ITU&#xff09;标准化的&#xff0c;它基于IBM公司早期的同…...

每日Attention学习23——KAN-Block

模块出处 [SPL 25] [link] [code] KAN See In the Dark 模块名称 Kolmogorov-Arnold Network Block (KAN-Block) 模块作用 用于vision的KAN结构 模块结构 模块代码 import torch import torch.nn as nn import torch.nn.functional as F import mathclass Swish(nn.Module)…...

基于Python的Optimal Interpolation (OI) 方法实现

前言 Optimal Interpolation (OI) 方法概述与实现 Optimal Interpolation (OI) 是一种广泛应用于气象学、海洋学等领域的空间数据插值方法。该方法通过结合观测数据与模型预测数据&#xff0c;最小化误差方差&#xff0c;从而实现对空间数据的最优插值。以下是OI方法的一般步骤…...

学习数据结构(10)栈和队列下+二叉树(堆)上

1.关于栈和队列的算法题 &#xff08;1&#xff09;用队列实现栈 解法一&#xff1a;&#xff08;参考代码&#xff09; 题目要求实现六个函数&#xff0c;分别是栈初始化&#xff0c;入栈&#xff0c;移除并返回栈顶元素&#xff0c;返回栈顶元素&#xff0c;判空&#xff0…...

.NET版Word处理控件Aspose.Words教程:使用 C# 删除 Word 中的空白页

Word 文档中的空白页会使其看起来不专业并扰乱流程。用户会遇到需要删除 Word 中的空白页的情况&#xff0c;但手动删除它们需要时间和精力。在这篇博文中&#xff0c;我们将探讨如何使用 C# 删除 Word 中的空白页。 本文涵盖以下主题&#xff1a; C# 库用于删除 Word 中的空…...

《代码随想录》刷题笔记——回溯篇【java实现】

文章目录 组合组合总和 III电话号码的字母组合组合总和组合总和II思路代码实现 分割回文串※思路字符串分割回文串判断效率优化※ 复原 IP 地址优化版本 子集子集 II使用usedArr辅助去重不使用usedArr辅助去重 递增子序列※全排列全排列 II重新安排行程题意代码 N 皇后解数独直…...

【JavaEE进阶】验证码案例

目 &#x1f332;实现说明 &#x1f384;Hutool介绍 &#x1f333;准备工作 &#x1f334;约定前后端交互接口 &#x1f6a9;接口定义 &#x1f6a9;实现服务器后端代码 &#x1f6a9;前端代码 &#x1f6a9;整体测试 &#x1f332;实现说明 随着安全性的要求越来越⾼…...

TCP/UDP 简介,三次握手与四次挥手

一、TCP 三次握手 目的&#xff1a;为了解决在不可靠的信道上建立可靠的网络连接 三次握手是连接请求的过程&#xff1a; A 发送连接请求的数据给 B&#xff08;发送 SYN 包&#xff09; B 同意连接&#xff0c;返回数据给 A&#xff08;返回 SYNACK 包&#xff09; A 收到后回…...

C++之线程池(Thread Pool)

1.介绍 线程池是一种并发编程的设计模式&#xff0c;用于管理和复用多个线程。以避免频繁创建和销毁线程的开销。线程池的核心思想是预先创建一组线程&#xff0c;并将任务分配给这些线程执行&#xff0c;从而提高程序的性能和资源利用率。 2.线程池的核心组件 一个经典的线程…...

Django中实现简单易用的分页工具

如何在Django中实现简单易用的分页工具&#xff1f;&#x1f4da; 嗨&#xff0c;小伙伴们&#xff01;今天我们来看看如何在 Django 中实现一个超简单的分页工具。无论你是在处理博客文章、产品列表&#xff0c;还是用户评论&#xff0c;当数据量一大时&#xff0c;分页显得尤…...

【kafka系列】Exactly Once语义

目录 1. Exactly-Once语义的定义 2. Kafka实现Exactly-Once的机制 3. 端到端Exactly-Once示例 场景描述 3.1 生产者配置与代码 3.2 消费者配置与代码 4. 异常场景与Exactly-Once保障 场景1&#xff1a;生产者发送消息后宕机 场景2&#xff1a;消费者处理消息后宕机 场…...

export default与export区别

1.定义&#xff1a; export default‌&#xff1a;用于导出模块中的默认成员。一个模块中只能有一个export default&#xff0c;通常用于导出模块的主要功能或对象。导入时可以使用任意名称&#xff0c;因为它没有具体的名称‌ ‌export‌&#xff1a;用于导出模块中的多个成…...

Qt Creator 5.0.2 (Community)用久了突然变得很卡

目录 1.现象 2.解决方案 1.现象 很久没有用Qt Creator开发项目了&#xff0c;刚刚结束的项目又是用VS2019开发的&#xff1b;这两天刚好有时间去学习一下Qt&#xff0c;刚好要用Qt Creator&#xff0c;结果一打开就没反应&#xff0c;主界面显示出来要好几分钟&#xff0c;最…...

Windows搭建CUDA大模型Docker环境

Windows搭建CUDA大模型Docker环境 一、安装Docker二、拉取镜像三、启动容器四、安装依赖环境五、安装Miniconda3六、设置pip源地址 一、安装Docker windows中docker安装教程 二、拉取镜像 系统&#xff1a;Ubuntu20.04CUDA版本&#xff1a;11.8.0 docker pull nvcr.io/nvid…...