牛客周赛 Round 51 (C++)

news2024/9/20 22:24:36

目录

A-小红的同余_牛客周赛 Round 51 (nowcoder.com)

思路:

代码: 

B-小红的三倍数_牛客周赛 Round 51 (nowcoder.com)

思路:

代码: 

C-小红充电_牛客周赛 Round 51 (nowcoder.com)

思路:

代码:

D-小红的 gcd_牛客周赛 Round 51 (nowcoder.com)

思路:

代码:

 E-小红走矩阵_牛客周赛 Round 51 (nowcoder.com)​

思路:

代码:

F-小红的数组_牛客周赛 Round 51 (nowcoder.com)

思路:

代码:

A-小红的同余_牛客周赛 Round 51 (nowcoder.com)

思路:

通过二分查找答案即可 

代码: 

#include<iostream>
using namespace std;
int m, ans;
int judge(int x)
{
	if ((2 * x) % m == 1)
		return 1;
	else
		return 0;
}
int main()
{
	cin >> m;
	int l = 0, r = m;
	while (l < r)
	{
		int mid = (1 + l + r) >> 1;
		if (judge(mid))
		{
			l = mid+1;
			ans = mid;
		}
		else
			r = mid-1;
	}
	cout << ans;
}

B-小红的三倍数_牛客周赛 Round 51 (nowcoder.com)

思路:

为3的倍数的数有一个特点:各个位数相加的和为3的倍数,所以将所有数的各个位数加起来看和是否为3的倍数

代码: 

#include<iostream>
using namespace std;
int n;
string s[110];
long long ans = 0;
int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> s[i];
		long long sum = 0;
		for (int j = 0; j < s[i].length(); j++)
		{
			sum += s[i][j] - '0';
		}
		ans += sum % 3;
	}
	if (ans % 3 == 0)
		cout << "YES";
	else
		cout << "NO";
}

C-小红充电_牛客周赛 Round 51 (nowcoder.com)

思路:

分两种情况讨论:第一种低于超级充电的触发条件,直接用C求即可;第二种高于超级充电触发条件,看是直接用B求所耗时间短 还是 先将电路用到低于超级充电触发条件然后用C求时间短。

代码:

#include<iostream>
using namespace std;
int main()
{
	double x, y, t, a, b, c;
	cin >> x >> y >> t >> a >> b >> c;
	double time;
	if (x <= t)
	{
		time = (100 - x) * 1.0 / c;
	}
	else
	{
		double ans1= (100 - x) * 1.0 / b;
		double ans2=(x-t)/y+ (100 - t) * 1.0 / c;
		time = min(ans1, ans2);
	}
	printf("%.9lf", time);
}

D-小红的 gcd_牛客周赛 Round 51 (nowcoder.com)

思路:

借用字符串来求,注意需要对每次求出来的值进行对b求余,不然会爆。

代码:

#include<iostream>
#define int long long
using namespace std;
int gcd(int a, int b)
{
    return  b > 0 ? gcd(b, a % b) : a;
}
signed main()
{
    string a;
    int b;
    cin >> a >> b;
    int x=0;
    int n = a.length();
    for (int i = 0; i < n; i++)
    {
        x *= 10;
        x += a[i] - '0';
        x %= b;
    }
    int ans = gcd(x, b);
    cout << ans;
    return 0;
}

 E-小红走矩阵_牛客周赛 Round 51 (nowcoder.com)

思路:

用二分法求答案,答案判断是否存在用深度搜索是否能走到终点

代码:

#include<iostream>
#include<queue>
#define int long long
using namespace std;
int n, m, k;
int s[510][510];
int dx[4] = { 1,0,0,-1 };
int dy[4] = { 0,1,-1,0 };
int flag = 0;//标志是否能走通迷宫
typedef struct node
{
    int x, y;
}node;
node start, end1;
int bfs(int ans)
{
    queue<node> q;
    if(s[1][1]>ans)
        return 0;
    q.push({1,1});
    int book[510][510] = { 0 };
    book[1][1]=1;
    while (!q.empty())
    {
        int x = q.front().x;//取x坐标
        int y = q.front().y;//取y坐标
        q.pop();
        for (int i = 0; i < 4; i++)//遍历四个方向
        {
            int tx = x + dx[i];
            int ty = y + dy[i];
            if (tx<1 || ty<1 || tx>n || ty>n || book[tx][ty] == 1 || s[tx][ty] > ans)//是否越界,是否走过,是否可走
                continue;
            else
            {
                book[tx][ty] = 1;
                q.push({ tx,ty});
                if(tx==n&&ty==n)
                    return 1;
            }
        }
    }
    return 0;
}
signed main()
{
    cin >> n ;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
        {
            cin >> s[i][j];
        }
    int l = 1, r = 1e9;
    while (l < r)
    {
        int mid = (l + r) >> 1;
        if (bfs(mid)) r = mid;
        else l = mid + 1;
    }
    cout << l;
    return 0;
}

F-小红的数组_牛客周赛 Round 51 (nowcoder.com)

思路:

用线段树存正数时的绝对值最大和负数时的绝对值最大,相当于建了两棵树。

需要加一句 ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) 不然会超时。

代码:

#include<iostream>
#define lc u<<1
#define rc u<<1|1
using namespace std;
const int N = 5e5 + 10;
typedef long long ll;
struct node {
    int l, r;
    ll sum, lm, rm, m;
    ll fsum, flm, frm, fm;
}tr[N << 2];
int n, q;
ll a[N], b[N];
void pushup(node& u, node& l, node& r)
{
    u.sum = l.sum + r.sum;
    u.lm = max(l.lm, l.sum + r.lm);
    u.rm = max(r.rm, r.sum + l.rm);
    u.m = max(l.m, max(r.m, l.rm + r.lm));

    u.fsum = l.fsum + r.fsum;
    u.flm = max(l.flm, l.fsum + r.flm);
    u.frm = max(r.frm, r.fsum + l.frm);
    u.fm = max(l.fm, max(r.fm, l.frm + r.flm));
}
void pushup(int u)
{
    pushup(tr[u], tr[lc], tr[rc]);
}
void build(int u, int l, int r)
{
    if (l == r)tr[u] = { l,l,a[l],a[l],a[l],a[l],b[l],b[l],b[l],b[l] };
    else {
        tr[u] = { l,r };
        int mid = (l + r) >> 1;
        build(lc, l, mid), build(rc, mid + 1, r);
        pushup(u);
    }
}
node query(int u, int l, int r)
{
    if (tr[u].l >= l && tr[u].r <= r)return tr[u];
    int mid = tr[u].l + tr[u].r >> 1;
    if (l > mid)return query(rc, l, r);
    else if (r <= mid)return query(lc, l, r);
    else {
        node res;
        node L = query(lc, l, r);
        node R = query(rc, l, r);
        pushup(res, L, R);
        return res;
    }
}
signed main()
{
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
        b[i] = -a[i];
    }
    cin >> q;
    build(1, 1, n);
    while (q--)
    {
        int a, b;
        cin >> a >> b;
        node t = query(1, a, b);
        cout << max(t.m, t.fm) << '\n';
    }
    return 0;
}

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

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

相关文章

css - - - - - 环形倒计时进度条实现

css - - - - - 环形倒计时进度条实现 1. 效果图展示2. 代码展示 1. 效果图展示 2. 代码展示 // html <view class"father"><view class"progress" style"--progress:{{red}}; --last:{{gray}}"></view> </view>// css …

【区块链 + 智慧政务】澳门:智慧城市建设之证书电子化项目 | FISCO BCOS应用案例

2019 年 2 月 27 日&#xff0c;澳门政府设立的澳门科学技术发展基金与微众银行达成合作&#xff0c;通过区块链、人工智能、大数据、 云计算等创新技术&#xff0c;共同推进澳门特区的智慧城市建设与未来型城市发展&#xff0c;提升粤港澳大湾区的科创能力。在澳 门智慧城市建…

从零开始学量化~Ptrade使用教程(六)——盘后定价交易、港股通与债券通用质押式回购

盘后固定价交易 实现科创板、创业板的盘后固定价交易&#xff0c;界面如下显示&#xff1a; 交易 输入科创板或创业板代码&#xff0c;选择委托方向&#xff0c;输入委托价格、委托数量&#xff0c;点击“买入”或“卖出”按钮进行委托。可出现一个委托提示框提示是否继续委托操…

防火墙NAT地址转换和智能选举综合实验

一、实验拓扑 目录 一、实验拓扑 二、实验要求&#xff08;接上一个实验要求后&#xff09; 三、实验步骤 3.1办公区设备可以通过电信链路和移动链路上网(多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换) 3.2分公司设备可以通过总公司的移动链路和电信链路访…

使用GPT3.5,LangChain,FAISS和python构建一个本地知识库

引言 介绍本地知识库的概念和用途 在现代信息时代&#xff0c;我们面临着海量的数据和信息&#xff0c;如何有效地管理和利用这些信息成为一项重要的任务。本地知识库是一种基于本地存储的知识管理系统&#xff0c;旨在帮助用户收集、组织和检索大量的知识和信息。它允许用户…

html5——CSS列表样式属性

list-style-type list-style-image list-style-position list-style eg&#xff1a; li { list-style:none; }【去除前面的黑点】

深度解析:disableHostCheck: true引发的安全迷局与解决之道

在Web开发的浩瀚星空中&#xff0c;开发者们时常会遇到各种配置与调优的挑战&#xff0c;其中disableHostCheck: true这一选项&#xff0c;在提升开发效率的同时&#xff0c;也悄然埋下了安全隐患的伏笔。本文将深入探讨这一配置背后的原理、为何会引发报错&#xff0c;以及如何…

Linux下如何安装配置Graylog日志管理工具

Graylog是一个开源的日志管理工具&#xff0c;可以帮助我们收集、存储和分析大量的日志数据。它提供了强大的搜索、过滤和可视化功能&#xff0c;可以帮助我们轻松地监控系统和应用程序的运行情况。 在Linux系统下安装和配置Graylog主要包括以下几个步骤&#xff1a; 准备安装…

TCP与UDP的理解

文章目录 UDP协议UDP协议的特点UDP的应用以及杂项 TCP协议TCP协议段格式解释和TCP过程详解确认应答机制 -- 序号和确认序号以及6位标志位中的ACK超时重传机制连接管理机制 与标志位SYN,FIN,ACK滑动窗口流量控制拥塞控制延迟应答捎带应答和面向字节流粘包问题TCP异常情况TCP特点…

华为USG6000V防火墙NAT智能选举

目录 一、拓扑图 二、要求 三、配置思路及方法 要求1&#xff1a;通过多对多的NAT实现上网功能 思路&#xff1a;基础IP地址配置按照之前的进行配置&#xff0c;接着在策略里配置多对多的NAT 要求2&#xff1a;分公司设备可以通过总公司的移动链路和电信链路访问到Dmz区的…

单链表算法 - 链表的回文结构

链表的回文结构_牛客题霸_牛客网对于一个链表&#xff0c;请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法&#xff0c;判断其是否为。题目来自【牛客题霸】https://www.nowcoder.com/practice/d281619e4b3e4a60a2cc66ea32855bfa思路1: /* struct ListNode {int val;st…

flask学习

flask学习 一、什么是flask Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug &#xff0c;模板引擎则使用 Jinja2 。Flask使用 BSD 授权。Flask也被称为 “microframework” &#xff0c;因为它使用简单的核心&#xff0c;用 extension 增加…

【STM32嵌入式系统设计与开发---拓展】——1_9_1上拉输入和下拉输入

在使用GPIO引脚时&#xff0c;上拉输入和下拉输入的选择取决于外部电路的特性和应用需求。以下是它们各自的应用场景&#xff1a; 1、上拉输入&#xff08;Pull-up Input&#xff09; 用途: 当默认状态需要为高电平时。 避免引脚悬空&#xff08;floating&#xff09;导致的…

浅说区间dp(下)

文章目录 环形区间dp例题[NOI1995] 石子合并题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路 [NOIP2006 提高组] 能量项链题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路 [NOIP2001 提高组] 数的划分题目描述输入格式输出格式样例 #1样例输…

深度学习落地实战:基于GAN(生成对抗网络)生成图片

前言 大家好&#xff0c;我是机长 本专栏将持续收集整理市场上深度学习的相关项目&#xff0c;旨在为准备从事深度学习工作或相关科研活动的伙伴&#xff0c;储备、提升更多的实际开发经验&#xff0c;每个项目实例都可作为实际开发项目写入简历&#xff0c;且都附带完整的代…

【Android Studio】整合okhttp发送get和post请求(提供Gitee源码)

前言&#xff1a;本篇博客教学大家如何使用okhttp发送同步/异步get请求和同步/异步post请求&#xff0c;这边博主把代码全部亲自测试过了一遍&#xff0c;需要源码的可以在文章最后自行拉取。 目录 一、导入依赖 二、开启外网访问权限 三、发送请求 3.1、发送同步get请求…

mac如何合并pdf文件到一个文件 macpdf合并 Mac如何合并pdf文件

在数字化的今天&#xff0c;pdf文件因其跨平台、格式统一等优势&#xff0c;已经成为工作、学习和生活中不可或缺的文件格式。然而&#xff0c;当我们需要合并多个pdf文件时&#xff0c;可能会感到有些无从下手。本文将为你详细介绍几种简单实用的合并pdf的方法&#xff0c;让你…

【学习css3】使用flex和grid实现等高元素布局

过往的实现方法是使用浮动加计算布局来实现&#xff0c;当flex和grid问世时&#xff0c;这一切将变得简单起来 一、简单的两列实现 1、先看页面效果 2、css代码 .container {padding: 10px;width: 100ch;margin: 0 auto;box-shadow: inset 0 0 0 2px #ccc;}.column {margin: 2…

简单爬虫案例

准备工作&#xff1a; 1. 安装好python3 最低为3.6以上&#xff0c; 并成功运行pyhthon3 程序 2. 了解python 多进程原理 3. 了解 python HTTP 请求库 requests 的基本使用 4. 了解正则表达式的用法和python 中 re 库的基本使用 爬取目标 目标网站&#xff1a; https://…

STM32智能建筑能源管理系统教程

目录 引言环境准备智能建筑能源管理系统基础代码实现&#xff1a;实现智能建筑能源管理系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;能源管理与优化问题解决方案与优化收尾与总结 1. 引言 智能建筑能…