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

网站建设服务公司案例网站gif图标

网站建设服务公司案例,网站gif图标,域名注册了后怎么建设网站,临沂制作网站软件🏝️专栏: 【蓝桥杯备篇】 🌅主页: f狐o狸x "今日秃头刷题,明日荣耀加冕!" 今天我们来练习二分算法 不熟悉二分算法的朋友可以看:【C语言刷怪篇】二分法_编程解决算术问题-CSDN博客 …

Alt

🏝️专栏: 【蓝桥杯备篇】
🌅主页: f狐o狸x

"今日秃头刷题,明日荣耀加冕!"


        今天我们来练习二分算法

        不熟悉二分算法的朋友可以看:【C语言刷怪篇】二分法_编程解决算术问题-CSDN博客

一、牛可乐和魔法封印

        题目链接

        牛可乐和魔法封印

        题目描述

        解题思路        

        这题就是让我们找到左边界,在找到右边界,最后计算出在边界里面的元素个数即可,寻找左右边界的时候都可以用二分算法

        解题代码

#include <iostream>
using namespace std;typedef long long LL;const int N = 1e5 + 10;LL a[N];int n, q;int find(int x, int y)
{int left = 1, right = n;int rl = 0, rr = 0;// 寻找大于等于x的值while(left < right){int mid = (right + left) / 2;if(a[mid] >= x) right = mid;else left = mid + 1;}if(a[left] < x) return 0;rl = left;left = 1, right = n;// 寻找小于等与y的值      while(left < right){int mid = (right + left + 1) / 2;if(a[mid] <= y) left = mid;else right = mid - 1;}if(a[left] > y) return 0;rr = left;return rr - rl + 1;
}int main()
{cin >> n;for(int i = 1; i <= n; i++) cin >> a[i];cin >> q;while(q--){int x, y; cin >> x >> y;cout << find(x, y) << endl;}return 0;
}

二、P1102 A-B 数对

        题目链接

        P1102 A-B 数对

        题目描述

        解题思路

        题目要求我们找到满足A - B = C的个数,其实我们可以换一下,因为我们已知了A和C,也就是寻找B,即:A - C = B,因此我们只需要遍历整个数组,找到每次符合条件的B的个数是多少就可以了

        解题代码

#include <iostream>
#include <algorithm>using namespace std;typedef long long LL;const int N = 2e5 + 10;LL a[N];LL n, c;int main()
{cin >> n >> c;for (int i = 1; i <= n; i++) cin >> a[i];sort(a + 1, a + 1 + n);int ret = 0;for (int i = 1; i <= n; i++){LL b = a[i] - c;ret += upper_bound(a + 1, a + 1 + n, b) - lower_bound(a + 1, a + 1 + n, b);}cout << ret << endl;return 0;
}

三、P1678 烦恼的高考志愿

        题目链接

        P1678 烦恼的高考志愿

        题目描述

        解题思路

        此题可以通过二分法找出大于等于学生成绩的最小分数线,此时pos - 1的位置就是小于学生成绩的最大分数线,两个依次相减取小的即可

        解题代码

#include <iostream>
#include <algorithm>using namespace std;typedef long long LL;const int N = 1e5 + 10;LL a[N];
int m, n;
LL b;int find(LL x)
{int left = 1, right = m;while (left < right){int mid = (left + right) / 2;if (a[mid] >= x) right = mid;else left = mid + 1;}return left;
}int main()
{cin >> m >> n;for (int i = 1; i <= m; i++) cin >> a[i];sort(a + 1, a + 1 + m);a[0] = 1e6 + 10;LL ret = 0;for (int i = 1; i <= n; i++){cin >> b;int pos = find(b);ret += min(abs(a[pos] - b), abs(a[pos - 1] - b));}cout << ret << endl;return 0;
}

        今天的内容到这里就结束啦,明天我们继续二分算法,886~

http://www.dtcms.com/a/508662.html

相关文章:

  • 做jsp网站用哪些软件网站开发遇到的问题
  • reactjs 做网站共同建设网站协议
  • 工作证明怎么写渭南seo公司
  • wordpress 小说多站免费购物商城网站建设
  • 1.基于cuda的异构计算
  • # 高并发内存池开发记录 - 04
  • 姜堰网站定制广告公司宣传册设计
  • Python 字符串前缀使用技巧详解
  • 自学Unity第一周笔记
  • zabbix安装部署
  • 特殊教育学校网站建设方案网页制作软件山水
  • 网站建设朝阳网站加百度商桥
  • xxx学校校园网站建设实践网站做网页
  • 镇江网站设计公司报价苏州工程建设网
  • C语言文件操作全解析
  • 网页设计与网站建设毕业设计制作公司网站视频
  • 个人可以做几个网站吗建网站的步骤及方法
  • 怎样做网站卖自己的产品工业设计创意网站
  • 企业网站做seo的优势网站建设需要英语吗
  • 广东高端建设网站怎么样查询建设网站
  • 数据结构基石:从线性表到树形世界的探索
  • 开福区城乡建设局网站太原建网站
  • 宿州医疗网站建设泉港报名网站建设需要
  • 内蒙古乌海建设局网站郑州网站建设 易云互联
  • 算法笔记 06
  • 大模型熵-控制模型探索or利用
  • 视频教学网站开发云服务器做网站新手教程
  • 可信赖的手机网站设计百度竞价托管一月多少钱
  • Flink 1.19 REST API
  • RoniaKit QML仪表盘开发指南:从零开始创建专业仪表板