c++常用
rwrsgg
即使身处黑暗,心中也应该有光才对
展开
-
历届试题 填字母游戏
问题描述 小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: “我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了”。K大师在纸上画了一行n个格子,要小明和他交替往其中填入字母。并且:1. 轮到某人填的时候,只能在某个空格中填入L或O 2. 谁先让字母组成了“LOL”的字样,谁获胜。 3. 如果所有格子都填满了,仍无法组成LOL,则平局。小明试验了几次都输了,他很惭愧,希望你能用计算机帮他解开这个谜。输入格式 第一行,数字n(n<10),表示下面原创 2020-10-27 20:49:46 · 321 阅读 · 0 评论 -
set库的常用操作
//关于C++中set库的基本用法#include <iostream>#include <set>using namespace std;//注:set中是自动排序,且查找为二分查找所以很快,在hash中十分好用 set<int> s; //定义一个set set<int>::iterator it ;//设置迭代器 int main(){ s.insert(1); //插入1 s.insert(2); s.insert(3);原创 2020-10-12 20:36:23 · 415 阅读 · 0 评论 -
历届试题 区间移位
问题描述 数轴上有n个闭区间D1,…,Dn。其中区间Di用一对整数[ai, bi]来描述,满足ai < bi。已知这些区间的长度之和至少有10000。所以,通过适当的移动这些区间,你总可以使得他们的“并”覆盖[0, 10000]——也就是说[0, 10000]这个区间内的每一个点都落于至少一个区间内。 你希望找一个移动方法,使得位移差最大的那个区间的位移量最小。 具体来说,假设你将Di移动到[ai+ci, bi+ci]这个位置。你希望使得maxi |ci| 最小。输入格式 输入的第原创 2020-10-12 19:55:34 · 217 阅读 · 0 评论 -
算法提高 比大小
问题描述 输入n个字符串,比较这些字符串的大小并统计并按字典序输出字符串及出现个数输入格式 输入的第一行包含一个整数n,表示字符串个数。接下来n行,表示输入的字符串。输出格式 输出n行,每行包含一个字符串及一个整数,表示字符串及出现个数。样例输入5aabbbcaabsdffgsgjklsa样例输出aab 2bbc 1sdffg 1sgjklsa 1这道题感觉给的答案是错误的。。。还是写一下吧,思路:字典序排序然后去重//字符串比大小#include <原创 2020-06-30 08:41:39 · 745 阅读 · 0 评论 -
暑假训练13---高精度加法
[蓝桥杯][基础练习VIP]高精度加法时间限制: 1Sec 内存限制: 128MB 提交: 1984 解决: 804题目描述输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。算法描述由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即原创 2020-06-24 17:47:16 · 150 阅读 · 0 评论 -
暑假训练12---阶乘计算(高精度处理)
[蓝桥杯][基础练习VIP]阶乘计算题目描述输入一个正整数n,输出n!的值。其中n!=123*…*n。算法描述n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。输入输入包含一个正整数n,n< =1000。输出输出n!的准确值。样例输入1原创 2020-06-24 17:28:51 · 186 阅读 · 0 评论 -
暑假训练11---芯片测试(状态压缩)
**[蓝桥杯][基础练习VIP]芯片测试**时间限制: 1Sec 内存限制: 128MB 提交: 851 解决: 463题目描述有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。给出所有芯片的测试结果,问哪些芯片是好芯片。输入输入数据第一行为一个整数n,表示芯片个数。第二行到第n+1行为n*n的一张表原创 2020-06-24 16:40:55 · 143 阅读 · 0 评论 -
暑假训练9--回形取数(螺旋数组)
回形取数题目描述回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入3 31 2 34 5 67 8 9样例输出1 4 7 8 9 6 3 2 5// 回型取数 螺旋数组的做法#include <ios原创 2020-06-22 16:55:28 · 145 阅读 · 0 评论 -
暑假训练8附---huffuman编码(堆实现)
[蓝桥杯][基础练习VIP]Huffuman树时间限制: 1Sec 内存限制: 128MB 提交: 1133 解决: 669题目描述Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。重复步骤1,直到{pi}中原创 2020-06-20 17:37:41 · 131 阅读 · 0 评论 -
1454题-[蓝桥杯][历届试题]蚂蚁感冒-题解(C++代码)
长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。输入第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。接...原创 2020-05-01 18:06:51 · 325 阅读 · 0 评论 -
高精度乘法模板
//高精度乘法#include <iostream>#include <cstring>#include <algorithm>using namespace std;int num1[505];int num2[505];int num3[505];int main(){ memset(num1,0,sizeof(num1)); mem...原创 2020-04-30 16:22:45 · 122 阅读 · 0 评论 -
蓝桥训练-(排他平方数stringstream的应用)
/* 排他平方数利用的string串的操作 */#include <iostream>#include <sstream> //string流的用法需要添加的头文件 #include <algorithm>#include <cstring>using namespace std;typedef long long ll;void ...原创 2020-04-20 11:09:04 · 149 阅读 · 0 评论 -
关于c++优先队列的操作(大堆 小堆)
#include <iostream>#include <queue>#include <vector> //常用操作/*top() 访问队头元素empty() 队列是否为空 size() 队列元素的个数 push() 插入元素到队尾并排序 emplace 原地构造一个元素并插入队列 pop() 弹出队头元素 swap() 交换...原创 2020-04-16 14:17:05 · 402 阅读 · 0 评论