第 87 场双周赛

T1 — 模拟

class Solution {public:int q[13] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int get(string s){int m = stoi(s.substr(0,2));int d = stoi(s.substr(3,2));int res = 0;for(int i = 0; i < m; i ++) res += q[i];return res + d;}int countDaysTogether(string a, string b, string c, string d) {int s1 = get(a);int s2 = get(b);int s3 = get(c);int s4 = get(d);return max(0, min(s2, s4) - max(s3, s1) + 1);}
};

T2 — 贪心

class Solution {public:int matchPlayersAndTrainers(vector<int>& a, vector<int>& b) {sort(a.begin(), a.end());sort(b.begin(), b.end());int res = 0, j = 0;for(int i = 0; i < b.size(); i ++){if(j >= a.size()) break;if(a[j] <= b[i] && j < a.size()) j++, res ++;}return res;}
};

T3 — 位运算贪心 / 线段树 + 二分

位运算贪心

class Solution {public:vector<int> smallestSubarrays(vector<int>& nums) {int n = nums.size();vector<int> p(30, n);vector<int> res(n);for(int i = n - 1; i >= 0; i --){int t = i;for(int j = 0; j < 30; j ++){if(nums[i] >> j & 1) p[j] = i;else if(p[j] != n) t = max(t, p[j]); }res[i] = t - i + 1;}return res;}
};

线段树 + 二分

class Solution {public:int w[100010];struct node{int l,r;int sum;}tr[400010];void pushup(int u){tr[u].sum = tr[u << 1].sum | tr[u << 1 | 1].sum;}void build(int u,int l,int r){if(l==r)tr[u]={l,r,w[l]};else{tr[u]={l,r};int mid=l+r>>1;build(u<<1,l,mid);build(u<<1|1,mid+1,r);pushup(u);}}int query(int u,int l,int r){if(tr[u].l>=l&&tr[u].r<=r)return tr[u].sum;else{int mid=tr[u].l+tr[u].r>>1;if(r<=mid)return query(u<<1,l,r);else if(l>mid)return query(u<<1|1,l,r);else{int left=query(u<<1,l,r);int right=query(u<<1|1,l,r);return left | right;}}}vector<int> smallestSubarrays(vector<int>& nums) {vector<int>res;int n = nums.size();for(int i = 0; i < nums.size(); i ++)w[i + 1] = nums[i];build(1,1,n);for(int i = 1; i <= n; i ++){int maxv = query(1, i, n);//cout << maxv << ' ';int l = i, r = n;while(l < r){int mid = l + r >> 1;if(query(1, i, mid) < maxv) l = mid + 1;else r = mid;}res.push_back(r - i + 1);}return res;}
};

T4 — 贪心

class Solution {public:long long minimumMoney(vector<vector<int>>& q) {long long res = 0;long long sum = 0;for(auto &p : q){int a = p[0], b = p[1];if(a > b) sum += a - b;}for(auto &p : q){int a = p[0], b = p[1];long long s = sum;if(a > b) s -= a - b;res = max(res, s + a);}return res;}
};

力扣 第 87 场双周赛 ---心态爆炸场相关推荐

  1. 20211201:力扣第268周双周赛(上)

    力扣第268周双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 两栋颜色不同且距离最远的房子 给植物浇水 思路与算法 双指针遍历即可,维护那个索引最大差值即可. 模拟题,正常情况需要每次走一步 ...

  2. 20210119:力扣第42周双周赛(下)

    力扣第42周双周赛(下) 题目 思路与算法 代码实现 写在最后 题目 修改后的最大二进制字符串 得到连续 K 个 1 的最少相邻交换次数 思路与算法 修改后的最大二进制字符串 这道题的思路很简单,交换 ...

  3. 20210101:力扣第42周双周赛(上)

    力扣第42周双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 无法吃午餐的学生数量 平均等待时间 思路与算法 无法吃午餐的学生数量 本题直接暴力模拟也没问题,但是这应该不是题目的本意,我们可以 ...

  4. 20200827:2020力扣第33周双周赛题解

    2020力扣第33周双周赛题解 题目一 示例 解题思路与代码实现 题目二 示例 解题思路与代码实现 题目三 解题思路与代码实现 题目四 示例 解题思路与代码实现 写在最后 题目一 题目一:千位分隔数 ...

  5. 20200727:力扣第31周双周赛题解

    力扣第31周双周赛题解 题目一:在区间范围内统计奇数数目 给你两个非负整数low和high,请你返回low和high之间(包含二者)奇数的数目 0 <= low <= high <= ...

  6. 20220219:力扣第72场双周赛题解

    力扣第72场双周赛 题目 思路与算法 代码实现 写在最后 题目 统计数组中相等且可以被整除的数对 找到和为给定整数的三个连续整数 拆分成最多数目的偶整数之和 统计数组中好三元组数目 思路与算法 前三题 ...

  7. 20210530:力扣第53场双周赛题解

    力扣第53场双周赛题解 题目 思路与算法 代码实现 写在最后 题目 长度为三且各字符不同的子字符串 数组中最大数对和的最小值 矩阵中最大的三个菱形和 思路与算法 长度为三且各字符不同的子字符串:遍历查 ...

  8. 20201023:力扣第37场双周赛(上)

    力扣第37场双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 删除某些元素后的数组均值 网络信号最好的坐标 思路与算法 第二题直接暴力就可以了,计算每个点的所有偏移量存入list,即以(0,0 ...

  9. 以赛促练-力扣第85场双周赛以及第307场周赛

    文章目录 第85场双周赛 T3.字母移位II T4.删除操作后的最大子段和 第307场周赛 T2.最大回文数字 T3.感染二叉树需要的总时间 T4.找出数组的第K大和 第85场双周赛 T1直接暴力枚举 ...

最新文章

  1. linux 查看目录挂载的ip,Linux挂载IPSAN和FCSAN操作,Linux挂载NFS文件系统
  2. java 数组json_如何在Java中创建JSON数组
  3. 代码规范之eslint+prettier实践
  4. Python中的if __name__ == ‘__main__‘
  5. RTP/RTSP/RTCP 协议详解
  6. 前端lvs访问多台nginx代理服务时出现404错误的处理
  7. 【学生选课系统经典】C#与SQLSERVER连接:Windows应用工程案例
  8. ClickHouse表引擎
  9. 单目视觉里程计 mono vo
  10. mac地址修改_Mac 地址是什么?Mac 地址的修改及妙用!
  11. github随时同步代码_原来用IntelliJ IDEA操作GitHub这么方便啊
  12. 如何建立数据平台?看上市公司的选择!
  13. mysql job status_检查SQL Server Job状态
  14. Spring IOC基础使用
  15. java hdfs ha_hadoop2.x hdfs完全分布式 HA 搭建
  16. 最大公约数与最小公倍数
  17. 安装CentOS找不到硬盘,无法分区,No disks selected
  18. Centos 6.5安装最新版谷歌浏览器-Chrome
  19. android积分墙sdk,乐点 Android SDK 积分墙开发者文档
  20. 阿里云香港服务器配置选择帮助文档(超详细)

热门文章

  1. 如何保护你的电脑免受网络攻击
  2. 老板应该是布局者,而不是做事者(经典)
  3. Texture packer在制作图集中的优化方法
  4. 组织机构同步和人员同步
  5. 有哪些开源协议,他们之间有什么不同
  6. django 菜鸟篇+进阶篇
  7. 一键清空朋友圈软件_如何一键清空朋友圈?
  8. maya多边形建模怎样做曲面_Maya多边形建模教程(四)
  9. 学习分享——基于深度学习的NILM负荷分解(二)电器数据提取
  10. Arthas 安装/卸载