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

牛客周赛 Round 65

文章目录

      • 超市
        • 思路:
        • 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.lryc.cn/news/474227.html

相关文章:

  • 超级经典的79个软件测试面试题(内含答案)
  • 【Mac】安装 F5-TTS
  • Leaflet查询矢量瓦片偏移的问题
  • 存储引擎技术进化
  • CentOS 9 Stream 上安装 Maven
  • 强势改进!TCN-Transformer时间序列预测
  • MyBatis的不同参数传递封装
  • kotlin 协程方法总结
  • 脉冲当量计算方法
  • TongWeb7.0.E.6_P11嵌入式版本使用指引(by lqw)
  • Node.js:Express 服务 路由
  • C++之多态(上)
  • PySpark单机模式安装教程
  • DEVOPS: 认证与调度
  • ICPC区域赛成都站【赛后回顾+总结】
  • 保险大模型革新:全面自动化倒计时
  • 《使用Gin框架构建分布式应用》阅读笔记:p212-p233
  • 点云聚类学习 KMeans/DBSCAN
  • 反悔贪心
  • 汽车软件融合分析
  • 机器人和智能的进化速度远超预期-ROS-AI-
  • 5天学习RAG路线图,你信吗?
  • JIME智创:抖音创作者的AI绘画与视频生成创作神器
  • 基于SpringBoot和PostGIS的世界各国邻国可视化实践
  • Halcon相机外参自理解
  • C#语言入门:从基础到进阶
  • 网络爬虫的定义
  • 一个月调研分析标的“英伟达”
  • Spring Boot 与 EasyExcel 携手:复杂 Excel 表格高效导入导出实战
  • 什么是严肃游戏,严肃游戏本地化的特点是什么?