蓝桥杯-刷题统计
统计 蓝桥 刷题
2023-06-13 09:15:38 时间
蓝桥杯-刷题统计
1、问题描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目, 周六和周日每天做 b 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 n 题?
输入格式
输入一行包含三个整数 a,b 和 n.
输出格式
输出一个整数代表天数。
样例输入
10 20 99
样例输出
8
评测用例规模与约定
对于 50% 的评测用例,
.
对于 100% 的评测用例,
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
2、解题思路
第一种方案(这种会超时):周一到周五每天做a道题,周六周天每天b道题,直接累加就行,周内就+a,周末就+b,最后输出总数就行。
经过测试,第一种只有60%的用例可以通过,后面都超时了。
第二种方案:第一种相当于有多少天就要加多少次,太慢了。
- 我们直接看n道题目需要做多少周,由题意知,每周可以做的题目数量为
week=5a+2b
,计算n道题目可以做temp=n/week
周,然后计算还剩下多少道题目:sub=n%week
- 如果
sub==0
,说明temp
周刚好可以把所有题目做完,直接输出temp*7
- 否则,我们计算下要做完剩余的
sub
道题目还剩下多少天,这个时候天数只能是1-6了,写个循环判断下就行,假设做完剩下这些题需要i
天,那么输出temp*7+i
3、代码实现
3.1 方案一:累加方法(超时)
//只有60%的用例可以通过,剩下的超时了
public static void count1() {
Scanner scan = new Scanner(System.in);
long a = scan.nextLong(); //周一至周五每天做a道题目
long b = scan.nextLong(); //周六周日每天b道题目
long n = scan.nextLong();
int i = 1;
int count = 0;
while (count < n) {
if (i % 7 >= 1 && i % 7 <= 5) {
count += a;
} else {
count += b;
}
if (count >= n) {
break;
}
i++;
}
System.out.println(i);
scan.close();
}
3.2 方案二
//100%测试通过
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long a = scan.nextLong(); //周一至周五每天做a道题目
long b = scan.nextLong(); //周六周日每天b道题目
long n = scan.nextLong();
//一周的刷题量
long week = 5 * a + 2 * b;
long temp = n / week; //做了多少周
long sub = n % week;//还剩下多少题没做
if (sub == 0) { //可以被整除就直接输出
System.out.println(temp * 7);
} else {
long count = 0;
long i = 1;
while (count < sub) { //做完剩下的题需要几天
if (i % 6 == 0) { //此时最多6天,不用对7取模了
count += b;
} else {
count += a;
}
if (count >= sub) {
break;
}
i++;
}
System.out.println(temp * 7 + i);
}
scan.close();
}
运行结果如下:
这道题不难,就是暴力解法直接就超时了,只能通过60%,也就是说考试的时候只能拿60%的分,第二种直接满分。
相关文章
- webrtc开发入门_统计的简单应用
- 蓝桥杯 字符串统计(枚举 短短20行)---------C语言—菜鸟级
- Linux文本查看、操作、统计2-14
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-87 字串统计
- 【蓝桥OJ】门牌制作、七段码、成绩统计、分数
- java统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)详解编程语言
- ABAP 报表求和统计功能实现方法详解编程语言
- 据MySQL统计:记录数据进展(mysql统计记录数)
- 如何在Linux中快速统计文件行数(linux文件行数)
- 利用Linux统计函数运行时间(linux统计函数时间)
- MySQL实现每周数据统计分析(mysql统计每周数据)
- 分析利用Oracle进行全面统计分析(oracle统计)
- 企业数据库管理下的MSSQL统计分析(统计mssql)
- 统计MySQL统计字段出现次数的技巧(mysql 字段出现次数)
- Oracle数据库优先级统计提高效率增强性能(oracle优先级统计)
- 优化Oracle统计查询方法精粹(oracle优化统计查询)
- Redis实时统计订阅数量(redis获取订阅数量)
- 输入框的字数时时统计—关于onpropertychange和oninput使用