at coder ABC 392

A - Shuffled Equation

题意:给一个整数序列(A1,A2,A3),这三个数进行排序后形成(B1,B2,B3)问是否存在排序使B1*B2=B3?

思路:因为一共就三个数,只有三种排列方式,我直接全部都列出来判断的,不用管B

判断是否为真即可arr[0] * arr[1] == arr[2] || arr[0] * arr[2] == arr[1] || arr[2] * arr[1] == arr[0])

#include <stdio.h>
int main()
{int arr[3] = { 0 };scanf("%d%d%d", &arr[0], &arr[1], &arr[2]);if (arr[0] * arr[1] == arr[2] || arr[0] * arr[2] == arr[1] || arr[2] * arr[1] == arr[0])printf("Yes\n");elseprintf("No\n");return 0;
}

B - Who is Missing?

题意:给出M个数,这M个数都是介于1-N之间的,请你输出该序列中不在1-N之间的个数及每个数,其中1<=M<=N<=1000;

思路:开两个数组int[1005],一个放这M个数,另一个全部初始化为0,因为每个数都不重复出现,所以遍历放M个数的数组,所表示的数作为第二个数组的索引,使之加1,这样一来,所有在1-N之间出现过的数都在第二个数组的下标索引值为1,我们只需要遍历第二个数组1-N,找到等于0的值,计数并且输出即可

#include <stdio.h>
int main()
{int m, n;int arr[1005] = { 0 };int brr[1005] = { 0 };int cnt = 0;scanf("%d%d", &n, &m);for (int i = 0; i < m; i++){scanf("%d", &arr[i]);}for (int i = 0; i < m; i++)//整数是介于1-n之间的{brr[arr[i]]++;}for (int i = 1; i <= n; i++){if (brr[i] == 0)cnt++;}printf("%d\n", cnt);for (int i = 1; i <= n; i++){if (brr[i] == 0)printf("%d ", i);}return 0;
}

C - Bib

题意:一组人编号为1-N,第 i 个人穿着印有数字 Qi 的围兜,正盯着第 Pi 个人。然后依次输出围兜上的数从1开始到N的人所盯着的人的围兜上的数

  • 2 ≤ N ≤ 3×10⁵
  • 1 ≤ Pi ≤ N
  • Pi 的值各不相同。
  • 1 ≤ Qi ≤ N
  • Qi 的值各不相同。
  • 所有输入值都是整数。

思路:本题有点绕,读清题目是关键,我一开始用了两层的for循环,就是先找到围兜上的数字为1的数,然后依次索引,时间复杂度太高了,然后运行超时了......

#include <stdio.h>int main()
{int n;int p[300005] = { 0 };int q[300005] = { 0 };scanf("%d", &n);for (int i = 1; i <= n; i++){scanf("%d", &p[i]);//第i个人盯着第p[i]的人}for (int i = 1; i <= n; i++){scanf("%d", &q[i]);//第i个人带着q[i]的围兜}//找出戴着号码为 i 的围兜的人所盯着的人围兜上写的号码。for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++){if (i == q[j]){printf("%d ", q[p[j]]);break;}}}return 0;
}

接着,我就新增加了一个数组,在依次输入这N个人的围兜的数字时,建立起下标和围兜上表示的数的关系,意思就是pos数组记录的就是围兜1-n的位置,例如pos[1]=3,说明围兜上写着1号的人是在第三号位置,(for me,这一步就是最难理解的一行代码)然后再从1-n开始遍历时,pos[i]就可以直接表示围兜上从1开始的人了。

#include <stdio.h>int main()
{int n;int p[300005] = { 0 };int q[300005] = { 0 };int pos[300005] = { 0 }; // 新增映射数组scanf("%d", &n);for (int i = 1; i <= n; i++) {scanf("%d", &p[i]);}for (int i = 1; i <= n; i++) {scanf("%d", &q[i]);pos[q[i]] = i; // 建立值到索引的映射}for (int i = 1; i <= n; i++) {int target_pos = pos[i]; // 直接获取位置printf("%d ", q[p[target_pos]]);}return 0;
}

D - Doubles

题意:一共有n个骰子,第i个骰子有ki个面,每个面出现的概率相同,最有情况选两个骰子,求这两个骰子显示相同数字的最大概率

思路:这个题做的时候没时间了,就没看完。交卷后分析了别人的AC代码,注释如下:


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;int main(){ll n;cin >> n;//n个骰子vector<vector<ll>>v(n);//定义一个二维向量v,它包含n个一维向量,用于存储每个面的大小for(int i=0;i<n;i++){ll x;cin >>x;//x个面while(x--){ll ele;cin >> ele;v[i].push_back(ele);//每个面的大小}}vector<vector<ll>>count(n,vector<ll>(1e5+7,0));
//定义一个二维向量 count,它有 n 行,每行有 1e5 + 7 个元素,初始值都为 0。
//这个二维向量用于记录每个骰子中每个数字出现的次数。for(int i=0;i<n;i++){for(auto ele:v[i]) count[i][ele]++; //两层遍历,统计每个面上的数字}double ans=0.0;for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){//使用两层嵌套循环枚举所有可能的骰子对double tot=0;//记录这对骰子掷出相同数字的组合数for(auto ele:v[i]) tot+=count[j][ele];
//遍历第 i 个骰子的所有面的数字,将第 j 个骰子中该数字出现的次数累加到 tot 中ans=max(ans,(tot/(v[i].size()*v[j].size())));//ans始终存储最大概率}}cout << setprecision(15) << ans;//输出精度为15
}

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

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

相关文章

Photoshop自定义键盘快捷键

编辑 - 键盘快捷键 CtrlShiftAltK 把画笔工具改成Q , 橡皮擦改成W , 涂抹工具改成E , 增加和减小画笔大小A和S 偏好设置 - 透明度和色域 设置一样颜色 套索工具 可以自定义套选一片区域 Shiftf5 填充 CtrlU 可以改颜色/色相/饱和度 CtrlE 合并图层 CtrlShiftS 另存…

如何在Android Studio中开发一个简单的Android应用?

Android Studio是开发Android应用的官方集成开发环境&#xff08;IDE&#xff09;&#xff0c;它提供了许多强大的功能&#xff0c;使得开发者能够高效地创建Android应用。如果你是Android开发的初学者&#xff0c;本文将引导你如何在Android Studio中开发一个简单的Android应用…

【Qt 常用控件】输入类控件1(QLineEdit和QTextEdit 输入框)

目录 1.QLineEdit 单行输入框 例&#xff1a;输入个人信息&#xff0c;通过按钮提交 例&#xff1a;为输入框设置验证器&#xff0c;检查输入的电话 例&#xff1a;验证两次输入的密码是否一致 例&#xff1a;是否显示密码按钮,toggled信号。 2.QTextEdit多行输入框 、QPl…

Bash (Bourne-Again Shell)、Zsh (Z Shell)

文章目录 1. 历史背景2. 主要区别3. 功能对比自动补全插件和主题路径扩展提示符定制 4. 性能5. 使用场景6. 如何切换 Shell7. 总结 以下是 Bash 和 Zsh 之间的主要区别&#xff0c;列成表格方便对比&#xff1a; 特性BashZsh默认Shell大多数Linux发行版默认ShellmacOS默认She…

Jetbrains IDE http客户端使用教程

简介 JetBrains IDE&#xff08;如IntelliJ IDEA&#xff0c; WebStorm&#xff0c; PhpStorm和PyCharm&#xff09;自带一个内置的HTTP客户端&#xff0c;允许直接从IDE发送HTTP请求&#xff0c;而无需使用第三方工具&#xff0c;如Postman或cURL。 JetBrains IDE 中的 HTTP…

android手机安装deepseek-r1:1.5b

序 本文主要展示一下如何在android手机上安装deepseek-r1:1.5b 步骤 安装termux 到https://termux.dev/cn/index.html去下载 然后执行termux-setup-storage以获取手机存储权限 安装构建依赖 pkg install git cmake golang下载ollama git clone --depth 1 https://gitee.…

U3D支持webgpu阅读

https://docs.unity3d.com/6000.1/Documentation/Manual/WebGPU-features.html 这里看到已经该有的差不多都有了 WOW VFX更是好东西 https://unity.com/cn/features/visual-effect-graph 这玩意儿化简了纯手搓一个特效的流程 如果按原理说就是compute shader刷position&#…

PWM波形输出

一、想要达到的效果 二、实现代码 因为是在1khz的频率下&#xff0c;所以用重新配置定时器0&#xff0c;定时长度为100微妙 void Timer0Init(void) //100微秒12.000MHz {AUXR | 0x80; //定时器时钟1T模式TMOD & 0xF0; //设置定时器模式TL0 0x50; //设置定时初值TH0 …

Spring Boot整合MQTT

MQTT是基于代理的轻量级的消息发布订阅传输协议。 1、下载安装代理 进入mosquitto下载地址&#xff1a;Download | Eclipse Mosquitto&#xff0c;进行下载&#xff0c;以win版本为例 下载完成后&#xff0c;在本地文件夹找到下载的代理安装文件 使用管理员身份打开安装 安装…

前端 CSS 动态设置样式::class、:style 等技巧详解

一、:class 动态绑定类名 v-bind:class&#xff08;缩写为 :class&#xff09;可以动态地绑定一个或多个 CSS 类名。 1. 对象语法 通过对象语法&#xff0c;可以根据条件动态切换类名。 <template><div :class"{ greenText: isActive, red-text: hasError }&…

TCP三次握手全方面详解

文章目录 (1) 三次握手各状态CLOSE状态SYN_SENT状态SYN_RECV状态ESTABLISHED状态 (2) 为什么握手时的seqnum是随机值&#xff0c;以及acknum的功能(3) 三次握手中的半连接队列&#xff08;SYN队列&#xff09;和全连接队列&#xff08;ACCEPT队列&#xff09;半连接队列全连接队…

基于Java的远程视频会议系统(源码+系统+论文)

第一章 概述 1.1 本课题的研究背景 随着人们对视频和音频信息的需求愈来愈强烈&#xff0c;追求远距离的视音频的同步交互成为新的时尚。近些年来&#xff0c;依托计算机技术、通信技术和网络条件的发展&#xff0c;集音频、视频、图像、文字、数据为一体的多媒体信息&#xff…

Docker Desktop安装到其他盘

Docker Desktop 默认安装到c盘&#xff0c;占用空间太大了&#xff0c;想给安装到其他盘&#xff0c;网上找了半天的都不对 正确安装命令&#xff1a; start /w "" "Docker Desktop Installer.exe" install --installation-dirF:\docker命令执行成功&am…

手动配置IP

手动配置IP&#xff0c;需要考虑四个配置项&#xff1a; 四个配置项 IP地址、子网掩码、默认网关、DNS服务器 IP地址&#xff1a;格式表现为点分十进制&#xff0c;如192.168.254.1 子网掩码&#xff1a;用于区分网络位和主机位 【子网掩码的二进制表达式一定是连续的&#…

Qt:常用控件

目录 控件概述 控件体系的发展 按钮类控件 QPushButton QRadioButton QCheckBox QToolButton 显示类控件 QLabel QLCDNumber QProgressBar QCalendarWidget 输入类控件 QLineEdit QTextEdit QComboBox QSpinBox QDateEdit & QTimeEdit QDial QSlider …

【漫话机器学习系列】087.常见的神经网络最优化算法(Common Optimizers Of Neural Nets)

常见的神经网络优化算法 1. 引言 在深度学习中&#xff0c;优化算法&#xff08;Optimizers&#xff09;用于更新神经网络的权重&#xff0c;以最小化损失函数&#xff08;Loss Function&#xff09;。一个高效的优化算法可以加速训练过程&#xff0c;并提高模型的性能和稳定…

4G核心网的演变与创新:从传统到虚拟化的跨越

4G核心网 随着移动通信技术的不断发展&#xff0c;4G核心网已经经历了从传统的硬件密集型架构到现代化、虚拟化网络架构的重大转型。这一演变不仅提升了网络的灵活性和可扩展性&#xff0c;也为未来的5G、物联网&#xff08;LOT&#xff09;和边缘计算等技术的发展奠定了基础。…

拉格朗日插值法的matlab实现

一、基本原理 比如有如下这些点 x1x2x3x4y1y2y3y4 那么在拉个朗日原理中可以把过这些点的曲线表示为&#xff1a; 其g(x)y叫做一个插值基函数&#xff08;开关&#xff09;&#xff0c;当xx1时&#xff0c;g1(x)1&#xff0c;而当xx2,x3,x4时&#xff0c;g1(x)都为0&#xf…

使用WebStorm开发Vue3项目

记录一下使用WebStorm开发Vu3项目时的配置 现在WebStorm可以个人免费使用啦&#xff01;?? 基本配置 打包工具&#xff1a;Vite 前端框架&#xff1a;ElementPlus 开发语言&#xff1a;Vue3、TypeScript、Sass 代码检查&#xff1a;ESLint、Prettier IDE&#xff1a;WebSt…

35~37.ppt

目录 35.张秘书-《会计行业中长期人才发展规划》 题目​ 解析 36.颐和园公园&#xff08;25张PPT) 题目​ 解析 37.颐和园公园&#xff08;22张PPT) 题目 解析 35.张秘书-《会计行业中长期人才发展规划》 题目 解析 插入自定义的幻灯片&#xff1a;新建幻灯片→重用…