牛客周赛 Round 44VP

1.签到:https://ac.nowcoder.com/acm/contest/82526/A

AC代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{cin>>n;cout<<n/3;
}

2.思维:https://ac.nowcoder.com/acm/contest/82526/B

就是判断最多有几个相等:

#include<bits/stdc++.h>
using namespace std;
int n,a[100010];
bool cmp(int a,int b)
{return a<b;
}
int cnt=1;
int ans=1;
int main()
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i];sort(a+1,a+n+1,cmp);for(int i=2;i<=n;i++){if(a[i]==a[i-1]){cnt++;ans=max(ans,cnt);}else{cnt=1;}}cout<<ans;
}

3.思维:https://ac.nowcoder.com/acm/contest/82526/C

从后往前找到第一个不是0的位置,变成99999000的形式再+1即可。

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int t;
char s[1000010];
int main()
{cin>>t;while(t--){scanf("%s",s);int f=0;for(int i=strlen(s)-1;i>=1;i--){if(s[i]!='0'){f=1;break;}}if(f==0){cout<<0<<endl;continue;}long long cnt=0;int cn=0;for(int i=strlen(s)-1;i>=1;i--){if(cn==0&&s[i]=='0')continue;if(s[i]!='0') cn=1;cnt+='9'-s[i];}cout<<cnt+1<<endl;}
}

4.枚举:https://ac.nowcoder.com/acm/contest/82526/D

对于1-1e5的数据,我们先暴力枚举一下发现最多128个因子,于是我们就直接用前缀和维护即可。

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int n,q;
int a[100010];
int sum[100010][150];
int query(int ck)
{int cnt=0;for(int i=1;i*i<=ck;i++){if(ck%i==0&&ck/i==i) cnt++;else if(ck%i==0) cnt+=2;}return cnt;
}
int main()
{cin>>n>>q;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++){for(int j=1;j<=130;j++) sum[i][j]=sum[i-1][j];int c=query(a[i]);sum[i][c]++;}while(q--){int l,r;cin>>l>>r;long long ans=0;for(int i=1;i<=130;i++){long long cc=sum[r][i]-sum[l-1][i];ans+=cc*(cc-1)/2;}cout<<ans<<endl;}
}

5.构造:https://ac.nowcoder.com/acm/contest/82526/E

首先2不是合数,并且同奇偶的数加起来一定是合数(出了1+1),于是我们考虑每一个下标i对应i+4,这样前边的n-4个数就一定符合条件,对于后面4个数,分奇偶讨论即可,下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{cin>>n;if (n < 8) {cout << -1;return 0;}for (int i = 5; i <= n; i++)cout << i << ' ';if (n & 1) {cout << "2 1 4 3" << '\n';} else {cout << "1 2 3 4" << '\n';}
}

6.DFS,图论:https://ac.nowcoder.com/acm/contest/82526/F

(本代码是参考雨巨的思路,有一些更加简单的可以直接看其他人代码)

首先我们分类讨论一下:

1.删的边在环上并且在得到1--n的路径上,那么就换成环的另一段即可。

2.删的边不在环上也不在路径上,无影响。

3.删的边在环上但是不在路径上直接输出。

4删的边在路径上但是不在环上,输出-1.

于是我们只要维护环的长度,1--n的距离(不一定min),该距离走过的环的长度以及边的序号啊,环上的边。

如何得到环的长度:DFS,遇到vis过的说明找到了环,return vis过的值,这样倒着把所有环的点记录了一遍,到vis那里时令flag=0,以免让前面的分支也被算进。

再遍历一遍1--n的距离,用DFS找到一条有解的路径即可。

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int n;
vector<pair<int,int> > edge[100010];
bool vis[100010];
bool b_huan[100010];//在环上的边
bool b_dist[100010];//在遍历dis中经过的环的边
int len,flag=1;
int sum,huan;
int dfs1(int x,int fa)
{vis[x]=1;for(int i=0;i<edge[x].size();i++){int root=edge[x][i].first;int mark=edge[x][i].second;if(fa==root) continue;if(vis[root]){b_huan[mark]=1;return root;}int t=dfs1(root,x);if(t){if(flag){b_huan[mark]=1;len++;}if(t==x) flag=0;return t;}}return 0;
}
int dfs(int x)
{vis[x]=1;if(x==n) return 1;for(int i=0;i<edge[x].size();i++){int y = edge[x][i].first;int num = edge[x][i].second;if(vis[y]) continue;if(!dfs(y)) continue;sum++;if(b_huan[num]) huan++;b_dist[num]=1;return 1;}return 0;
}
int main()
{cin>>n;for(int i=1;i<=n;i++){int u,v;cin>>u>>v;edge[u].push_back({v,i});edge[v].push_back({u,i});}//查找环上的边dfs1(1,0);len++;memset(vis,0,sizeof(vis));dfs(1);int huanwai = sum - huan;int huanother = len - huan;for (int i = 1; i <= n; i++){if (b_huan[i] == 1 && b_dist[i] == 1){cout << huanwai + huanother<< endl;}else if (b_huan[i] == 1 && b_dist[i] == 0){cout << huanwai + huan<< endl;}else if (b_huan[i] == 0 && b_dist[i] == 0){cout << min(huanwai + huan, huanwai + huanother)<< endl;}else if (b_huan[i] == 0 && b_dist[i] == 1){cout << -1<< endl;}}
}

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

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

相关文章

【漏洞复现】海康威视综合安防管理平台 iSecure Center applyCT fastjson 远程代码执行

0x01 漏洞名称 海康威视综合安防管理平台 iSecure Center applyCT fastjson 远程代码执行 0x02 漏洞影响 0x03 搜索引擎 app"HIKVISION-综合安防管理平台"0x04 漏洞详情 POST /bic/ssoService/v1/applyCT HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Wi…

NASA数据集——阿尔法喷气式大气实验二氧化碳和甲烷数据

Alpha Jet Atmospheric eXperiment Carbon Dioxide and Methane Data 阿尔法喷气式大气实验二氧化碳和甲烷数据 简介 Alpha Jet Atmospheric eXperiment (AJAX) 是美国国家航空航天局艾姆斯研究中心与 H211, L.L.C. 公司的合作项目&#xff0c;旨在促进对加利福尼亚、内华达…

Kafka 实战 - Kafka Consumer 重置 Offset

在开发测试过程中&#xff0c;可能需要消费一段时间的消息&#xff0c;来验证数据的可靠性&#xff0c;这里需要消费者&#xff08;Consumer&#xff09;重置其消费的偏移量&#xff08;Offset&#xff09;。 以下是几种常用的方法来重置Kafka Consumer的Offset&#xff1a; …

vue+iview tabs context-menu 弹出框怎么修改样式

今天遇到一个需求说页面顶部的菜单右键弹出框离得有点远 代码是这样 <Tabs type"card" closable class"main-tags-col-tabs" v-model"activeTab" on-click"handleClickTag" :before-remove"handleBeforeRemove" capt…

什么是容器:从基础到进阶的全面介绍

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

libjpeg_example.txt

/* 示例.txt该文件说明了如何使用IJG代码作为子程序库读取或写入JPEG图像文件。你应该看看这段代码与文档文件 libjpeg.txt 结合使用。这段代码按原样不会做任何有用的事情&#xff0c;但它可能会有所帮助用于构建调用 JPEG 库的例程的骨架。我们以 JPEG 代码中使用的相同编码…

Java中的内部类及其用途

一、技术难点 在Java中&#xff0c;内部类是一个定义在另一个类内部的类。这种嵌套的结构带来了一些技术上的难点和挑战&#xff1a; 访问控制&#xff1a;内部类可以直接访问外部类的所有成员&#xff08;包括私有成员&#xff09;&#xff0c;但外部类不能直接访问内部类的…

Vue3实战笔记(44)—vue3组件的ref属性

文章目录 前言一、组件的ref用法总结总结 前言 之前学习过ref声明响应式对象&#xff0c;前几天读代码遇到了发懵的地方&#xff0c;详细学习了一下才发现&#xff0c;用法还有很多&#xff0c;遂总结一下ref的用法备忘。 一、组件的ref用法总结 Vue3 中的 ref 是一种创建响应…

【Linux 网络】网络基础(三)(网络层协议:IP 协议)

在复杂的网络环境中确定一个合适的路径。 一、TCP 与 IP 的关系 IP 层的核心作用是定位主机&#xff0c;具有将数据从主机 A 发送到主机 B 的能力&#xff0c;但是能力并不能保证一定能够做到&#xff0c;所以这时就需要 TCP 起作用了&#xff0c;TCP 可以通过超时重传、拥塞控…

【必备工具】gitee上传-保姆级教程

目录 1.gitee是什么 2.gitee怎么注册 ​编辑 3.gitee怎么提交代码 4.gitee的三板斧 Clone仓库 Q&A 1. Gitee 只有三板斧吗&#xff1f; 2. Git 教了&#xff0c;Gitee 上没有绿点怎么办&#xff1f; 3. 用户名和密码输入错误怎么办&#xff1f; 4. 操作时不小心…

【c++基础】和谐分组

题目描述 s 班共有 n 名学生&#xff0c;按照学号从 1 到的顺序每名学生的身高分别为 a[1],a[2]...a[n]。由于是新学期&#xff0c;s 班需要进行分组&#xff0c;分组的要求如下&#xff1a; 进行分组的组数不能超过 k。 每组的人的学号必须相邻。 由于身高差过大的人分在同一…

wordpress主题给网站增加一个版权声明区块代码分享

在数字化时代&#xff0c;网络上的信息传播变得越来越便捷&#xff0c;给人们生活和工作带来了极大的便利。然而&#xff0c;在这个过程中也产生了很多版权问题。为了更好地保护自己的版权&#xff0c;许多网站开始在其网页上添加版权声明。本文将探讨在网站上添加版权声明的重…

Gitee的原理及应用详解(二)

本系列文章简介&#xff1a; Gitee是一款开源的代码托管平台&#xff0c;是国内最大的代码托管平台之一。它基于Git版本控制系统&#xff0c;提供了代码托管、项目管理、协作开发、代码审查等功能&#xff0c;方便团队协作和项目管理。Gitee的出现&#xff0c;在国内的开发者社…

31.线性变换及对应矩阵

文章目录 1. 线性变换2. 投影矩阵 1. 线性变换 线性代数从线性变换开始&#xff0c;是线性代数的另外一个起点。很多物理学家并不关系坐标的值&#xff0c;而是关系从A坐标系到B坐标系的变化。他们希望知道如何去描述一个变化&#xff0c;而现在我们研究的就是通过矩阵来描述这…

机器人运动轨迹学习——GMM/GMR算法

机器人运动轨迹学习——GMM/GMR算法 前置知识 GMM的英文全称为&#xff1a;Gaussian mixture model&#xff0c;即高斯混合模型&#xff0c;也就是说&#xff0c;它是由多个高斯模型进行混合的结果&#xff1a;当然&#xff0c;这里的混合是带有权重概念的。 一维高斯分布 GMM中…

基于STM32与ESP8266 驱动的智能大棚环境监测控制系统

随着物联网技术的快速发展&#xff0c;智能农业逐渐成为现代农业发展的重要方向。本文介绍了一种基于STM32微控制器和ESP8266 Wi-Fi模块的智能大棚环境监测控制系统。该系统能够实时监测和控制大棚内的环境参数&#xff0c;如温度、湿度、光照强度和土壤湿度等&#xff0c;并通…

win11安装MySQL

目录[-] 1. 1. 下载2. 2. 安装 参考文档&#xff1a;MySQL :: MySQL 8.4 Reference Manual 1. 下载 mysql官网下载msi安装程序&#xff1a;MySQL :: Begin Your Download 2. 安装 运行下载的mis程序,逐步安装。 安装模式&#xff1a; complete; 进入配置&#xff1a; data di…

Spring Boot 项目统一异常处理

在 Spring Boot 项目开发中&#xff0c;异常处理是一个非常重要的环节。良好的异常处理不仅能提高应用的健壮性&#xff0c;还能提升用户体验。本文将介绍如何在 Spring Boot 项目中实现统一异常处理。 统一异常处理有以下几个优点&#xff1a; 提高代码可维护性&#xff1a;…

Linux内核重置root密码

Ubuntu 首先重新启动Ubuntu系统&#xff0c;然后快速按下shift键&#xff0c;以调出grub启动菜单在这里我们选择第二个&#xff08;Ubuntu高级选项&#xff09;&#xff0c;选中后按下Enter键 选择最高的Linux内核版本所对应的recovery mode模式&#xff0c;按e键编辑启动项 在…

【Spring】深入理解 Spring 中的 ImportSelector、Aware 和 Processor 接口

前言 Spring 框架提供了一系列接口和机制&#xff0c;为开发者提供了灵活、可扩展的编程模型。其中&#xff0c;ImportSelector、Aware 接口以及 Processor 系列接口是非常重要的扩展点&#xff0c;本文将深入探讨它们的设计目的、使用方法以及示例应用。 一、ImportSelector…