11 2020 档案

摘要:这题目的测试点可能有点坑 我几次样例过了,但总是WA 一开始没用大家的getline方法,导致最后弄了半天还是WA 代码,麻烦帮我看看哪错了,可以发在评论区: #include <iostream> #include <cstdio> #include <string> using namespac 阅读全文
posted @ 2020-11-30 19:29 HappyBobb 阅读(9) 评论(0) 推荐(0) 编辑
摘要:本题很水,主要是处理换行用getchar读入,空格可以输出,换行也可以 求过 #include <iostream> #include <algorithm> #include <cstdio> #include <string> using namespace std; int main() { 阅读全文
posted @ 2020-11-28 09:42 HappyBobb 阅读(4) 评论(0) 推荐(0) 编辑
摘要:其实我根本不知道交互提中的flush是啥,所以我根本没用fflush(stdout) 如果一个数可以分解为两个及以上的质因数,那就是合数。 证明: 对于任意一个合数X,小学理论已经证明出X可以被某个质数整除,将X除以这个质数,得数如果是质数,那么X有两个质因数,否则,将X除以这个质数的结果继续分解, 阅读全文
posted @ 2020-11-24 20:50 HappyBobb 阅读(4) 评论(0) 推荐(0) 编辑
摘要:来个map解法 对于这个题目,我的思路是这样的,既然是拿走2或3个一样的,我们把一样的挑出来,每个算出拿走的价值,最后用总数 - 最大价值,类似贪心思路 我采用的是unordered_map,速度会比map快 #include <iostream> #include <unordered_map> 阅读全文
posted @ 2020-11-24 20:22 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这里给一个不用数组的解法 首先这道题如果的样例的第一行如果不用输出的确不用数组,但既然要先输出个数,再输出答案,貌似不可能? 但STL是你无法想象的! 他就是: stringstream 每次成功匹配就把答案塞到stringstream里,最后输出就好了 代码: #include <iostream 阅读全文
posted @ 2020-11-23 20:47 HappyBobb 阅读(3) 评论(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 阅读(3) 评论(0) 推荐(0) 编辑
摘要:没有会用find和rfind的吗 这里介绍一下rfind(find都会吧?) rfind代表对于该字符串,从右往左朝指定字符串,找到返回下标,找不到返回string::npos (-1) 那么代码就很简单了(注意,如果lala.结束并且miao.开始为不知道的结果) #include <iostre 阅读全文
posted @ 2020-11-21 15:18 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这里讲一个双端队列和小根堆配合的解法,不需要sort,但思路与其他题解类似 两个队列,一个是双端队列,另一个小根堆 小根堆升序排序,双端队列储存 最后看看不一样的数据有几个 代码: #include <iostream> #include <queue> using namespace std; p 阅读全文
posted @ 2020-11-21 14:26 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:这里给出一个不用substr的写法,复杂度与大家都是差不多的,暴力枚举,但其实数据大一点暴力可能会T的 代码: #include <iostream> #include <algorithm> #include <cstring> using namespace std; string s, tmp 阅读全文
posted @ 2020-11-19 20:29 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:其实CF也有类似的一道题 本题看起来像是DP,但这种做多了就知道典型贪心 我结合了运算符重载做 既然要参加的多,结束时间就应该小 定义一个类,两个成员变量start和end,一个成员函数operator < 主函数sort一下(对于已经重载过小于号的类,不需要cmp,但必须提交C++11或以上,SP 阅读全文
posted @ 2020-11-14 21:15 HappyBobb 阅读(6) 评论(0) 推荐(0) 编辑
摘要:本题可以使用双端队列,暴力模拟肯定会TLE 有道题目和这个很像:https://www.luogu.com.cn/problem/P6823 对于维护队列,考的多的是关于翻转,翻转次数过多导致TLE 其实这道题是这样的,做标记现在是否翻转,如果要翻转,标记反过来 标记有什么用?因为如果已经翻转了,插 阅读全文
posted @ 2020-11-13 19:55 HappyBobb 阅读(4) 评论(0) 推荐(0) 编辑
摘要:管理你让我怎么排版? STL!!! map是本题的通常解法,也是很简单的 每次将候选人的票数++,用迭代器遍历一遍,找到最大值以及答案 代码: #include <iostream> #include <map> #include <cstring> using namespace std; map 阅读全文
posted @ 2020-11-13 19:16 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:我喜欢STL vector常数小,于是我像用vector+sort,比通常数组速度快 先说思路: 要c最大,数组要选的数尽可能大 先把小的抵消掉,后面再用大的 代码,79ms: #include <iostream> #include <algorithm> #include <iomanip> # 阅读全文
posted @ 2020-11-13 18:42 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:暴力不香吗 对于每个字符串,在前面暴搜,搜到则为输的一方 还有一种可能,如果前面的最后一个和当前的第一个不一样,当前也为输 代码: #include <iostream> #include <cstring> using namespace std; string s[105]; int main( 阅读全文
posted @ 2020-11-13 18:02 HappyBobb 阅读(5) 评论(0) 推荐(0) 编辑
摘要:STL容器是c++提供的一种数据结构,包含栈、队列、链表、映射等 vector被人翻译成动态数组 数组大家都了解过,但数组的大小是指定的,而动态数组的大小可以不声明 温馨提示:vector常数很小,据说可以卡过树形结构 在声明vector时,必须加上头文件 #include <vector> vec 阅读全文
posted @ 2020-11-12 20:42 HappyBobb 阅读(6) 评论(0) 推荐(0) 编辑
摘要:2021.1.2 Update:更好的排版 你们都用高大上的算法,只有我用暴力。 推广博客:https://www.luogu.com.cn/blog/332914/ 本题需要注意的是大小写不敏感,那就全部转为小写呗(大写也可以的)。 对于转换的排个字典序,每次暴力。 最劣复杂度 O(nm),不知道 阅读全文
posted @ 2020-11-12 20:10 HappyBobb 阅读(7) 评论(0) 推荐(0) 编辑
摘要:STL大法好 map不好吗 map也是打表,但最好的一点在于只要存圈圈为1和2的7个,因为map没有赋值的自动设为0,与题意一样 注意这个题目是这样的,并不是只是圈圈数于UTPC一样,每一位也要一样,这就是为什么有人过不了#21的原因 代码: #include <iostream> #include 阅读全文
posted @ 2020-11-12 17:53 HappyBobb 阅读(5) 评论(0) 推荐(0) 编辑
摘要:前埔芝士 本题要涉及到乘法原理 对于n个球,k种颜色,可以得出第一个球可以是k种,其余每个k - 1种 因此可得 ans = kkk * k−1n−1k - 1 ^ {n - 1}k−1n−1 代码: #include <iostream> #include <cmath> using namesp 阅读全文
posted @ 2020-11-11 21:56 HappyBobb 阅读(7) 评论(0) 推荐(0) 编辑
摘要:我有STL妄想症 STL大法好! 本题可以用STL的map,string,pair + algorithm中的transform做 将字符串全部转为大写,I,L转为1,0转为O 然后判断是否是重复的 这里注意,第一个读入的字符串也要转换 代码: #include <iostream>//读入输入 # 阅读全文
posted @ 2020-11-10 19:53 HappyBobb 阅读(11) 评论(0) 推荐(0) 编辑
摘要:好久没A绿题了,纪念一下,发个题解 众所周知,最小合数为4,拆解n只需要用x个4就好了 但如果n % 4 != 0怎么办,自己去分析,这里只说一下结论 n % 4 == 0 || n % 4 == 2 那答案就是n / 4,n % 4 == 2可以将最后的4和2合并,6是个合数 n % 4 == 1 阅读全文
posted @ 2020-11-08 09:37 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:Update:2020.11.5 新增运算符重载代码 本题还真是有意思! 我的思路是这样的 对于输入的顺序,将这些顺序先储存起来 然后输入时做一个类,类中包含一个数字和一个类似运算符重载的小于函数is_small,参数有两个,两个类 对于这两个类,转成字符串做比较,先看长度,长度一样一位位比较 附上 阅读全文
posted @ 2020-11-04 17:08 HappyBobb 阅读(5) 评论(0) 推荐(0) 编辑
摘要:本题还是很简单的,主要是找到思路 其实只要先把n的位数加起来,然后再把n的第一位减去1的结果加到另外一个变量中,其余为数都为9 输出最大值OK #include <iostream> #include <cstring> using namespace std; #define max(a, b) 阅读全文
posted @ 2020-11-02 20:26 HappyBobb 阅读(6) 评论(0) 推荐(0) 编辑
摘要:外国人的题目难看懂……看了半天才明白,读入n, m,a,b,以及m个数字,n是原有卡片数量,m是m次就职,每次就职所需卡片是第i个数字,如果卡片小于等于a则添加b,问什么时候会没法就职,如果一直可以就职,输出complete #include <iostream> using namespace s 阅读全文
posted @ 2020-11-02 20:03 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:按照题目模拟即可!每次去找ai,找到和now交换就好了 代码有注释 #include <iostream>//输入输出头文件 using namespace std;//标准命名空间 int a[105], n, m, now = 0;//now可以赋值为0也可以不赋值,因为这是全局变量来的 int 阅读全文
posted @ 2020-11-02 17:40 HappyBobb 阅读(4) 评论(0) 推荐(0) 编辑
摘要:本题其实很简单,桶排序,主要因为Ai <= n(看题面后面),所以排序一下然后n - k慢慢加上去就OK了,我用的是stable_sort(稳定排序),比sort快了6ms(可能是评测机问题吧……复杂度一样的) #include <iostream> #include <algorithm> usi 阅读全文
posted @ 2020-11-02 15:19 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这道题目先要学会分析 两个数相乘等于n,位数最好是要一样的,会想到平方根不? 判断平方根是否是整数,是就输出位数,不是从1到平方根慢慢找 #include <iostream> #include <cmath> using namespace std; int main() { long long 阅读全文
posted @ 2020-11-02 12:49 HappyBobb 阅读(26) 评论(0) 推荐(0) 编辑
摘要:本题还是比较简单的(水),那如果n是单数呢?也是除以2,不用说什么+1的操作的,代码通俗易懂,599ms #include <iostream> using namespace std; int arr[100005]; int main() { int n, m, max = -1, v = -1 阅读全文
posted @ 2020-11-02 11:51 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:本题其实还是蛮简单的哦!先存到数组里依次输出就完事AC了(UVA就一个数据点,做惯了CF的题目看着奇奇怪怪的……) #include <iostream> #include <cmath> #include <cstring> using namespace std; string a[] = {" 阅读全文
posted @ 2020-11-02 09:40 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:水题目,主要是考大家的高精度乘法,具体方案也很简单的 #include <iostream> #include <cstring> using namespace std; int a[10005], v, len = 1; int main() { int x; while(cin >> x) { 阅读全文
posted @ 2020-11-01 17:00 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示