码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 题解:ABC321B - Cutoff


    题解:ABC321B - Cutoff

    ·题目

    链接:Atcoder。

    链接:洛谷。

    ·难度

    算法难度:C。

    思维难度:C。

    调码难度:B。

    综合评价:见洛谷链接。

    ·算法

    分情况讨论。

    ·思路

    首先,如果目前的所有考试中分数最低的n-2场考试的分数加起来都能够满足要求,就直接输出0(即让第n次考试充当最低分),否则就把目前为止所有考试除了最低分和最高分之外都加起来,计算和与目标分数的差,如果该差小于等于目前最高分答案就是该差(让第n次考试充当中间值,即既不是最低也不是最高),否则就算你打的分再高,也只能作为最高分被忽略,所以只能输出-1。

    ·代价

    O(n*log(n)),每个判断都需要遍历一边每次考试的分数,但是由于我投懒,连求最大最小值都想排一下序。

    ·细节

    取最高分、最低分,用排序再合适不过。

    ·代码

    1. #include
    2. #define N 110
    3. using namespace std;
    4. int a[N]={},n=0,x=0;
    5. int calc();
    6. //求出目前考试分数掐头去尾剩余的总和与目标分数的差,差大于目前最大值返回-1(因为会被作为最大值忽略),否则返回差值
    7. bool check();
    8. //判断“目前为止最小的n-2次考试的分数总和也够用”是否成立
    9. int main(){
    10. scanf("%d%d",&n,&x);
    11. for(int i=1;i
    12. scanf("%d",&a[i]);
    13. }
    14. sort(a+1,a+n);
    15. //输入、排序
    16. if(check()==true){
    17. printf("%d\n",0);
    18. //如果目前为止最小的n-2次考试的分数总和也够用最后一次考试交白卷都行
    19. }else{
    20. printf("%d\n",calc());
    21. //否则输出calc的值
    22. }
    23. return 0;
    24. }
    25. int calc(){
    26. int sum=0;
    27. for(int i=2;i-1;i++){
    28. sum+=a[i];
    29. }
    30. //求和(掐头去尾)
    31. if(x-sum<=a[n-1]){
    32. //小于目前最大值可以返回
    33. return x-sum;
    34. }
    35. //否则返回-1
    36. return -1;
    37. }
    38. bool check(){
    39. int sum=0;
    40. for(int i=1;i-1;i++){
    41. sum+=a[i];
    42. }
    43. //求和(去尾)
    44. if(sum>=x){
    45. //够用就返回true
    46. return true;
    47. }
    48. //否则返回false
    49. return false;
    50. }

    ·注意

    输出0之后不要忘了退出程序。

  • 相关阅读:
    基于微信小程序的健身房私教预约系统,附源码
    springboot中使用poi导出excel文件,下载简易模板(根据对象实体类生成表头)
    Mybatis的介绍和基本使用
    小侃设计模式(六)-适配器模式
    一个程序员的编年史
    构造函数原型prototype
    julia 笔记:向量化 . 运算符(广播)
    【java_wxid项目】【第九章】【Apache Mybatis集成】
    lightdm .service: Start request repeated too quickly. grub正常,不显示登录和桌面 Endeavour
    Unity场景ab包加载压缩(LZ4,LZMA)格式的测试
  • 原文地址:https://blog.csdn.net/sluckystar/article/details/133253410
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号