牛客周赛 Round 65

ops/2024/11/2 23:59:19/

文章目录

      • 超市
        • 思路:
        • Solved:
      • 雨幕
        • 思路:
        • Solved:
      • 闺蜜
        • 思路:
        • Solved:
      • 医生
        • 思路:
        • Solved:
      • 降温(easy)
        • 思路:
          • Solved:
      • F-降温(hard)
        • 思路:
        • Solved:

超市

思路:

签到题,哪个便宜就买哪个

Solved:
void solve()
{int n,a,b;cin>>n>>a>>b;cout<<n/min(a,b);
}

雨幕

思路:

数据范围很小,直接暴力每个点并判断即可

Solved:
void solve()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}int ans=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(a[i][j]=='*'&&a[i-1][j]=='*'&&a[i][j-1]=='*'&&a[i-1][j-1]=='*'){ans++;}}}cout<<ans;
}

闺蜜

思路:

读题发现每次都会拿当前最大的那个数,没换之前每组小红拿的数均为大的,若将小紫最小的和小红最大的比较,那么每组小紫的数就均为最大的了,因此,除了该数组中元素均相同,其余均为小紫win

Solved:
void solve()
{int n;cin>>n;map<int,int> mp;for(int i=1;i<=n;i++){int x;cin>>x;mp[x]++;}for(auto &s:mp){if(s.se==n){cout<<"draw"<<endl;return ;}}cout<<"yukari"<<endl;
}

医生

思路:

通过数据可得知,可以对每个病人暴力枚举所有药物,选出最优

可以通过dfs 构造每种药物选与不选的情况

若不选,则递归下一种药物

若选,则先将病人情况用该种药物恢复,再递归到下一种药物

直至病人痊愈,取最小值

Solved:
void dfs(string s,int index,int t)
{bool flag=1;for(int i=0;i<m;i++){if(s[i]=='1'){flag=0;}}//直至病人痊愈,取最小值if(flag){minx=min(minx,t);return ;}if(index>=k) return ;//若不选,则递归下一种药物dfs(s,index+1,t);//若选,则先将病人情况用该种药物恢复,递归到下一种药物for(int i=0;i<m;i++){if(s[i]=='1'&&b[index][i]=='1'){s[i]='0';}}dfs(s,index+1,t+1);
}void solve()
{cin>>n>>m;for(int i=0;i<n;i++){cin>>a[i];}cin>>k;for(int i=0;i<k;i++){cin>>b[i];}for(int i=0;i<n;i++){minx=INT_MAX;dfs(a[i],0,0);if(minx==INT_MAX){cout<<"-1"<<endl;}else{cout<<minx<<endl;}}
}

降温(easy)

思路:

读题发现有天数气温未知,所以可通过构造未知气温达到最优的寒潮天数

顺序构造,可不考虑前面未知天数(因为前面未知天数会补上)

最大寒潮

顺序构造

  • 如果是第一天,那么直接无脑最高气温
  • 顺序遍历,肯定是优先比前一天降低x度
  • 如果降低x度达不成寒潮(低于最低温度),无脑最高气温

最小寒潮

逆序构造

  • 如果是最后一天,无脑最高温度,保证没有寒潮
  • 逆序遍历,肯定是优先比后一天升温x-1度,保证没有寒潮
  • 如果升高x-1度超过最高温度,设置为最高温度
Solved:
void solve()
{int n,x;cin>>n>>x;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]==-999){st[i]=1;}}//最多for(int i=1;i<=n;i++){if(st[i]==1&&i==1){a[i]=50;}else if(st[i]==1&&a[i-1]-x>=-50){a[i]=a[i-1]-x;}else if (st[i]==1){a[i]=50;}}int mx=0;for(int i=1;i<=n-1;i++){if(a[i]-a[i+1]>=x){mx++;}}//最少for(int i=n;i>=1;i--){if(st[i]==1&&i==n){a[i]=50;}else if(st[i]==1&&a[i+1]+x<=50){a[i]=a[i+1]+x-1;}else if (st[i]==1){a[i]=50;}}int mi=0;for(int i=1;i<=n-1;i++){if(a[i]-a[i+1]>=x){mi++;}}cout<<mx<<" "<<mi<<endl;
}

F-降温(hard)

思路:

hard版是气温最大值和最小值改变,未知天气气温值改变,其余思路同easy

Solved:
void solve()
{int n,x;cin>>n>>x;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]==-999999999){st[i]=1;}}//最多for(int i=1;i<=n;i++){if(st[i]==1&&i==1){a[i]=num1;}else if(st[i]==1&&a[i-1]-x>=num2){a[i]=a[i-1]-x;}else if (st[i]==1){a[i]=num1;}}int mx=0;for(int i=1;i<=n-1;i++){if(a[i]-a[i+1]>=x){mx++;}}//最少for(int i=n;i>=1;i--){if(st[i]==1&&i==n){a[i]=num1;}else if(st[i]==1&&a[i+1]+x<=num1){a[i]=a[i+1]+x-1;}else if (st[i]==1){a[i]=num1;}}int mi=0;for(int i=1;i<=n-1;i++){if(a[i]-a[i+1]>=x){mi++;}}cout<<mx<<" "<<mi<<endl;
}

http://www.ppmy.cn/ops/130552.html

相关文章

【测试平台】打包 子节点ios环境配置

主要记录如何配置ios打包机环境&#xff0c;ios环境相对来说比较简单的&#xff0c;研发配置好证书可以本地打包&#xff0c;接入流程比较简单了。 打包机系统升级 1.升级mac OS系统 一般升级好几个小时&#xff0c;可以晚上下载好 2.下载xcode并安装 Appstroe 下载安装xco…

数据结构之链式结构二叉树的实现(初级版)

本文内容将主会多次用到函数递归知识&#xff01;&#xff01;&#xff01; 本节内容需要借助画图才能更好理解&#xff01;&#xff01;&#xff01; 和往常一样&#xff0c;还是创建三个文件 这是tree.h #pragma once #include<stdio.h> #include<stdlib.h> …

学习记录:js算法(八十二):组合总和

文章目录 组合总和思路一思路二思路三 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidate…

Docker:容器化和虚拟化

虚拟化 虚拟化是一种资源管理技术&#xff0c;它将计算机的各种实体资源&#xff08;如CPU、内存、磁盘空间、网络适配器等&#xff09;予以抽象、转换后呈现出来&#xff0c;并可供分割、组合为一个或多个电脑配置环境。这些资源的新虚拟部分是不受现有资源的架设方式、地域或…

git常见指令

概念 远程仓库和本地仓库 常用指令&#xff1a; ls/ll查看当前目录cat查看文件内容touch创建文件vivi编辑器 备注&#xff1a; git GUI&#xff1a;是git提供的图形化工具 GIT Bash&#xff1a;Git提供的命令行工具 在安装GIT后要配置用户和账号&#xff01; 配置用户信息 …

HTTP服务器测试与优化

目录 1 搭建一个基础的HTTP服务器 2 长连接测试 3 测试错误报文的处理 4 测试业务处理耗时超过超时时间的处理 5 测试同时收到多条正常请求 6 大文件传输测试 7 压力测试 1 搭建一个基础的HTTP服务器 在这个部分&#xff0c;我们需要搭建一个最简单的HTTP服务器&#xf…

Java的包、final关键字以及代码块

Java的包、final关键字以及代码块 一、包 包的作用 &#xff1a; ​ 包就是文件夹&#xff0c;用来管理各种不同功能的Java类 包名的书写规则&#xff1a; ​ 公司域名反写 包的作用&#xff0c;需要全部英文小写&#xff0c;见名知意 什么是全类名&#xff1a; ​ 包名…

固定电话怎么认证显示公司名称?

在当今商业环境中&#xff0c;企业的联系方式&#xff0c;尤其是固定电话&#xff0c;不仅是与客户沟通的重要桥梁&#xff0c;也是展示企业专业形象的一部分。许多企业希望通过拨打固定电话联系客户时&#xff0c;能够对外显示公司名称&#xff0c;以此来增加电话的可信度和品…