模板
莫愁-前路
这个作者很懒,什么都没留下…
展开
-
巧用n&(n-1)
首先了解一下n&(n-1)的作用:将n的二进制中最右边的1变为0。 举例: n = 10010 (n - 1) = 10001 n & (n - 1) = 10000 利用这一特性,可以一下计算: 求某一个数的二进制表示中1的个数 思路:有二进制中有多少个1,就需要将n的二进制中最右边的1变为0多少次 int count = 0; while (n != 0) { n &= (n-1); count++; } 2、 判断一个数是否是2的方幂 思原创 2020-11-08 23:24:16 · 292 阅读 · 0 评论 -
CCF 20190302 二十四点(表达式求值问题)
思路:表达式求值问题。遇到数字,加入数字栈中;遇到+,将加数加入到栈中;遇到-,将减数的相反数加入栈中;遇到x,让栈顶的数字出栈,与乘数相乘,将结果加入栈中;遇到/,让栈顶的数字出栈,与除数相除,将结果加入栈中;最后将栈中所有元素相加即可。 注意:输入的表达式存储在string中,故要的到数字应用str[i]-'0'。 代码实现: #include<iostream> #...原创 2020-04-10 11:45:00 · 227 阅读 · 0 评论 -
CCF 20150302 数字排序(map按值Value排序)
思路:用map统计每一个数的个数,将map存入vector<pair<int,int> >中,对vector进行排序,自定义cmp函数。这是一个模板,map按值Value排序。原创 2020-04-21 19:40:15 · 147 阅读 · 0 评论 -
CCF 20180902 买菜(求区间重叠长度模板)
思路:本题可简化成已知区间,求区间的重叠长度。已知两个区间[a,b],[c,d],x = min(b,d);y = max(a,c)。if(y-x>0)有重叠区间,区间长度为y-x;else 无重叠区间。类比的可以求矩阵的重叠面积。原创 2020-04-11 17:09:00 · 285 阅读 · 0 评论