码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 2024/2/29 备战蓝桥杯 6-1 二分


    目录

    查找

    【深基13.例1】查找 - 洛谷

    数对

    A-B 数对 - 洛谷

    砍树

    [COCI 2011/2012 #5] EKO / 砍树 - 洛谷


    参考连接:AcWing 789. 数的范围---二分法一次搞懂 - AcWing

    1.程序中不要同时出现l = mid, r = mdi这两条语句。

    2.如过程序中出现了l = mid,mid的值用 (l + r + 1) / 2计算。

    3.如果程序中出现了r = mid,mid的值用((l + r) / 2计算。
     

    大佬给的方法:

    两种写法:
    r = mid ,l = mid+1     此时写(l + r ) / 2            (答案在左边)
    l = mid , r=mid-1      此时写(l + r + 1) /2           (答案在右边)

    查找

    【深基13.例1】查找 - 洛谷

    完整代码:

    1. #include
    2. #define int long long
    3. #define PII std::pair
    4. const int N = 1e6+10;
    5. std::vector<int> a(N+1);
    6. int n,m;
    7. int check(int y)
    8. {
    9. int l=1,r=n;
    10. while(l
    11. {
    12. int mid=(l+r)/2;
    13. if(a[mid]>=y) r=mid;
    14. else l=mid+1;
    15. }
    16. if(a[l]==y) return l;
    17. else return -1;
    18. }
    19. signed main()
    20. {
    21. std::cin >> n >> m;
    22. for(int i = 1;i <= n;i ++)
    23. {
    24. std::cin >> a[i];
    25. }
    26. while(m --)
    27. {
    28. int x;
    29. std::cin >> x;
    30. std::cout<<check(x)<<" ";
    31. }
    32. return 0;
    33. }

    数对

    A-B 数对 - 洛谷

    这个我没有用二分写,而是用map映射

    完整代码:

    1. #include
    2. #define int long long
    3. #define PII std::pair
    4. const int N = 2e5+10;
    5. signed main()
    6. {
    7. int n,c;
    8. std::cin >> n >> c;
    9. std::vector<int> a(n+1);
    10. std::map<int,int> mp;
    11. for(int i = 1;i <= n;i ++)
    12. {
    13. std::cin >> a[i];
    14. mp[a[i]]++;
    15. }
    16. int ans=0;
    17. for(int i = 1;i <= n;i ++)
    18. {
    19. ans+=mp[a[i]-c];
    20. }
    21. std::cout<
    22. return 0;
    23. }

    砍树

    [COCI 2011/2012 #5] EKO / 砍树 - 洛谷

    太难了这道题写了一下午才写出来

    完整代码:

    1. #include
    2. #define int long long
    3. #define PII std::pair
    4. const int N = 1e6+10;
    5. int a[N];
    6. int n,m;
    7. bool check(int x)
    8. {
    9. int sum=0;
    10. for(int i = 1;i <= n;i ++)
    11. {
    12. if(a[i]>x)
    13. sum+=(a[i]-x);
    14. }
    15. if(sum>=m)
    16. return true;
    17. else
    18. return false;
    19. }
    20. signed main()
    21. {
    22. std::cin >> n >> m;
    23. for(int i = 1;i <= n;i ++)
    24. {
    25. std::cin >> a[i];
    26. }
    27. std::sort(a+1,a+1+n);
    28. int l=a[1],r=a[n];
    29. while(l < r)
    30. {
    31. int mid = (l+r+1)/2;
    32. if(check(mid))
    33. l=mid;
    34. else
    35. r=mid-1;
    36. }
    37. std::cout<
    38. return 0;
    39. }

  • 相关阅读:
    162_Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv_2.0
    算法日常训练12.5
    《ASP.NET Core技术内幕与项目实战》精简集-目录
    Github 2024-06-14 开源项目日报Top10
    第十六章 源代码文件 REST API 教程(一)
    【解决】tsc : 无法加载文件XXX, 因为在此系统上禁止运行脚本。
    【光学】Matlab实现迈克尔逊干涉仪动态仿真
    深度学习目标检测模型综述
    关于ClickHouse的表引擎和SQL操作
    LeetCode讲解篇之347. 前 K 个高频元素
  • 原文地址:https://blog.csdn.net/weixin_73793099/article/details/136383078
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号