随笔分类 -  题解

摘要:本题与括号匹配相似 我用的两个栈 好吧,这种题目用vector的erase都能过,况且这个vector常数小 而大家都是用栈,我也用。 代码: #include <iostream> #include <stack> #include <string> using namespace std; st 阅读全文
posted @ 2020-12-15 18:29 HappyBobb 阅读(11) 评论(0) 推荐(0)
摘要:很基础的贪心。 将血量排序,把前k大的全删掉,剩下的加起来就是答案。 这里我使用的是 priority_queue,不用排序,STL帮忙。默认从小到大,用 greater可以从大到小。 #include <cstdio> #include <queue> #include <vector> usin 阅读全文
posted @ 2020-12-14 18:36 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要:因为这里说的满足k个子序列和为s,只需要输出k个s,然后用其他数填充接下来的 至于用什么数呢?随便…… 乱敲一个长一点的数就行了 代码: #include <iostream> using namespace std; int main() { ios::sync_with_stdio(false) 阅读全文
posted @ 2020-12-14 18:19 HappyBobb 阅读(5) 评论(0) 推荐(0)
摘要:每次除以k,答案加1,因为只有2至10进制,不用考虑字母 代码: #include <iostream> using namespace std; int main() { int n, k, cnt = 0; cin >> n >> k; while(n) { cnt++; n /= k; } c 阅读全文
posted @ 2020-12-13 21:53 HappyBobb 阅读(9) 评论(0) 推荐(0)
摘要:这道题目真是红!而我没用if,因为对于每种比赛而言,设rank \large rank\,rank = 排名,只要排名前3以内,其获得奖金为: (3 − rank + 1) ∗ 100000)\Large (3\, -\, rank\, + \,1) \,* \,100000)(3−rank+1)∗ 阅读全文
posted @ 2020-12-13 21:14 HappyBobb 阅读(8) 评论(0) 推荐(0)
摘要:对于 ai>bi\large a_i > b_iai​>bi​,sum1+=ai−bi\large sum1 += a_i - b_isum1+=ai​−bi​ 对于 ai<bi\large a_i < b_iai​<bi​,sum1+=ai−bi2\large sum1 += \frac{a_i 阅读全文
posted @ 2020-12-12 21:50 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要:本题不需要数组,只需要一个递归,边输出边统计1的个数 其实本题是位运算模板题,通过每次右移并且进行逻辑与运算就可得出1的个数。因为短除法是要从后往前输出,我们就利用递归输出,并且在递归时顺便进行统计。 做完本题的可以去做 CSP−J2020 T1\large CSP-J2020\ T1CSP−J20 阅读全文
posted @ 2020-12-09 16:21 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要:先来找规律: 对于有数的来说,y轴跟x轴相等或者与x轴差2 那么对于有数的来说,如果i为奇数,通项公式为: ai=x+y−1\huge a_i = x + y - 1ai​=x+y−1 如果i为偶数,通项公式为: ai=x+y\huge a_i = x + yai​=x+y 对于(0, 0)同样适用 阅读全文
posted @ 2020-12-07 16:37 HappyBobb 阅读(13) 评论(0) 推荐(0)
摘要:第一次过灰题,庆祝庆祝 前埔知识:等差数列求和公式 ∑in = (i + n) ∗ (n − i + 1)2 \LARGE \sum_{i}^n \, = \,\frac {(i \,+ \,n) \,*\, (n \,- \,i\, + \,1)}{2}∑in​=2(i+n)∗(n−i+1)​ 推 阅读全文
posted @ 2020-12-07 12:38 HappyBobb 阅读(13) 评论(0) 推荐(0)
摘要:遇到这种题目,尽管是红题,但也要注意复杂度,O(n3n^3n3)是过不去的。 那么我们先想想有没有O(n2n^2n2)的方法。如果已经循环了两层,那么第三层的数加上去要为s,那么第三层的数不就是: s - 第一层 - 第二层 那么就不用第3层循环了 代码如下: #include <iostream> 阅读全文
posted @ 2020-12-07 11:34 HappyBobb 阅读(34) 评论(0) 推荐(0)
摘要:这题目的测试点可能有点坑 我几次样例过了,但总是WA 一开始没用大家的getline方法,导致最后弄了半天还是WA 代码,麻烦帮我看看哪错了,可以发在评论区: #include <iostream> #include <cstdio> #include <string> using namespac 阅读全文
posted @ 2020-11-30 19:29 HappyBobb 阅读(17) 评论(0) 推荐(0)
摘要:本题很水,主要是处理换行用getchar读入,空格可以输出,换行也可以 求过 #include <iostream> #include <algorithm> #include <cstdio> #include <string> using namespace std; int main() { 阅读全文
posted @ 2020-11-28 09:42 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要:其实我根本不知道交互提中的flush是啥,所以我根本没用fflush(stdout) 如果一个数可以分解为两个及以上的质因数,那就是合数。 证明: 对于任意一个合数X,小学理论已经证明出X可以被某个质数整除,将X除以这个质数,得数如果是质数,那么X有两个质因数,否则,将X除以这个质数的结果继续分解, 阅读全文
posted @ 2020-11-24 20:50 HappyBobb 阅读(9) 评论(0) 推荐(0)
摘要:来个map解法 对于这个题目,我的思路是这样的,既然是拿走2或3个一样的,我们把一样的挑出来,每个算出拿走的价值,最后用总数 - 最大价值,类似贪心思路 我采用的是unordered_map,速度会比map快 #include <iostream> #include <unordered_map> 阅读全文
posted @ 2020-11-24 20:22 HappyBobb 阅读(6) 评论(0) 推荐(0)
摘要:这里给一个不用数组的解法 首先这道题如果的样例的第一行如果不用输出的确不用数组,但既然要先输出个数,再输出答案,貌似不可能? 但STL是你无法想象的! 他就是: stringstream 每次成功匹配就把答案塞到stringstream里,最后输出就好了 代码: #include <iostream 阅读全文
posted @ 2020-11-23 20:47 HappyBobb 阅读(5) 评论(0) 推荐(0)
摘要:这里给两种gcd算法(欧几里得不说了,大家都懂) 一、__gcd 这是algorithm中的求最大公约数函数,noip等比赛会判CE,慎用 二、 gcd(x,y)=x∗y/lcm(x,y)gcd(x, y) = x * y / lcm(x, y)gcd(x,y)=x∗y/lcm(x,y) ∴\lar 阅读全文
posted @ 2020-11-21 18:03 HappyBobb 阅读(7) 评论(0) 推荐(0)
摘要:没有会用find和rfind的吗 这里介绍一下rfind(find都会吧?) rfind代表对于该字符串,从右往左朝指定字符串,找到返回下标,找不到返回string::npos (-1) 那么代码就很简单了(注意,如果lala.结束并且miao.开始为不知道的结果) #include <iostre 阅读全文
posted @ 2020-11-21 15:18 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要:这里讲一个双端队列和小根堆配合的解法,不需要sort,但思路与其他题解类似 两个队列,一个是双端队列,另一个小根堆 小根堆升序排序,双端队列储存 最后看看不一样的数据有几个 代码: #include <iostream> #include <queue> using namespace std; p 阅读全文
posted @ 2020-11-21 14:26 HappyBobb 阅读(8) 评论(0) 推荐(0)
摘要:这里给出一个不用substr的写法,复杂度与大家都是差不多的,暴力枚举,但其实数据大一点暴力可能会T的 代码: #include <iostream> #include <algorithm> #include <cstring> using namespace std; string s, tmp 阅读全文
posted @ 2020-11-19 20:29 HappyBobb 阅读(8) 评论(0) 推荐(0)
摘要:其实CF也有类似的一道题 本题看起来像是DP,但这种做多了就知道典型贪心 我结合了运算符重载做 既然要参加的多,结束时间就应该小 定义一个类,两个成员变量start和end,一个成员函数operator < 主函数sort一下(对于已经重载过小于号的类,不需要cmp,但必须提交C++11或以上,SP 阅读全文
posted @ 2020-11-14 21:15 HappyBobb 阅读(15) 评论(0) 推荐(0)