上一页 1 ··· 7 8 9 10 11
2016年8月29日
摘要: 在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。 如果n比较大,那么反复询问你某个元素所在集合,你该怎么做? 如果每次都遍历,那么显然会超时,那么用一些数据结构比如建树什么的,很可 阅读全文
posted @ 2016-08-29 20:51 几缕清风依旧 阅读(461) 评论(0) 推荐(0) 编辑
2016年8月27日
摘要: KMP算法是用来求这类问题:求子串a在字符串b中的个数。 索引:如果我们按照普通方法求这个问题就是一一比较,然后移一位再一一比较,,,这样的结果显示是超时,因此前辈们总结出一种算法,它可以不需要一位一位的移,有时候可以移好多位,这样就可以很快得出答案了。 在这个算法中我们首先要对子串a进行分析,子串 阅读全文
posted @ 2016-08-27 15:41 几缕清风依旧 阅读(281) 评论(0) 推荐(0) 编辑
2016年8月26日
摘要: 欧拉函数,就是欧拉发现的一个关于求素数的的公式,然后我们编个函数实现这个公式。 欧拉发现求小于等于n的正整数中有多少个数与n互质可以用这个公式: euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0 阅读全文
posted @ 2016-08-26 17:01 几缕清风依旧 阅读(964) 评论(0) 推荐(0) 编辑
摘要: 快速幂,其实就是求(a^b)% p,(其中a,b,p都比较大在int范围内)这类问题。 首先要知道取余的公式:(a*b)%p=(a%p*b%p)%p。 那么幂不就是乘机的累积吗,由此给出代码: int fast(int a,int b,int p) { long long a1=a,t=1; whi 阅读全文
posted @ 2016-08-26 14:34 几缕清风依旧 阅读(2844) 评论(0) 推荐(0) 编辑
2016年8月25日
摘要: 以前在acm课上也讲过一些关于背包的题,不过那些比较简单,就是简单的贪心问题,先排个序再处理就完了,而01背包,感觉就是比那个上了一个难度的问题,这个需要遍历然后找其中合适的,简单原理就是这样。 例如:现在有容量为m的背包,还有重量为w,价值为v的k个不同的商品,问怎样买才能使价值最大化? 思路:如 阅读全文
posted @ 2016-08-25 21:42 几缕清风依旧 阅读(288) 评论(0) 推荐(0) 编辑
2016年8月23日
摘要: 在acm课上听陈宇讲过几个搜索题,当时就是照猫画虎,按照他给的代码改改就能过,那个代码比较巧,好记的: int dfs(int i,int j) { if(i<0||i>=n||j<0||j>=m||map[i][j]=='#||v[i][j]==1) //越界或搜索过退出 return 0; v[ 阅读全文
posted @ 2016-08-23 15:07 几缕清风依旧 阅读(497) 评论(0) 推荐(0) 编辑
2016年8月18日
摘要: 1、 set(集合)——包含了经过排序了的数据,这些数据的值(value)必须是唯一的。 也就是说输入set容器后得到数据,会去重并排序。 s.insert()插入一个元素 s.begin() s.end()分别返回首尾指针 s.clear() 清空集合 遍历需要利用迭代器set<类型>::iter 阅读全文
posted @ 2016-08-18 21:25 几缕清风依旧 阅读(1308) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11