上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页
摘要: 首先应该有一个常识,int的最大值在2e9左右...... 而一般的OJ,可以认为O(n) 1e8以上就很难跑过了 但是,任何一个不超过2e9的n一定有一个不超过2e5的质因子,我们可以用筛法筛出[L,R]中的质数 注意数组不要越界 #include <iostream> #include <vec 阅读全文
posted @ 2021-11-10 20:34 _vv123 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 首先考虑分解质因数的算法: 在枚举因子时,不停将x除以i直到x不是i的倍数,这样每枚举到一个合数i,x中所有i的因子都已经被除掉了,i不可能成为x的因子。 这样,保证了满足第六行x%i==0的i一定是质因数,顺便统计出了每个质因数的指数。 有一个显然的结论:x中至多有一个大于$\sqrt{x}$的质 阅读全文
posted @ 2021-11-10 18:06 _vv123 阅读(117) 评论(0) 推荐(0) 编辑
摘要: A dd在玩数字游戏,首先他拿到一个x 当x不为零时进行如下操作 如果二进制x中有奇数个1,则x二进制形式下最低位取反(即0变成1,1变成0) 如果二进制x中有偶数个11,则x二进制形式下非前导零最高位取反 询问对于一个x,操作几次后变为零 大力讨论即可 #include <iostream> us 阅读全文
posted @ 2021-11-06 17:37 _vv123 阅读(2329) 评论(0) 推荐(0) 编辑
摘要: 模拟即可( #include <iostream> using namespace std; const int maxn = 2e5 + 10; int n, a[maxn]; int vis[maxn]; int main() { scanf("%d", &n); int l = 1, r = 阅读全文
posted @ 2021-11-05 17:39 _vv123 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 这道题体现了一个重要的思路:当面对一个情况复杂、不知从何下手的问题,而且进行若干操作的结果与它们的顺序无关时,不妨考虑按一定顺序操作,比如一行一行地考虑。 首先,显然每个位置至多操作一次。所以不难得到一个枚举$2^{25}$种情况的算法(逃) 但如果我们考虑一行一行地进行处理: 那么当我们固定(不再 阅读全文
posted @ 2021-11-04 23:32 _vv123 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 最近c语言也刚学指针嘛所以想写写指针链表练练手qaq 首先,链表和数组相比,(那我还是感觉我们数组np(bushi)) 最大的优势在于可以方便地实现“删除”操作,而劣势是随机访问不方便,只适合按照一定的顺序读取。 对于这个问题,我们考察每个数的时候只需要它的前驱和后继,而且考察的区间每次会多一个元素 阅读全文
posted @ 2021-11-01 20:13 _vv123 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 经典老题了 上次做是开一个3n的并查集。 对同类的处理比较平凡。 对X吃Y: 如果发现实际上X连接了模意义下距离为0或2的Y,说明这句话是假的。 顺时针循环连接X与下一块中的Y, 使Y与X在模意义下距离为1。(Y=X++) #include<bits/stdc++.h> using namespac 阅读全文
posted @ 2021-10-29 23:53 _vv123 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题意:输入n个数,选出异或最大的一对 暴力$O(n^{2})$:枚举每一对 优化:把每个数转化成01串插入trie,枚举每个数,在trie中从高位到低位寻找每一位尽量与它不同的字符串,这样时间复杂度就优化到了$O(n)$ #include <bits/stdc++.h> using namespac 阅读全文
posted @ 2021-10-28 00:09 _vv123 阅读(32) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> #include <cstdio> using namespace std; const int maxn = 2e5 + 10; int son[maxn][26], cnt[maxn], idx, n; char op[2], s[maxn]; void 阅读全文
posted @ 2021-10-26 23:05 _vv123 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 题意:求出字符串的最大循环次数,例如abababab是4 我们考虑求next数组时,上下两个字符串不重叠的部分长度为t = len - next[len] 观察重叠部分,则下方字符串的[1,t] = 上方的[t+1,2t], 下方字符串的[t+1,2t] = 上方的[2t+1,3t], ... 如果 阅读全文
posted @ 2021-10-26 12:08 _vv123 阅读(34) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页