摘要: ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。 ForwardIter upper_bound(ForwardIt 阅读全文
posted @ 2018-04-13 19:51 unknownname 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2100 题意:26进制加法 分析:因为给定的两个字符串长度过大,不可能将其转化为十进制相加(会溢出),所以只能采用数组存储每一位的二十六进制数,然后对位相加,逢26向高位进一。 注意:AAAAAA A 相 阅读全文
posted @ 2018-04-09 15:57 unknownname 阅读(74) 评论(0) 推荐(0) 编辑
摘要: C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量 strrchr 在字符串里定位给定字符最后一 阅读全文
posted @ 2018-03-23 15:37 unknownname 阅读(1200) 评论(0) 推荐(0) 编辑
摘要: /*http://poj.org/problem?id=2013*/ 问题描述:重新输出字符串组,两端最短,中间 最长#include <iostream>#include <cstdio>#include <string> using namespace std; const int MAXM = 阅读全文
posted @ 2018-03-07 10:18 unknownname 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 快速幂这个东西比较好理解,但实现起来到不老好办,记了几次老是忘,今天把它系统的总结一下防止忘记。 首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如下: 假设我们要 阅读全文
posted @ 2017-12-11 17:12 unknownname 阅读(446) 评论(0) 推荐(0) 编辑
摘要: C++之substr与substring浅谈 转载 2017年04月19日 13:43:30 标签: <!-- [startarticletags]--> C++ 函数 / <!-- [endarticletags]--> 5679 编辑 删除 转载 2017年04月19日 13:43:30 标签: 阅读全文
posted @ 2017-11-29 23:29 unknownname 阅读(241) 评论(0) 推荐(0) 编辑
摘要: HDU 4768: Flyer 题意: 有N个社团,每个社团三个属性A,B,C,表示会向编号A+k*C的同学发传单(k=0,1,2... && A+k*C <= B)。题目保证最多有一个人收到的传单数是奇数。求如果有人收到传单是奇数,输出编号和他收到的传单数。 思路: 观察最后情况,可以发现,要么每 阅读全文
posted @ 2017-11-27 12:38 unknownname 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 第一种证明: a可以表示成a = kb + r,则r = a mod b 假设d是a 阅读全文
posted @ 2017-11-19 19:02 unknownname 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 欧几里得算法,即辗转相除法求最大公约数 1.循环: int gcd(int a,int b) { if(a < b) swap(a,b); while(a%b != 0) { int t = a%b; a = b; b = t; } return b; } 2.递归: int gcd(int a,i 阅读全文
posted @ 2017-11-19 19:00 unknownname 阅读(118) 评论(0) 推荐(0) 编辑
摘要: /* O(V^3) 案例: 1 2 2 1 3 5 2 3 1 */ #include <cstdio>#include <iostream>using namespace std; const int MAX_V = 100;int d[MAX_V][MAX_V];//d[u][v] 表示边e=( 阅读全文
posted @ 2017-11-16 21:07 unknownname 阅读(68) 评论(0) 推荐(0) 编辑