1>问题描述

2>自己最初的代码

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
/**想到用动态规划*dp[i][j]表示只有前i张桌子,并且只有前j批游客的情况下。*餐馆能获得的最大收益*但是,思路有问题。状态方程有问题*/
int main()
{int tableLen=0,customsLen=0;vector<int>everyCusNums;vector<int>everyCusMoney;vector<int>everyTableRL;while(cin>>tableLen>>customsLen){everyTableRL.resize(tableLen,0);everyCusNums.resize(customsLen,0);everyCusMoney.resize(customsLen,0);for(int i=0;i<tableLen;++i)cin>>everyTableRL[i];for(int i=0;i<customsLen;++i){cin>>everyCusNums[i];cin>>everyCusMoney[i];}//处理sort(everyTableRL.begin(),everyTableRL.end());int rows = tableLen+1;int cols = customsLen+1;vector<vector<int>>dp;dp.resize(rows);for(int i=0;i<rows;++i)dp[i].resize(cols,0);for(int i=1;i<rows;++i)for(int j=1;j<cols;++j){if(everyCusNums[j-1]>everyTableRL[i-1])dp[i][j] = dp[i][j-1];else{dp[i][j] =max(dp[i][j-1],dp[i-1][j-1]+everyCusMoney[j-1]);/*这个地方肯定有问题*/}}cout<<dp[rows-1][cols-1]<<endl;}}
运行结果:

3>用优先队列(第一次用priority_queue)

#include<iostream>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;
class customer
{public:int num;int money;customer():num(0),money(0){}customer(int a,int b):num(a),money(b){}
};
bool customerVecSort(const customer &a,const customer &b)
{return a.num<b.num;
}
class que_cmp
{public:bool operator ()(const customer &cus1, const customer &cus2){//注意优先队列的排序方法//这样,按照money从大到小进行排序return cus1.money<cus2.money;}
};
int main()
{int tableCnt=0,customsCnt=0;vector<int>tables;vector<customer>customers;while(scanf("%d %d",&tableCnt,&customsCnt)!=EOF){tables.resize(tableCnt,0);customers.resize(customsCnt);for(int i=0;i<tableCnt;++i)scanf("%d",&tables[i]);for(int i=0;i<customsCnt;++i){scanf("%d",&customers[i].num);scanf("%d",&customers[i].money);}//tables从小到大排序//customers按照每批客人的人数进行从小到大进行排序sort(tables.begin(),tables.end());sort(customers.begin(),customers.end(),customerVecSort);long long res = 0;priority_queue<customer,vector<customer>,que_cmp> priQue;/**下面时关键**///桌子从小到大进行排序,能坐小桌子的游客(先进入priQue)也一定能坐大桌子//循环tableCnt次,每次取一个当前priQue中的最大消费值//有点类似动态规划,循环到i时,表示前面 i+1张桌子可选的情况下,最终结果res的值int j=0;for(int i=0;i<tableCnt;++i){for(;j<customsCnt&&customers[j].num<=tables[i];++j)priQue.push(customers[j]);if(priQue.empty())continue;res+=priQue.top().money;priQue.pop();}printf("%ld\n",res);}
}

运行ac了

滴滴校招 餐馆最大收益问题相关推荐

  1. 22届滴滴校招礼盒开箱记录~

    去年内推了一个学弟进入滴滴,过年期间他收到了校招礼盒,拍了一些照片给我,我就发个帖子给大家看看,凑个热闹哈哈 

  2. 滴滴校招面经(已拿offer)

    之前因为做CVTE笔记把滴滴的笔试错过了,之后18号又给了依次笔试的机会,也顺利通过笔试进入了面试.前两面是视频面,后两面本应该是北京现场面,但是考虑到我在西安,就给我安排了视频面. 滴滴一面: 1. ...

  3. 2018滴滴校招(秋招)内推笔试编程题题解

    package 内推笔试;import java.util.Arrays; import java.util.Scanner;/*** Created by liuming on 2017/8/26. ...

  4. 滴滴校招笔试题及解析

    //仅供学习交流,请勿转载 滴滴出行2016校园招聘 软件研发工程师 单选题 1:下面代码的输出结果是什么 ( ) #include <iostream>using namespace s ...

  5. 2017滴滴校招编程

    题目: 求一个数阶乘后的结果中末尾有几个0 输入: 属于一个整数n(0 import java.math.BigDecimal; import java.util.Scanner; public cl ...

  6. [滴滴校招] 连续最大和

    题目:一个数组有 N 个元素,求连续子数组的最大和. 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3 输入描述: 输入为两行. 第一行一个整数n(1 <= n <= 1 ...

  7. Leetcode 第 201 场周赛 (2020 滴滴校招专场)

    整理字符串 找出第N个二进制字符串中的第K位 和为目标值的最大数目不重叠非空子数组数目 切棍子的最小成本 3分 简单 4分 中等 6分 中等 7分 困难 √ √ √ √ 5483 统计好三元组 用栈维 ...

  8. 滴滴校招编程题-田径运动会比赛排名

    题目描述 一年一度的X星人田径运动会隆重开幕.小小X报名参加了跳跃比赛,这可是小小X最擅长的项目!跳跃比赛分为两轮,一轮是跳高,一轮是跳远.最终成绩将综合两轮比赛的成绩来确定,并且两轮比赛成绩在最终成 ...

  9. 滴滴校招真题——末尾0的个数

    题目描述 输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 输入描述: 输入为一行,n(1 ≤ n ≤ 1000) 输出描述: 输出一 ...

最新文章

  1. 推导和实现:全面解析高斯过程中的函数最优化(附代码公式)
  2. Hadoop集群三种作业调度算法介绍
  3. 关于 VDD VSS VCC VEE VPP
  4. mysql死锁释放时间参数_【Mysql】mysql 事务未提交导致死锁 Lock wait timeout exceeded; try restarting transaction 解决办法...
  5. QT高级编程之QT基本概览
  6. (计算机组成原理)第五章中央处理器-第四节4:微程序控制单元设计
  7. C++ 杂七杂八的东西
  8. html静态化和动态页面,web动态页面静态化,伪静态
  9. vscode 文件夹中查找_真香!使用 VSCode 进行远程开发调试
  10. Java WEB之过滤器
  11. mysql限制数据类型的长度_MySQL数据类型的长度
  12. 关于ExtJS错误“例外被抛出且未被接住”问题
  13. Python爬虫系列之爬取美团美食板块商家数据,选困的福利
  14. 自助图书馆系统-Tkinter界面和openpyxl表格综合设计案例
  15. mac用navicat连接mysql_Mac OS下,使用Navicat连接MySQL出现的问题
  16. Python助你抢红包
  17. yzy的欢乐膜你赛后,一份迟来的个人(蒟蒻)思路解析
  18. 谷歌今年在中国新招200人 应届毕业生占50%
  19. DEMO-lidar原理介绍及数据集运行测试
  20. C语言读书1000字报告,c语言实验一实验报告1000字范文.docx

热门文章

  1. dell r720xd 裸机配置系列 3 配置网络
  2. 国内工业机器人发展水平综述
  3. 听dalao讲课8.4
  4. Maven读书系列:Maven仓库
  5. 软件缺陷(定义+表现形式+优先级+信息+产生原因),看完这篇文章就懂了
  6. 蓝牙电话/耳机和蓝牙音乐profile
  7. 讲解c程序设计语言的比喻,《C语言程序设计》论文关于比喻在《C语言程序设计》课程教学中的应用论文范文参考资料...
  8. android触摸屏映射,解决android4.0 触摸屏分辨率映射不准
  9. Excel-汉字中提取数字
  10. 开发一款APP需要阿里云服务器多大配置