此博客用来记录自己在线OJ的练习,
来训练自己的编程和算法能力,
代码都是自己思考编写,
遇到困难的题目会在牛客讨论区查看思路,
杜绝ctrl+c,
因为是练习,所以源代码中缺乏注释
===================分割线========================
第一天:小易的字典
题目描述:
小易在学校中学习了关于字符串的理论, 于是他基于此完成了一个字典的项目。
小易的这个字典很奇特, 字典内的每个单词都包含n个’a’和m个’z’, 并且所有单词按照字典序排列。
小易现在希望你能帮他找出第k个单词是什么。
输入描述:
输入包括一行三个整数n, m, k(1 <= n, m <= 100, 1 <= k <= 109), 以空格分割。
2 2 6
输出描述:
输出第k个字典中的字符串,如果无解,输出-1。
zzaa
字典中的字符串依次为aazz azaz azza zaaz zaza zzaa
代码:
https://github.com/akh5/C-/blob/master/%E6%AF%8F%E6%97%A5%E7%AE%97%E6%B3%95/day1.cpp
===================分割线========================
第二天:瞌睡
题目描述:
小易觉得高数课太无聊了,决定睡觉。不过他对课上的一些内容挺感兴趣,所以希望你在老师讲到有趣的部分的时候叫醒他一下。你知道了小易对一堂课每分钟知识点的感兴趣程度,并以分数量化,以及他在这堂课上每分钟是否会睡着,你可以叫醒他一次,这会使得他在接下来的k分钟内保持清醒。你需要选择一种方案最大化小易这堂课听到的知识点分值。
输入描述:
第一行 n, k (1 <= n, k <= 105) ,表示这堂课持续多少分钟,以及叫醒小易一次使他能够保持清醒的时间。
第二行 n 个数,a1, a2, … , an(1 <= ai <= 104) 表示小易对每分钟知识点的感兴趣评分。
第三行 n 个数,t1, t2, … , tn 表示每分钟小易是否清醒, 1表示清醒。
6 3
1 3 5 2 5 4
1 1 0 1 0 0
输出描述:
小易这堂课听到的知识点的最大兴趣值。
16
源代码:(复杂度O(n2)有点高,在线OJ超时)
https://github.com/akh5/C-/blob/master/%E6%AF%8F%E6%97%A5%E7%AE%97%E6%B3%95/day2_O(n2).cpp
===================分割线========================
第三天:丰收
题目描述:
小易觉得高数课太无聊了,决定睡觉。不过他对课上的一些内容挺感兴趣,所以又到了丰收的季节,恰逢小易去牛牛的果园里游玩。
牛牛常说他对整个果园的每个地方都了如指掌,小易不太相信,所以他想考考牛牛。
在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往右数第x个苹果是属于哪一堆的。
牛牛觉得这个问题太简单,所以希望你来替他回答。
输入描述:
第一行一个数n(1 <= n <= 105)。
第二行n个数ai(1 <= ai <= 1000),表示从左往右数第i堆有多少苹果
第三行一个数m(1 <= m <= 105),表示有m次询问。
第四行m个数qi,表示小易希望知道第qi个苹果属于哪一堆。
5
2 7 3 4 9
3
1 25 11
输出描述:
m行,第i行输出第qi个苹果属于哪一堆。
1
5
3
源代码:(复杂度O(n),在线OJ超时)
https://github.com/akh5/C-/blob/master/%E6%AF%8F%E6%97%A5%E7%AE%97%E6%B3%95/day3.cpp
===================分割线========================
第四天:表达式求值
<