![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 69
Puya
人生不设限 没有不可能
展开
-
位运算【基本运算】
上一篇中我们分析了位的定义,这一篇中我们分析一下位的基本运算 1. 移动 左移n位:乘以2的n次方 右移n位:除以2的n次方 (~0)左移n位:在1后面加上n个0 (注:~0不等于1,等于11…11) x&(~0 正数左移右边补0 正数右移左边补0 负数左移右边补1 负数右移左边补1 移动的作用总结:乘2,除2,右n位清零 2. 异或 x^0=x x^原创 2016-09-16 11:18:26 · 308 阅读 · 0 评论 -
位运算【20个技巧】
一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我觉得在一转载 2016-09-16 11:20:48 · 355 阅读 · 0 评论 -
C/C++位运算技巧
预备知识 对于位运算,大家都很熟悉,基本的位操作有与、或、非、异或等等。在面试中经常会出现位运算相关的题,所以我就做了简单的整理,参考了很多写的很好的博客及书籍。 现在简单说一下,移位运算。 左移运算:x 右移运算:x >> y。将x右移y位,这需要区分x是有符号数还是无符号数。在x是无符号数时,只需将x的最右边的y位丢弃,在左边补上y个0。在x是有符号数时,又分为x是正转载 2016-09-16 13:52:18 · 268 阅读 · 0 评论 -
C++标准模板库函数sort
复杂度:n*log2(n) 头文件: 条件:已知开始和结束的地址即可进行排序 可用于比较任何容器(必须满足随机迭代器),任何元素,任何条件,执行速度一般比qsort要快。另外,sort()是类属函数。 char ch[20]="sdasdacsdasdas"; coutendl; sort(ch,ch+14); cout 注意:默认的排序方式是升序,缺升序排序原创 2016-08-13 11:02:30 · 502 阅读 · 0 评论 -
c++易忘简单知识点
1. 辗转相除法(求最小公约数&&公倍数) int f(int n,int m) { int r; if(n>m)swap(n,m);//使n为最小 while(n!=0) { r=m%n; m=n; n=r; } return m;//返回最小公约数 } 2. 冒泡法(排序) 降序: for(int i=0;i<10-1;i++)原创 2016-05-18 17:25:04 · 378 阅读 · 0 评论 -
各种排序算法总结和比较
各种排序算法总结和比较 排序算法可以说是一项基本功,解决实际问题中经常遇到,针对实际数据的特点选择合适的排序算法可以使程序获得更高的效率,有时候排序的稳定性还是实际问题中必须考虑的,这篇博客对常见的排序算法进行整理,包括:插入排序、选择排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、二叉树排序、计数排序、桶排序、基数排序。 代码转载 2016-09-18 22:16:05 · 1452 阅读 · 0 评论 -
【模板】快速区间素数计数
/* ******************* ******************* CSU 1812 三角形和矩形 ******************* ******************* */ #include #include #include #include #include #include #include #include #include using na原创 2016-09-20 21:52:52 · 392 阅读 · 0 评论 -
欧几里德与扩展欧几里德算法
1.欧几里德算法 int gcd(int x,int y) { return y?gcd(y,x%y):x; }(注:不用比较大小) 2.扩展欧几里德算法 定理:对于任意整数a,b,都存在一组整数x、y使得ax+by=gcd(a,b)成立 (当且仅当gcd(a,b)|c时,方程有整数解) int exgcd(int a,int b,int &x,int &y) { if原创 2017-01-24 16:15:52 · 253 阅读 · 0 评论 -
【一些链接】
1.打印图形原创 2017-03-04 20:14:17 · 266 阅读 · 0 评论 -
JAVA——BigInteger
JAVA之BigInteger 用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂。用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的来处理。下面是写的一些Java中一些基本的函数的及其…… 头文件:import java.io.*; import java.util.*; imp转载 2017-03-14 22:51:13 · 299 阅读 · 0 评论 -
2017程序设计竞赛 - 女生专场【记录】
去年作为大一的菜鸡做了两个题。。。连dfs都没写出来,本来以为今年可以和大神组队,结果今年和两个小学妹组队,所以刚开始目标定的也不高,只求不打铁,结果发挥超常总排名33(减去5个打星的28)差三名就银(后来看了下榜单,发现如果当时我a题不卡,后面相信自己,不急着交的话,还是可以拿银的)。 贴下图片:(中间是爸爸) 其实刚开始挺绝望的,原创 2017-05-07 22:38:13 · 924 阅读 · 1 评论 -
【模板】两多边形交并面积模板
/* ******************* ******************* CSU 1812 三角形和矩形 ******************* ******************* */ #include #include #include #include #include #include #include #include #include #include原创 2016-09-04 15:34:37 · 384 阅读 · 0 评论 -
线段树【转载】
HH神的线段树出神入化,所以跟着HH学习线段树。 风格: maxn是题目给的最大区间,而节点数要开4倍,确切的说…… lson和rson辨别表示结点的左孩子和右孩子。 PushUp(int rt)是把当前结点的信息更新到父节点 PushDown(int rt)是把当前结点的信息更新给孩子结点。 rt表示当前子树的根(root),也就是当前所在的结点。转载 2016-09-04 00:53:47 · 274 阅读 · 0 评论 -
【模板】c++ 大数模板
1. s1+s2 string sum(string s1,string s2) { if(s1.length()<s2.length()) { string temp=s1; s1=s2; s2=temp; } int i,j; for(i=s1.length()-1,j=s2.length()-1;i>=0;i--,j--) { s1[i]=char原创 2016-04-24 22:15:39 · 483 阅读 · 0 评论 -
指针???
1.指针的概念原创 2016-06-20 22:39:35 · 194 阅读 · 0 评论 -
【模板】快速幂
1. a^b%c的快速幂 int quickpow(int a, int b, int c) { int res, t; res = 1 % c; t = a % c; while (b) { if (b & 1) { res = res * t % c; }原创 2016-05-05 17:52:02 · 410 阅读 · 1 评论 -
【约瑟夫环—数学策略】
关于约瑟夫环问题,无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有办法在短时间内出结果的。我们注意到原问题仅仅是要求出最后的胜利者的序号,而不是要读者模拟整个过程。因此如果要追求效率,就要打破常规,实施一点数学策略。 为了讨论方便,先把问题稍微改变一下,并不影响原意:转载 2016-08-19 15:23:01 · 294 阅读 · 0 评论 -
【模板】约瑟夫环
n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。 #include int main() { int n, m, i, s = 0; scanf("%d%d", &n, &m); for (i = 2; i <= n; i++) { s = (s + m) % i; }原创 2016-08-19 16:05:38 · 476 阅读 · 0 评论 -
【理解矩阵】
推荐: 理解矩阵【一】 理解矩阵【二】 理解矩阵【三】原创 2016-08-20 14:30:11 · 404 阅读 · 0 评论 -
【入门】矩阵乘法
转自:阮一峰的网络日志 大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。 刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。 矩阵减法也类似。 矩阵乘以一个常数,就是所有位置都乘以这个数。 但是,等到矩阵乘以矩阵的时候,一切就不一样了。 这个结果是怎么算出来的? 教科书告诉你,计算规则是,第一个转载 2016-08-20 14:18:47 · 429 阅读 · 0 评论 -
【模板】SPFA
1.BFS /* ******************* ******************* HDU 2544 最短路 ******************* ******************* */ #include #include #include #include #include #include #include #include #include u原创 2016-08-20 20:48:12 · 259 阅读 · 0 评论 -
动态规划解——有向图中的最长路径 【转载】
转自:http://www.cnblogs.com/yanlingyin/archive/2011/11/12/2246716.html 动态规划博大精深,想完全掌握是很难的,不过我们可以从一些简单的例子之中去体会她的奥妙。 不说废话、先来一个简单的例子吧: longest path in DAG Problem: Given a weighted directed acy转载 2016-09-03 17:04:23 · 1155 阅读 · 0 评论 -
斐波那契数列解法
斐波那契数列传说起源于一对非常会生的兔子。定义: 这个数列有很多奇妙的性质(比如 F(n+1)/F(n) 的极限是黄金分割率) 解法一:递归 这是最最最直观的想法,是每个人都能编写的简单程序,优点是非常明显的:简单易懂,清晰明了。但是缺点就是效率非常低,时间复杂度是指数级的。举个例子,比如要计算F(5),那么就要就算F(4)+F(3),而在计算F(4)的时候又要计算F原创 2016-09-12 21:18:34 · 697 阅读 · 0 评论 -
【推荐】算法详解
1.并查集详解原创 2016-05-16 21:17:45 · 626 阅读 · 0 评论