07 2018 档案

摘要:一、str与clear函数 C++Reference对于两者的解释: 可见:clear()用来设置错误状态,相当于状态的重置;str用来获取或预置内容 二、区别 运行下面测试代码: (1)注释掉ss.clear() 输出: 可发现,不能正确输出 (2)注释掉ss.str("") 输出: 可发现,虽然 阅读全文
posted @ 2018-07-25 09:56 Rogn 阅读(1573) 评论(0) 推荐(0) 编辑
摘要:一、简介 <sstream>类库定义了三种类:istringstream,ostringstream,stringstream.分别用来进行流的输入,流的输出,输入输出操作.在此演示stringstream的使用.**stringstream最大的特点是可以很方便的实现各种数据类型的转换,不需要像C 阅读全文
posted @ 2018-07-24 23:36 Rogn 阅读(897) 评论(0) 推荐(0) 编辑
摘要:结论是:两者没有任何区别 解释: C++Reference中对于两者的解释: 两者的具体解释都一模一样: 理解: length是因为C语言的习惯而保留下来的,string类最初只有length,引进STL后,为了兼容,又添加了size,便于符合STL的接口规则 人们在使用时,size() 一般用作返 阅读全文
posted @ 2018-07-24 21:34 Rogn 阅读(719) 评论(0) 推荐(0) 编辑
摘要:一、题目 输入一系列由小写字母组成的单词。输入已按照字典序排序(这句话就是个陷阱),且不超过120000个。找出所有的复合词,即恰好由两个单词连接而成的单词。 二、解题思路 要么枚举两两拼接的情况,O(n^2),n这么大肯定会超时。要么枚举每个单词的拆分情况,当单词比较短时,O(n*m),可能可行。 阅读全文
posted @ 2018-07-24 20:35 Rogn 阅读(8940) 评论(1) 推荐(0) 编辑
摘要:一、题目 课堂上有n个学生(n<=10)。每个学生都有一个“睡眠-清醒”周期,其中第i个学生醒Ai分钟后睡Bi分钟,然后重复(1<=Ai,Bi<=5),初始第i个同学处于他的周期的Ci分钟。每个学生在临睡前,只有全班睡觉人数严格大于清醒人数才睡觉,否则坚持Ai分钟后再检查。问经过多长时间全班都清醒, 阅读全文
posted @ 2018-07-23 23:07 Rogn 阅读(456) 评论(0) 推荐(0) 编辑
摘要:一、题目 考虑一个残局,其中红方有n个棋子,黑方只有一个将,红方除了帅以外还有:车(R)、马(H)、炮(C)三种可能得棋子,并且考虑"蹩马脚"和将帅不能照面。输入所有棋子位置坐标,保证局面合法且红方已被将军。你任务是判断红方是否已被黑方将死。 二、思路 用两个二维数组,一个存所有棋子的位置,一个记录 阅读全文
posted @ 2018-07-23 21:48 Rogn 阅读(1024) 评论(0) 推荐(0) 编辑
摘要:一、题目 输入两个骰子,判断两者是否等价(输入的顺序为:上、前、左、右、后、下) 二、思路 这种的要么当模拟题,模拟骰子的旋转;或者寻找规律,总结出旋转的结果,从而写出尽量简洁的代码 取上面为参考面,有6种情况,每种情况可水平旋转得4种情况,共24种 三、代码 阅读全文
posted @ 2018-07-23 21:30 Rogn 阅读(714) 评论(0) 推荐(0) 编辑
摘要:欧拉定理和费马小定理有许多重要的应用,常见的我们可以用它来化简计算 费马小定理是欧拉定理的特例 一、费马小定理 证明: 由(a,m) = 1,知m不是a的素因数;又因为m不是1、2、3...m-1的素因数,所以a,2a,3a...(m-1)a都不能被m整除 又因为a,2a,3a...(m-1)a两两 阅读全文
posted @ 2018-07-23 12:34 Rogn 阅读(888) 评论(0) 推荐(0) 编辑
摘要:一、概念 我们把所有与整数a模n同余的整数构成的集合叫做模n的一个剩余类,记作[a].并把a叫做剩余类[a]的一个代表元. 二、与同余的关系 证明:对任意c∈[a],a≡c(mod n),又因为a≡b(mod n),所以b≡c(mod n),从而c∈[b]. 同理,对任意c∈[b],也可得出c∈[a 阅读全文
posted @ 2018-07-23 11:43 Rogn 阅读(5743) 评论(0) 推荐(2) 编辑
摘要:一、概念 一般地,设n为正整数,a、b为整数,如果a和b被n除后余数相同,那么称a和b模n同余,记作a≡b(mod n)。如果a和b被n除后余数不同,那么称a和b模n不同余。 二、同余与整除的关系 设a、b被n除后商分别为q、q',余数分别为r、r',则 a = nq + r b = nq' + r 阅读全文
posted @ 2018-07-22 23:42 Rogn 阅读(2898) 评论(0) 推荐(0) 编辑
摘要:一、题目 n(n < 20)个人站成一圈,逆时针编号为1~n。有两个官员,A从1开始逆时针数,B从n开始顺时针数。在每轮中,官员A数k个停下,官员B数就停下来(注意有可能停在同一个人上)。接下来被选中的一个(或两个人离开)。输出输入格式参见UVa233。 二、解题思路 这是一道简单题,但处理不好很可 阅读全文
posted @ 2018-07-21 20:48 Rogn 阅读(437) 评论(0) 推荐(0) 编辑
摘要:题目: 长度为 n 的环状串有 n 种表示法,分别从某位置开始顺时针得到。在这些表示法中,字典序最小的称为“最小表示”,你的任务是输出该环状串的最小表示。(n <= 100) 解题思路: 枚举n个位置(起始位置),并记录当前字典序最小的位置,总的时间复杂度O(n * n),由于n较小,没问题。 代码 阅读全文
posted @ 2018-07-18 16:28 Rogn 阅读(1644) 评论(0) 推荐(0) 编辑
摘要:一、概述 二分查找是针对有序数列的,对无序数列是无效的,在有序序列中使用二分查找能大大提高查找效率,通常能将时间按复杂度从O(n)降至O(logn)。 二、查找某数的位置(或存在性) 递归: 非递归: 三、查找某数出现的次数 递归: 递归(优化版):如果有序数列中,目标元素占大多数,二分法会退化成逐 阅读全文
posted @ 2018-07-17 22:03 Rogn 阅读(3797) 评论(0) 推荐(2) 编辑
摘要:一、题目 有n根棍子,棍子i的长度为ai。想要从中选出三根棍子,使其构成的三角形的周长最大。请输出最大的周长,如果无法构成三角形,则输出0。 二、解法 1)思路:首先根据长度排序(假设从小到大),贪心的选取(从大到小的遍历)如果与前两根构成三角形,则跳出循环。 正确性:如果一根棍子与前两个都不能构成 阅读全文
posted @ 2018-07-17 10:04 Rogn 阅读(421) 评论(0) 推荐(0) 编辑
摘要:算数基本定理 任何大于1的整数都可以分解成素因数乘积的形式,并且,如果不计分解式中素因数的次序,这种分解式是唯一的 1)证明: 存在性:对于大于1的整数你,如果n不是素数,我们可以将n分解成一个素数和某个大于1的整数a的乘积;如果a是素数,则过程停止,如果a不是素数,又可以将a分解成一个素数和某个大 阅读全文
posted @ 2018-07-16 22:45 Rogn 阅读(1047) 评论(0) 推荐(0) 编辑
摘要:快速幂($m^n$): 快速乘($mn$): 我觉得有必要换掉这个“龟速乘” //不会爆long long 全部组合($C_i^j \% P,1\leq i\leq maxn,0\leq j\leq i$) 部分组合($C_n^0,C_n^1,\cdots,C_n^n$) 单个组合($C_n^m$) 阅读全文
posted @ 2018-07-16 12:30 Rogn 阅读(652) 评论(0) 推荐(0) 编辑
摘要:合适的存图方式往往能事半功倍,这里介绍三种方式:邻接矩阵、邻接表、链式前向星。 邻接矩阵 1)存图思想 用一个矩阵来记录一个图,矩阵第 i 行第 j 列的值就表示顶点 i 到顶点 j 的权值 2 代码实现 3)优点 a.简单易学 b.对已确定的边进行操作效率高:对已确定的边(两顶点已知),进行增加、 阅读全文
posted @ 2018-07-16 10:49 Rogn 阅读(3217) 评论(1) 推荐(3) 编辑
摘要:一、定义 定义:给定两个整数a,b,必有公共的因数,叫做它们的公因数,当a,b不全部为0时,在有限个公因数中最大的那个叫做a、b的最大公因数,记作(a,b) 二、一种方法——辗转相除法 描述:设a,b为任意两个整数,且b不为0,应用带余除法,以b除a,得到商q1,余数r1;如果余数r1不为0,以r1 阅读全文
posted @ 2018-07-15 12:30 Rogn 阅读(1514) 评论(0) 推荐(0) 编辑
摘要:此篇当作自己的笔记(水平太菜,这都一直没搞明白) sort()函数的用法1)sort函数包含在头文件<algroithm>中,还要结合using namespace std2)sort有三个参数第一个是待排数组的起始地址第二个是结束的地址(最后一个要排序的地址的下一地址第三个是排序的方式,可以是从小 阅读全文
posted @ 2018-07-14 22:27 Rogn 阅读(672) 评论(0) 推荐(0) 编辑
摘要:一、题目信息 The - Modcrab 简单翻译一下:Vova有生命值h1,每次攻击值为a1,每瓶药水恢复生命值c1;Modcrab有生命值h2,每次攻击值为a2。在每个关卡开始,Vova有两种选择,要么攻击怪兽Modcrab,要么喝一瓶药水(Modcrab的生命值允许超过h2),然后,如果战斗没 阅读全文
posted @ 2018-07-14 20:56 Rogn 阅读(233) 评论(0) 推荐(0) 编辑
摘要:一、题目引发: Boxing Packing Description: Mishka has got n empty boxes. For every i (1 ≤ i ≤ n), i-th box is a cube with side length ai. Mishka can put a bo 阅读全文
posted @ 2018-07-14 20:21 Rogn 阅读(428) 评论(0) 推荐(0) 编辑
摘要:一、最小生成树问题 什么是最小生成树问题?给你一个带权连通图,需要你删去一些边,使它成为一颗权值最小的树。 二、Prim算法 1)输入:输入一个带权连通图,顶点集合V,边集合E 2)初始化:Vnew={x},x为任意一个顶点,作为起始点,Enew={},为空 3)在集合E中选择权值最小的边<u,v> 阅读全文
posted @ 2018-07-14 13:22 Rogn 阅读(1084) 评论(0) 推荐(0) 编辑