当前位置: 首页 > 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…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...