牛客周赛 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.mfbz.cn/a/648197.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全球点赞最高的人颜廷利:真正的人生目标是什么

在那个充满生机的2024年春天&#xff0c;记者有幸对中国第一起名大师的老师颜廷利教授进行了深入的访谈。带着对其人生哲学的强烈好奇&#xff0c;记者紧张而期待地提出了问题&#xff1a;“颜教授&#xff0c;您在漫长的人生旅途中最追求的是什么&#xff1f;” 宁夏银川、山东…

从容应对亿级QPS访问,Redis还缺少什么?no.29

众所周知&#xff0c;Redis 在线上实际运行时&#xff0c;面对海量数据、高并发访问&#xff0c;会遇到不少问题&#xff0c;需要进行针对性扩展及优化。本课时&#xff0c;我会结合微博在使用 Redis 中遇到的问题&#xff0c;来分析如何在生产环境下对 Redis 进行扩展改造&…

IT廉连看——UniApp——条件渲染

IT廉连看——UniApp——条件渲染 什么是条件渲染&#xff1f; 顾名思义&#xff0c;满足一定的条件他才会进行渲染。 这是我们上节事件绑定保留的代码。 一、现在我有这样一个需求&#xff1a; 增加一个按钮&#xff0c;当我点击这个按钮&#xff0c;这里的文本&#xff0…

2024年上半年系统架构设计师真题-复原程度90%

前言 此次考试监考特别严格&#xff0c;草稿纸不允许带出考场&#xff0c;并且准考证上不允许任何写画&#xff0c;甚至连笔都允许带一支&#xff0c;所以下面的相关题目都是参考一些群友的提供&#xff0c;加上自己的记忆回顾&#xff0c;得到的结果。 其中综合知识部分的题…

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

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

android_binder源码分析之_binder驱动使用服务

一&#xff0c;binder驱动源码分析&#xff0c;使用服务过程 uint32_t svcmgr_lookup(struct binder_state *bs, uint32_t target, const char *name) {uint32_t handle;unsigned iodata[512/4];struct binder_io msg, reply;bio_init(&msg, iodata, sizeof(iodata), 4);b…

Layui设置table表格中时间的显示格式

1、问题概述? 【数据库中的时间格式】 【Layui中table表格默认的显示格式】 默认的格式中会显示时间的毫秒单位,但是这个毫秒有时候是不需要的。 总结:这个时候我们就需要定义table表格中的时间显示格式。 2、解决办法? 【解决后时间的显示格式】 【解决办法1:通过字符…

mvc的常见注解

问文心一言的&#xff0c;记录一下。 PathVariable 路径变量注解 PathVariable 是 Spring MVC 提供的一个注解&#xff0c;它用于从 URI 模板变量中绑定值到控制器方法的参数上。当你在 RequestMapping、GetMapping、PostMapping、PutMapping、DeleteMapping 等注解的 URL 路…

企业档案管理系统软件都有哪些分类

企业档案管理系统软件可以根据其功能和特点进行分类。以下是一些常见的分类&#xff1a; 1. 全能类档案管理系统&#xff1a;提供文件存储和检索功能&#xff0c;并支持多种文件类型和格式的管理&#xff0c;如文本文件、图像文件、音频文件等。 2. 电子档案管理系统&#xff1…

嵌入式进阶——电位器案例(ADC)

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 案例介绍万用表测量ADC概念代码实现IO初始化为高阻输入ADC配置逻辑数据读取与转换 反向得到电源输入电压 案例介绍 通过控制滑动变…

设计模式:命令模式(Command)

设计模式&#xff1a;命令模式&#xff08;Command&#xff09; 设计模式&#xff1a;命令模式&#xff08;Command&#xff09;模式动机模式定义模式结构时序图模式实现在单线程环境下的测试在多线程环境下的测试模式分析优缺点适用场景应用场景应用实例实例 1&#xff1a;餐厅…

探索移动云服务:构建高效移动互联网应用的最佳实践

一、移动云服务简介 官网&#xff1a;https://ecloud.10086.cn 移动云&#xff0c;或称为移动云计算&#xff0c;是通过无线网络向移动设备用户提供云计算服务的技术。它使用户能够通过智能手机、平板电脑和笔记本电脑等各类移动设备&#xff0c;在任何时间、任何地点便捷地访…

通过Function函数式方式创建React组件-8

在React中&#xff0c;V16版本之前有三种方式创建组件&#xff08;createClass() 被删除了)&#xff0c;之后只有两种方式创建组件。这两种方式的组件创建方式效果基本相同&#xff0c;但还是有一些区别&#xff0c;这两种方法在体如下&#xff1a; 本节先了解下用Function函数…

机器学习算法手撕(一):KD树

import math import matplotlib.pyplot as pltclass Node:def __init__(self, data, leftNone, rightNone):self.data dataself.left leftself.right right# 创建KDTree类 class KDTree:def __init__(self, k):self.k kdef create_tree(self,dataset,depth):if not dataset…

【DAOS】daos client和dfuse 是什么?

目录 什么是daos client dfuse 是什么 dfuse 和 FUSE 之间的关系 什么是daos client &#xff08;参加&#xff1a;DAOS: A Scale-Out High Performance Storage Stack for Storage Class Memory | SpringerLink&#xff09; DAOS Client是一个与应用程序集成的库。 从堆栈…

堆(建堆算法,堆排序)

目录 一.什么是堆&#xff1f; 1.堆 2.堆的储存 二.堆结构的创建 1.头文件的声明&#xff1a; 2.向上调整 3.向下调整 4.源码&#xff1a; 三.建堆算法 1.向上建堆法 2.向下建堆法 四.堆排序 五.在文件中Top出最小的K个数 一.什么是堆&#xff1f; 1.堆 堆就…

【docker】仓库harbor的部署

harbor介绍 Harbor 是一个用于存储和管理 Docker 镜像的开源仓库。它提供了一系列的功能&#xff0c;比如用户管理、访问控制、镜像管理、日志审计和安全扫描等。Harbor 可以作为私有仓库来使用&#xff0c;也可以与公有仓库&#xff08;如 Docker Hub&#xff09;集成使用。 …

03.tomcat环境搭建

上传软件包 JDK #man bash #PATH 存放命令的路径 ## ls #加入环境变量&#xff0c;注意&#xff1a;EOF的单引号的意思就是追加到文件中的内容带有变量的不做解析&#xff0c;否则会被解析 cat >>/etc/profile <<EOF export JAVA_HOME/application/jdk export PAT…

华为OD机试 - 寻找最富裕的小家庭(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

Python 开心消消乐

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…