数论
axiaobingqiu
这个作者很懒,什么都没留下…
展开
-
基础数论。
1.素数筛法第一种 普通筛法o(nlogn)根据合数的定义,可知在搜索一个数为素数的时候,我们就把它的倍数标记成为合数。int n;int prime[maxn],q[maxn];int main(){ ios::sync_with_stdio(false); cin >> n; memset(prime, 0, sizeof(prime)); int tot...原创 2019-02-16 22:00:32 · 168 阅读 · 0 评论 -
度小满:商品贸易
这道题就是一道贪心,要找到最优情况,比如1,2,3,4,5,6,7,8,9.这时就可以直接选取1和9中间的值不会影响。所以就是不断找寻这种情况,来确定最优解;代码如下:#include<bits/stdc++.h>using namespace std;const int maxn = 1e5+10;int n, a[maxn];int main(...原创 2019-05-20 21:43:05 · 184 阅读 · 0 评论 -
如何判断一个数是否为2的幂次方
对于这个问题,有三种方法;但是他们的中心思想都是二进制;方法一:统计该数的二进制中1的个数;如果个数为1就是,否则就不是;方法二:x == x&(-x) 由于x&(-x)返回的是从右到左第一个1所表示的大小;对于110010000 返回的就是 10000;所以可以用来判断;方法三:x&(x-1)==0 举个例子:1000 它减1变成 0111 与运算得0 所以是...原创 2019-05-21 20:17:45 · 7444 阅读 · 0 评论 -
给定一个字符串求出最长重复子串
主要是使用到了二分的思想,知道字符串就是知道了它的长度,然后可知len_max = s.length()/2;然后暴力枚举就可以得出答案;代码如下:#include <iostream>#include <cstdio>#include <cstring>using namespace std;int test(){ string s, t...原创 2019-05-21 20:28:45 · 2847 阅读 · 0 评论