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

牛客小白月赛68

牛客小白月赛68

  • A Tokitsukaze and New Operation
  • B Tokitsukaze and Order Food Delivery
  • C Tokitsukaze and Average of Substring
  • D Tokitsukaze and Development Task
  • E Tokitsukaze and Colorful Chessboard
  • F Tokitsukaze and New RenKinKama

题目链接

A Tokitsukaze and New Operation

思路:

读入时将整数按字符串读入,直接模拟即可

代码:

#include <bits/stdc++.h>using namespace std;string solve()
{string a,b;cin >> a >> b;if(a.length() != b.length()) return "-1";string ans = "";for(int i = 0; i < a.length();i++){int x = (a[i] - '0') * (b[i] - '0');ans += to_string(x);}return ans;
}int main(){int t;cin >> t ;while(t--){cout << solve() << endl;}return 0;
}

B Tokitsukaze and Order Food Delivery

思路:

按题意模拟更新求最值

代码:

#include <bits/stdc++.h>using namespace std;int solve()
{int n , a , b;int ans = 2e9;cin >> n >> a >> b;for(int i = 0; i < n; i++){int k , x , y; cin >> k >> x >> y;for(int j = 0; j < k; j++){int z;cin >> z;int d = 0;if(z >= x) d += y;if(z >= a) d += b;ans = min(ans,max(z-d,0)) ;}}return ans;
}int main(){int t ;cin >> t;while(t--){cout << solve() << endl;}return 0;
}

C Tokitsukaze and Average of Substring

思路:

预处理 ‘a’ ~ ‘z’ 每种字母出现次数的前缀和,暴力枚举区间 [lll,rrr], 利用已知信息求出分子和分母,更新 FFF(lllrrr)的最值。

代码:

#include <bits/stdc++.h>using namespace std;
const int N = 5010;
int sum[N][30];void solve()
{char s[5010];int n;scanf("%d",&n);scanf("%s",s+1);for(int i = 1; i <= n; i++){for(int j = 0; j < 26; j++) sum[i][j] = sum[i-1][j];sum[i][s[i]-'a']++;}double ans = 0;for(int l = 1; l <= n; l++){for(int r = l + 1; r <= n; r++){int up = 0;for(int j = 0; j < 26; j++){int d = sum[r][j] - sum[l-1][j];if(d >= 2) up += d * (d - 1) / 2;}ans = max(ans,up*1.0/(double )(r-l+1));}}ans = ans + 1e-8;printf("%.6f\n",ans);
}int main(){int t;cin >> t;while (t--){solve();}return 0;
}

D Tokitsukaze and Development Task

思路:

不难看出,四部分相互独立。先BFS预处理到达任意状态(10~300)的最小代价表 dis,对于每组询问,四部分的最小代价累加就是总的最小代价。

代码:

#include <bits/stdc++.h>using namespace std;
const int N = 5010;
int dis[510];
int dx[] = {1,-1,10,-10,100,-100};
void BFS()
{dis[10] = 1;queue<int>q;q.push(10);while (!q.empty()){int top = q.front();q.pop();if(!dis[300]) {dis[300] = dis[top] + 1;q.push(300);}if(!dis[10]){dis[10] = dis[top] + 1;q.push(10);}for(int i = 0; i < 6; i++){int xx = top + dx[i];if(xx < 10 || xx > 300) continue;if(dis[xx]) continue;dis[xx] = dis[top] + 1;q.push(xx);}}
}int main(){BFS();int t;scanf("%d",&t);while (t--){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);int ans = dis[a] + dis[b] + dis[c] + dis[d] - 4;printf("%d\n",ans);}return 0;
}

E Tokitsukaze and Colorful Chessboard

思路:
对于一个 nnn ∗* nnn 的盘面,令 SSS = nnn ∗* nnn, 可得最优划分方案(MaxaMax_aMaxaMaxbMax_bMaxb)=(SSS /// 222SSS /// 222 +++ SSS % 222),不妨令 b 为 a 和 b 中的较大者,满足 a ≤ MaxaMax_aMaxa 且 b ≤ MaxbMax_bMaxb,就能放入这个盘面。题目要求盘面尽可能地小,因此二分答案求最小边长。

代码:

#include <bits/stdc++.h>
#define int long long using namespace std;bool check(int d, int a, int b)
{int L = d * d / 2;int R = d * d / 2;if((d * d)%2) R++;if(L >= a && R >= b) return true;else return false ;
}int solve()
{int a, b; cin >> a >> b;if(a > b) swap(a,b);int l = 1 , r = 1e9;while(l + 1 < r) {int mid = (l + r) >> 1;if(check(mid,a,b)) r = mid;else l = mid;}if(check(l,a,b)) r = l;return r;
}signed main()
{int t;cin >> t;while (t--){cout << solve() << endl;}
}

F Tokitsukaze and New RenKinKama

思路:
先做一次任意交换(也可以交换自身,等于不交换),两重循环( O(nnn*nnn )),
这时候会有两种情况:
(1)如果经过某次交换,序列恰好能成优环,solve函数返回长度为 1 的操作序列
(2)如果经过某次交换,序列仍为劣环,必然存在至少一条劣边 e ,e两侧的点{x,y}中必然有一个要与其他点进行交换,才有可能使劣e边成为优边E,进而可能促使优环的出现。总之,第二次操作必然要修复某一条劣边(这里可以用反证法想一下)。

一点儿细节:
对于每次交换,可以O (1) 的判断新生成的环是否为优环。
优边权值记为 0 ,劣边权值记为 1 ,环的权值 exd 就是边的总权值。显然,每次交换操作只会改动很少的几条边,因此不必遍历整个环,通过改动后Exd的值就能判断环上的边是否全优(Exd = 0 时 ,全是优边,出现优环)

总的时间复杂度 OOO (((n3n^3n3)))

代码:

#include <bits/stdc++.h>using namespace std;const int N = 305;
int n,k;
bool check(int *a)
{for(int i = 1; i <= n; i++){int las = i - 1;if(las == 0)las = n;if(abs(a[i]-a[las]) > k) return false ;}return true;
}bool modify(int f, vector<pair<int,int>> &op, int *a)
{int exd = 0;for(int i = 1; i <= n; i++){int las = i - 1;if(las <= 0) las = n;exd += (abs(a[i]-a[las]) > k);}for(int i = 1; i <= n; i++){if(i == f) continue;int m1 = i;int l1 = i - 1 <= 0 ? n : i - 1;int r1 = i + 1 > n ? 1 : i + 1;int m2 = f;int l2 = f - 1 <= 0 ? n : f - 1;int r2 = f + 1 > n ? 1 : f + 1;int Exd = exd;if(m1 == l2 || m1 == r2){if(m1 == l2){Exd -= (abs(a[m1] - a[l1]) > k);Exd -= (abs(a[r2] - a[m2]) > k);Exd += (abs(a[m2] - a[l1]) > k);Exd += (abs(a[r2] - a[m1]) > k);}else {Exd -= (abs(a[m2] - a[l2]) > k);Exd -= (abs(a[r1] - a[m1]) > k);Exd += (abs(a[m1] - a[l2]) > k);Exd += (abs(a[r1] - a[m2]) > k);}}else {Exd -= (abs(a[m1] - a[l1]) > k);Exd -= (abs(a[r1] - a[m1]) > k);Exd -= (abs(a[m2] - a[l2]) > k);Exd -= (abs(a[r2] - a[m2]) > k);Exd += (abs(a[m2] - a[l1]) > k);Exd += (abs(a[r1] - a[m2]) > k);Exd += (abs(a[m1] - a[l2]) > k);Exd += (abs(a[r2] - a[m1]) > k);}if(Exd == 0){op.push_back({f,i});return true;}}return false ;
}
vector<pair<int,int>> solve()
{int a[N];cin >> n >> k;for(int i = 1; i <= n; i++){cin >> a[i];}vector<pair<int,int>>op;for(int i = 1; i <= n; i++){for(int j = i; j <= n; j++){op.push_back({i,j});swap(a[i],a[j]);if(check(a)) return op;else {int f = 1;for(int t = 1; t <= n; t++){if(t == 1) {if(abs(a[t] - a[n]) > k) {f = t;break;}}else{if(abs(a[t] - a[t-1]) > k){f = t;break;}}}int m1 = f - 1 , m2 = f;if(m1 <= 0) m1 = n;if(modify(m1,op,a)) return op;if(modify(m2,op,a)) return op;}swap(a[i],a[j]);op.pop_back();}}vector<pair<int,int>> re;return re;
}int main(){//freopen("in.txt","r",stdin);int t;cin >> t;while (t--){vector<pair<int,int>> ans = solve();if(ans.empty()) cout << -1 << endl;else {cout << ans.size() << endl;for(auto it : ans){cout << it.first << " " << it.second << endl;}}}return 0;
}

相关文章:

牛客小白月赛68

牛客小白月赛68A Tokitsukaze and New OperationB Tokitsukaze and Order Food DeliveryC Tokitsukaze and Average of SubstringD Tokitsukaze and Development TaskE Tokitsukaze and Colorful ChessboardF Tokitsukaze and New RenKinKama题目链接A Tokitsukaze and New Ope…...

【id:21】【20分】A. DS单链表--类实现

题目描述用C语言和类实现单链表&#xff0c;含头结点属性包括&#xff1a;data数据域、next指针域操作包括&#xff1a;插入、删除、查找注意&#xff1a;单链表不是数组&#xff0c;所以位置从1开始对应首结点&#xff0c;头结点不放数据类定义参考输入n第1行先输入n表示有n个…...

【实习_面试全程辅导分享】简历篇

🎋🎋哈喽,大家好,我是辰柒。快有一个月没有更新博文啦,那么这一个月不是在偷懒,而是在全心准备找实习的过程中。那么最终也是拿到了心仪的大厂offer——海康威视!!经过这次找实习的经历,我想就在校大学生找实习这件事情开设一个专栏,帮助大家在找实习的过程中减少焦…...

【学习笔记】CF1305 Kuroni and Antihype

想了一下&#xff0c;觉得还是发单篇的题解比较合理 怎么感觉这题之前做过 先抛开建边方式不管 这一步其实挺重要的&#xff0c;但是可能大多数人独立做这道题的时候都在想用位运算的性质&#xff0c;而没有想到分开考虑吧&#xff1f;&#xff0c;考虑新建000号节点&#xf…...

json-server单独使用或者在react中进行使用

json-serverjson-server使用教程修改json-server端口号启动1、全局安装json-server2、在根目录生成一个db.json3、启动 访问react中进行使用react中修改json-server启动端口号1、 第一步也是安装&#xff0c;和第一种一样2、在根路径下定义一个__json_server_mock__文件夹3、在…...

【6G 新技术】6G数据面介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…...

【AI绘图学习笔记】深度前馈网络(一)

有关深度前馈网络的部分知识&#xff0c;我们已经在吴恩达的机器学习课程中有过了解了&#xff0c;本章主要是对《深度学习》花书中第六章&#xff1a;深度前馈网络的总结笔记。我希望你在看到这一章的时候&#xff0c;能回忆起机器学习课程中的一些环节或者细节&#xff0c;这…...

目标检测笔记合集

目标检测笔记合集1. 必看的两篇目标检测论文2. 必速看的深度学习目标检测的论文集及概述2.1 一份Slide&#xff08;PPT)两张表格带你快速了解目标检测2.2 最新目标检测算法回顾2022笔记合集3.目标检测的应用与需求4.目标检测的定义与挑战5.目标检测损失函数的进展6.目标检测IOU…...

《计算机网络》期末复习笔记

文章目录一、一些英文名词的标签&#xff08;方便记忆&#xff09;二、OSI七层协议三、综合题3.0 知识点储备3.1 在Internet 网中&#xff0c;某计算机的IP 地址是11001010.01100000.00101100.01011000 &#xff0c;请回答下列问题3.2 假定发送方要发送的数据为10000101。采用C…...

linux下安装SonarQube

目录1. 准备安装环境2. 安装postgres数据库3. 安装SonarQube4. 使用SonarQube1. 准备安装环境 这里安装SonarQube的系统环境是Red Hat Enterprise Linux release 8.7 &#xff0c;然后将jdk的压缩包&#xff08;jdk-17.0.2_linux-x64_bin.tar.gz&#xff09;和sonarQube的压缩…...

MyBatis-Plus(狂神)

一.特点 无侵入&#xff1a;只做增强不做改变&#xff0c;引入它不会对现有工程产生影响&#xff0c;如丝般顺滑损耗小&#xff1a;启动即会自动注入基本 CURD&#xff0c;性能基本无损耗&#xff0c;直接面向对象操作强大的 CRUD 操作&#xff1a;内置通用 Mapper、通用 Serv…...

Python3实现写作

导语T_T没有科研梦想的人半夜过来水篇文章~~~让Python学会写写歌&#xff0c;创创作~~~纯属娱乐~~~改编自PyTorch官网的一个教程&#xff0c;不过我用TF写的&#xff0c;然后生成英文变成了生成中文~~~Lets Go~~~相关文件百度网盘下载链接: https://pan.baidu.com/s/1VUEFR82Cq…...

UEFI实战--------HII之uni文件

uni文件 HII的实现涉及到多种不同类型的文件&#xff0c;uni文件是其中最简单的一种&#xff0c;它用来存放各种语言的字符串以实现本地化。本节主要参考自《edk-ii-uni-specification.pdf》&#xff0c;后面简称为参考文档。 关于uni文件的作用&#xff0c;在参考文档中做了如…...

基于Spring Boot集成MyBatis-3.5.9操作数据库

记录&#xff1a;382场景&#xff1a;在Spring Boot 2.6.3中集成MyBatis 3.5.9操作数据库。实现MyBatis的查、增、改、删操作数据库示例。MyBatis官网&#xff1a;http://www.mybatis.org/MyBatis源码&#xff1a;https://github.com/mybatis/1.初始化准备1.1创建Maven工程使用…...

了解国外SEO负面压制的现状与应对策略!

随着全球化的发展&#xff0c;越来越多的企业和品牌开始将目光转向海外市场&#xff0c;而谷歌作为全球最大的搜索引擎之一&#xff0c;也成为了外贸企业最主要的搜索引擎之一。 然而&#xff0c;随着谷歌的不断发展&#xff0c;国外SEO负面压制的现状也愈发严峻&#xff0c;外…...

Yolov5-交通标志检测与识别

项目介绍 上一篇文章介绍了基于卷积神经网络的交通标志分类识别Python交通标志识别基于卷积神经网络的保姆级教程&#xff08;Tensorflow&#xff09;&#xff0c;并且最后实现了一个pyqt5的GUI界面&#xff0c;并且还制作了一个简单的Falsk前端网页实现了前后端的一个简单交互…...

Linux内核Thermal框架详解五、Thermal Core(4)

本文部分内容参考Linux Thermal 学习笔记 - 爱码网。特此致谢&#xff01; 接前一篇文章Linux内核Thermal框架详解四、Thermal Core&#xff08;3&#xff09; 三、相关源码及分析 2. thermal_register_governors 上一回说到这一段代码&#xff1a; for (__governor __gove…...

gcc 编译的过程

#include <stdio.h> #define PI 3.14 int main(int argc, char const *argv[]) { //打印IP的值printf("PI %lf\n", PI);return 0; }编译的过程&#xff1a;预处理、编译、汇编、链接1.预处理&#xff1a;宏替换、删除注释、头文件包含、条件编译 -E &#xf…...

Hadoop入个门

文章目录1️⃣、Hadoop概述1.1、Hadoop是什么1.2、三大发行版本1.3、优势1.4、组成HDFSYARNMapReduceHDFS、YARN、MapReduce三者关系1.6、大数据技术生态体系image-202303111027195802️⃣、Hadoop运行环境搭建2.1、虚拟机环境准备2.2、克隆虚拟机2.3、在hadoop2上安装JDK2.4、…...

python 从0到批量下载某站视频

简介&#xff1a;真实从0到1&#xff0c;童叟无欺&#xff5e; 目标&#xff1a;用python批量下载某站搜索视频&#xff0c;以“CG 服装”为例 本章主要介绍如何用python把搜索到的视频直接下载到自己的本地文件夹中&#xff5e; 介绍一下工作流1. 下载并安装python2. 测试pyt…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...