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

牛客周赛 Round 92

目录

A-小红的签到题

代码

B-小红的模拟

代码

C-小红的方神题

代码

D-小红的数学题

代码

无注释版

有注释版 

E-小红的ds题

代码

无注释版

有注释版


A-小红的签到题

代码

#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;char ch='a';for(int i=0;i<n;i++){if(i==1) cout<<"_";else cout<<ch; }
} 

B-小红的模拟

代码

#include<bits/stdc++.h>
using namespace std;
char a[1010][1010];
int main(){int n,m;cin>>n>>m;int x=0,y=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];if(a[i][j]=='#'){x=i,y=j;}}}if(x<n&&y>1){for(int i=1;i<n;i++){cout<<"S";}for(int i=1;i<m;i++){cout<<"D";}}else{for(int i=1;i<m;i++){cout<<"D";}for(int i=1;i<n;i++){cout<<"S";}}
}

C-小红的方神题

代码

#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;if(n==1||n==2){cout<<"-1";return 0;}cout<<1<<" "<<n<<" ";for(int i=n-1;i>=2;i--){cout<<i<<" ";}
}

D-小红的数学题

代码

无注释版
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){int k;cin>>k;k=k+1;for(int i=2;i*i<=k;i++){if(k%i==0){int a=i-1,b=k/i-1;int p=a+b;int q=a*b;cout<<p<<" "<<q<<"\n";return 0;}}cout<<-1;
} 
有注释版 
#include<bits/stdc++.h> // 引入所有标准库头文件,方便使用如cin、cout、sqrt等
using namespace std;#define int long long // 将int替换为long long,防止整数溢出,支持较大数字如1e12signed main() { // 主函数,使用signed是为了与#define int long long兼容int k;cin >> k;        // 输入正整数kk = k + 1;       // 将k加1,方便后续分解因数。解释见下。// 枚举从2到sqrt(k)的每个整数,寻找k的因数for (int i = 2; i * i <= k; i++) {if (k % i == 0) { // 如果i是k的因数// 设i = a + 1,则a = i - 1// k / i = b + 1,则b = k / i - 1int a = i - 1, b = k / i - 1;// 构造p = a + b,q = a * b// 对应二次方程:x^2 - p*x + q = 0int p = a + b;int q = a * b;// 输出满足条件的一组p和qcout << p << " " << q << "\n";return 0; // 输出后直接结束程序}}// 如果没有找到任何满足条件的(a, b),输出-1cout << -1;
}

E-小红的ds题

代码

无注释版
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[1000010],b[1000010];
int l[1000010],r[1000010];
signed main(){int n;cin>>n;int s=0;for(int i=1;i<=n;i++){cin>>a[i];b[i]=b[i-1]+a[i];s+=a[i];}cout<<1<<"\n";int node=2;int f=0;int fu=1;for(int i=2;i<=n;i++){int x=a[i];int cnt=0;while(x--){if(f==0){l[fu]=node;f=1;cnt++;}else{r[fu]=node;f=0;cnt++;}if(cnt==2){fu++;cnt=0;}node++;}fu=b[i-1]+1;}for(int i=1;i<=s;i++){if(l[i]==0) l[i]=-1;if(r[i]==0) r[i]=-1;cout<<l[i]<<" "<<r[i]<<"\n";}
}
有注释版
#include<bits/stdc++.h>  // 引入所有标准库
using namespace std;#define int long long  // 将int定义为long long,避免数据溢出int a[1000010], b[1000010];     // a表示每层节点数,b为前缀和数组
int l[1000010], r[1000010];     // l和r分别表示每个节点的左儿子和右儿子signed main() {int n;cin >> n;                   // 输入层数 nint s = 0;                  // s 为所有节点数总和// 读取每层的节点数,并计算前缀和 b[i],以及总节点数 sfor(int i = 1; i <= n; i++) {cin >> a[i];b[i] = b[i-1] + a[i];   // b[i] 表示前 i 层的节点总数s += a[i];              // s 是所有层的节点数之和}cout << 1 << "\n";          // 输出根节点的编号为 1int node = 2;               // node 表示下一个要分配的节点编号,从2开始(1是根)int f = 0;                  // f 用于交替分配左右儿子(0 表示左儿子,1 表示右儿子)int fu = 1;                 // fu 表示当前正在分配子节点的父节点编号// 从第二层开始为每一层的节点安排父节点连接关系for(int i = 2; i <= n; i++) {int x = a[i];           // 当前层的节点数int cnt = 0;            // 当前父节点已经连接了几个子节点(最多2个)// 为当前层的每个节点分配父节点连接(左或右儿子)while(x--) {if(f == 0) {l[fu] = node;   // 当前父节点的左儿子设为 nodef = 1;          // 下一次连接右儿子cnt++;          // 已连接一个子节点} else {r[fu] = node;   // 当前父节点的右儿子设为 nodef = 0;          // 下一个父节点开始连接左儿子cnt++;          // 已连接第二个子节点}if(cnt == 2) {      // 如果当前父节点已经连接两个儿子fu++;           // 切换到下一个父节点cnt = 0;        // 重置计数}node++;             // 准备分配下一个新节点}fu = b[i-1] + 1;        // 更新 fu 为当前层第一个父节点的编号(第 i-1 层的第一个节点编号 + 1)}// 输出每个节点的左右儿子编号,如果没有则输出 -1for(int i = 1; i <= s; i++) {if(l[i] == 0) l[i] = -1;    // 没有左儿子if(r[i] == 0) r[i] = -1;    // 没有右儿子cout << l[i] << " " << r[i] << "\n";  // 输出结果}
}
http://www.xdnf.cn/news/5714.html

相关文章:

  • vue2关闭eslint
  • 如何避免 JavaScript 中常见的闭包陷阱?
  • 如何指定conda环境打包成docker镜像
  • fastp数据质控
  • 远程命令执行RCE概述
  • C++编程练习,认识面向对象权限,如何进行封装
  • 北大夫妇携花皙蔻向西藏昂仁县第二小学捐赠爱心图书室
  • C++ - 堆栈RAII(资源获取就是初始化)详解
  • 星际篮球争霸赛/MVP争夺战 - 华为OD机试真题(A卷、Java题解)
  • ESP32-S3 with ESP-IDF v5.4.1 LVGL 9.2.0 Custom memory allocator
  • AWS EC2源代码安装valkey命令行客户端
  • Linux电源管理(五),发热管理(thermal),温度控制
  • IEEE出版|2025年算法、软件与网络安全国际学术会议(ASNS2025)
  • MySQL 学习(七)undo log、redo log、bin log 的作用以及持久化机制
  • 输出重定向
  • 双向链表专题
  • 51 单片机头文件 reg51.h 和 reg52.h 详解
  • element plus el-table多选框跨页多选保留
  • 2-巯基烟酰甘氨酸 晒后美白新配方,解决皮肤暗沉
  • M8040A/M8199助力数据中心收发信机测试
  • 树莓派开发环境部署(任何类型的树莓派),最简易
  • 新书速览|纯血鸿蒙HarmonyOS NEXT原生开发之旅
  • 使用conda导致无法找到libpython动态库
  • 【番外】01:Windows 安装配置 CUDA 和 cuDNN 教程
  • 【RTOS】 vxworks里面的配置项
  • vscode 默认环境路径
  • cursor 30.Our servers are currently........
  • 1.2 函数
  • SpringBoot医院病房信息管理系统开发实现​
  • 【HTOP 使用指南】:如何理解主从线程?(以 Faster-LIO 为例)