码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 刷题记录(M. MaratonIME returns home,牛可乐和魔法封印,NC24866 [USACO 2009 Dec S]Music Notes)


    M. MaratonIME returns home

    题目链接

    关键点:

    1、易错:盗贼可能有多个,且都要看,因为最佳答案可能是在抢劫了之后才得出的

    2、左右方向要搞清楚

    完整代码:

    1. # include
    2. # include
    3. # include
    4. # include
    5. using namespace std;
    6. const int N = 1010;
    7. int n, m, posx, posy, maxx, flag, total;
    8. char ch[N][N];
    9. int main()
    10. {
    11. cin>>n>>m;
    12. for (int i=1; i<=n; i++)
    13. {
    14. for (int j=1; j<=m; j++)
    15. {
    16. cin>>ch[i][j];
    17. }
    18. }
    19. for (int i=1; i<=n; i++)
    20. {
    21. if (i%2)
    22. {
    23. for (int j=1; j<=m; j++)
    24. {
    25. if (ch[i][j]=='.')
    26. total++;
    27. if (ch[i][j]=='L')
    28. {
    29. flag = 1;
    30. maxx = max(maxx, total);
    31. total = 0;
    32. }
    33. }
    34. }
    35. else
    36. {
    37. for (int j=m; j>=1; j--)
    38. {
    39. if (ch[i][j]=='.')
    40. total++;
    41. if (ch[i][j]=='L')
    42. {
    43. flag = 1;
    44. maxx = max(maxx, total);
    45. total = 0;
    46. }
    47. }
    48. }
    49. }
    50. maxx = max(maxx, total);
    51. cout<
    52. return 0;
    53. }

    牛可乐和魔法封印

    题目链接

    关键点:

    1、求大于等于x且小于等于y的个数,直接用二分函数,upper_bound - lower_bound来求出个数

    2、upper_bound求出大于一个数的第一个的位置,lower_bound求出大于等于一个数的第一个位置

    完整代码

    1. # include
    2. # include
    3. # include
    4. using namespace std;
    5. const int N = 100000+10;
    6. int n, m;
    7. int a[N];
    8. int main()
    9. {
    10. cin>>n;
    11. for (int i=1; i<=n; i++)
    12. cin>>a[i];
    13. cin>>m;
    14. for (int i=1; i<=m; i++)
    15. {
    16. int x, y;
    17. cin>>x>>y;
    18. int ans = upper_bound(a+1, a+1+n, y)-lower_bound(a+1, a+1+n, x);
    19. cout<
    20. }
    21. return 0;
    22. }

    [USACO 2009 Dec S]Music Notes

    题目链接

    关键点

    1、用一个前缀和sum数组来存敲的音符总数,那么第i个字符的时长为sum[i]-sum[i-1],

    2、又因为每次敲的音符时长为左开的区间,所以对于每一次的查找,在sum数组里找到第一个大于该查找时间的下标即为所求音符

    完整代码

    1. # include
    2. # include
    3. # include
    4. using namespace std;
    5. const int N = 50000+10;
    6. int n, q;
    7. int sum[N];
    8. int main()
    9. {
    10. cin>>n>>q;
    11. for (int i=1; i<=n; i++)
    12. {
    13. int x;
    14. cin>>x;
    15. sum[i] = sum[i-1]+x;
    16. }
    17. for (int i=1; i<=q; i++)
    18. {
    19. int x;
    20. cin>>x;
    21. int ans = upper_bound(sum+1, sum+1+n, x)-sum;
    22. cout<
    23. }
    24. return 0;
    25. }

  • 相关阅读:
    逻辑运算介绍
    【ai】tx2-nx:Yolo V4 直接安装与 测试
    【HTML】行内元素、块级元素与行内块级元素
    国内大语言模型的相对比较:ChatGLM2-6B、BAICHUAN2-7B、通义千问-6B、ChatGPT3.5
    《乔布斯传》英文原著重点词汇笔记(八)【 chapter six 】
    视频剪辑教程:批量修改视频尺寸的简单方法
    临时增加ASM diskgroup做备份用要及时取消,否则去掉DG 导致CRS 重启
    YOLOv8独家最新改进《新颖高效AsDDet检测头》独一无二的结构改进,公开数据集mAP高效涨点,即插即用|检测头新颖改进,性能高效涨点
    Android事件分发机制源码解析
    【React】《React 学习手册 (第2版) 》笔记-Chapter3-JavaScript 函数式编程
  • 原文地址:https://blog.csdn.net/m0_60531106/article/details/125902287
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号