本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏算法题解C与Python实现附上汇总贴算法竞赛备考冲刺必刷题C | 汇总【题目来源】洛谷P13013 [GESP202506 五级] 奖品兑换 - 洛谷【题目描述】班主任给上课专心听讲、认真完成作业的同学们分别发放了若干张课堂优秀券和作业优秀券。同学们可以使用这两种券找班主任兑换奖品。具体来说可以使用a aa张课堂优秀券和b bb张作业优秀券兑换一份奖品或者使用b bb张课堂优秀券和a aa张作业优秀券兑换一份奖品。现在小 A 有n nn张课堂优秀券和m mm张作业优秀券他最多能兑换多少份奖品呢【输入】第一行两个正整数n , m n,mn,m分别表示小 A 持有的课堂优秀券和作业优秀券的数量。第二行两个正整数a , b a,ba,b表示兑换一份奖品所需的两种券的数量。【输出】输出共一行一个整数表示最多能兑换的奖品份数。【输入样例】8 8 2 1【输出样例】5【算法标签】#普及# #整数二分#【代码详解】#includebits/stdc.husingnamespacestd;#defineintlonglong// 定义int为long long类型constintN10005;// 定义最大可能值未实际使用intn,m;// 两个资源总量inta,b;// 两种资源的消耗比例intans0;// 存储最终结果// 检查在给定mid值下是否满足资源约束boolcheck(intmid){// 计算按比例消耗的资源量intxa*mid;// 第一种资源消耗量intyb*mid;// 第二种资源消耗量// 如果第一种资源超限调整消耗量if(xn){// 计算需要调整的次数intkceil(1.0*(x-n)/(a-b));// 调整后的资源消耗量x-k*(a-b);yk*(a-b);}// 检查调整后的资源是否都在限制范围内returnxnym;}signedmain(){// 输入资源总量和消耗比例cinnm;cinab;// 确保n m且a b优化比较if(nm)swap(n,m);if(ab)swap(a,b);// 二分查找最大满足条件的mid值intl0,rm;// 初始化二分范围while(lr){intmid(lr)/2;// 计算中间值// 检查当前mid是否满足条件if(check(mid)){ansmid;// 更新答案lmid1;// 尝试更大的值}elsermid-1;// 尝试更小的值}// 输出最终结果coutansendl;return0;}【运行结果】8 8 2 1 5