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

2023-03-05力扣每日一题

链接:

https://leetcode.cn/problems/triples-with-bitwise-and-equal-to-zero/

题意:

模拟一个摩天轮,四个舱,每个舱最多四人,给一个数组,表示摩天轮每切换一次座舱会来多少人排队(人不会走)。每进一个人会得到runningCost元,每切换一次座舱花费boardingCost元。当切换到这个座舱时,如果里面有人会都下来(即上一轮进这个舱的人再到这个舱的时候就都出去了,舱空了)。

求进行几次切换赚的钱最多(即使有人没下来也没关系),如果没有利润为正方案,返回-1

解:

嗯模拟就好了,判断是否有人等待,计算赚到的钱-花费剩下的利润take

int take=up*boardingCost-(i+1)*runningCost;(up是上去的人数,累积一下)

第一次没删除检验数据用的cout直接超时了,又写了个第二版,给自己蠢晕

实际代码:

int wait=0,ans=0,turn=0,up=0;int lg=customers.size();for(int i=0;i<lg||wait>0;i++){int add=0;if(i<lg){add=min(wait+customers[i],4);wait+=(customers[i]-add);}else{add=min(wait,4);wait-=(add);}//cout<<add<<endl;up+=add;int take=up*boardingCost-(i+1)*runningCost;//cout<<up<<" "<<wait<<endl;就是这个没注释if(take>ans){ans=take;turn=i+1;}}return ans==0?-1:turn;

第二版,循环只遍历完了数组,剩下还在排队的人算两个结果

1.只上满舱(四个人四个人上)花费为t1

2.上完所有满仓,再上剩下的人(不满四个),花费为t2

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int solve(vector<int>& customers, int boardingCost, int runningCost)
{int wait=0,ans=0,turn=0,up=0,take;int lg=customers.size();for(int i=0;i<lg;i++){int add=0;add=min(wait+customers[i],4);wait+=(customers[i]-add);//cout<<add<<endl;up+=add;take=up*boardingCost-(i+1)*runningCost;//cout<<up<<" "<<wait<<endl;if(take>ans){ans=take;turn=i+1;}}//cout<<take<<endl;int t1=(wait/4*4)*boardingCost-(wait/4)*runningCost;//cout<<t1<<endl;if(take+t1>ans){ans=take+t1;turn=lg+(wait/4);}if(wait%4!=0){int t2=t1+wait%4*boardingCost-runningCost;//cout<<t2<<endl;if(take+t2>ans){ans=take+t2;turn=lg+(wait/4+1);}}return ans==0?-1:turn;
}
int main()
{vector<int> customers;int boardingCost,runningCost;int n;cin>>n;for(int f=1;f<=n;f++){int temp;cin>>temp;customers.push_back(temp);}cin>>boardingCost>>runningCost;int ans=solve(customers,boardingCost,runningCost);cout<<ans<<endl;
}

限制:

  • n == customers.length
  • 1 <= n <= 105
  • 0 <= customers[i] <= 50
  • 1 <= boardingCost, runningCost <= 100
http://www.lryc.cn/news/31429.html

相关文章:

  • 真正的IT技术男是什么样的?
  • 在函数中,用指针接收就可以改变相应的内容吗??
  • Java+ElasticSearch+Pytorch实现以图搜图
  • 【C语言学习笔记】:指针
  • 微信小程序搭建流程
  • 嵌入式 Linux进程间的通信--信号
  • Vue3 核心模块源码解析(中)
  • 华为OD机试题 - 剩余可用字符集(JavaScript)| 含思路
  • 焦虑的根源
  • 1.认识网络爬虫
  • 【论文速递】WACV 2023 - 一种全卷积Transformer的医学影响分割模型
  • 加密图像的脆弱水印及应用
  • python线上商城网站项目前台和后台源码
  • PowerShell 实现企业微信机器人推送消息
  • IDEA集成Git就是这么简单
  • springBoot 事务基本原理
  • HBuilderX无线连接真机
  • idea初学笔记
  • C++核心编程<类和对象>(4)
  • 编写http workshop脚本从网页缓存里解析音乐
  • 当数字孪生遇上轨道交通,会有什么新发展?
  • 原理底层计划--分布式事务
  • Hive总结
  • docker环境下安装jenkins
  • Shifu基础功能:设备接入
  • 基于Java+SpringBoot+Vue+Redis+RabbitMq的鲜花商城
  • 蓝桥杯真题(解码)小白入!
  • 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?
  • 分享四个前端Web3D动画库在Threejs中使用的动画库以及优缺点附地址
  • 谷歌浏览器和火狐浏览器永久禁用缓存【一劳永逸的解决方式】