摘要:
度娘百科说: 首先, ax+by = gcd(a, b) 这个公式肯定有解 (( •̀∀•́ )她说根据数论中的相关定理可以证明,反正我信了) 所以 ax+by = gcd(a, b) * k 也肯定有解 (废话,把x和y乘k倍就好了) 所以,这个公式我们写作ax+by = d,(gcd(a, b) 阅读全文
摘要:
#include #include #include #include using namespace std; int r(char c) { switch(c) { case '#': return 0; case '(': return 0; case '+': return 1; case '-'... 阅读全文
摘要:
gcd(a, b),就是求a和b的最大公约数 lcm(a, b),就是求a和b的最小公倍数 然后有个公式 a*b = gcd * lcm ( gcd就是gcd(a, b), ( •̀∀•́ ) 简写你懂吗) 解释(不想看就跳过){ 首先,求一个gcd,然后。。。 a / gcd 和 b / gcd 阅读全文
摘要:
0和1都不是素数,也不是合数。 a的b次方怎么求 pow(a, b)是数学头文件math.h里面有的函数 可是它返回值是double类型,数据有精度误差 那就自己写for循环咯 完美 可是题目是b的范围是1 <= b <= 1e9(#°Д°) 超时,妥妥的。。。 看个例子 比如计算 2*2*2*2* 阅读全文
摘要:
https://www.cnblogs.com/linyujun/p/5198832.html 前言:好多学ACM的人都在问我数论的知识(其实我本人分不清数学和数论有什么区别,反正以后有关数学的知识我都扔进数论分类里面好了) 于是我就准备写一个长篇集,把我知道的数论知识和ACM模板都发上来(而且一旦 阅读全文
摘要:
位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作 运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表: 运算符 含义 描述 1.& 按位与 如果两个相应的二进制位都为1,则 阅读全文
摘要:
第一种是不优化的dijiesitela算法,用邻接矩阵输入。 https://blog.csdn.net/qq_38367681/article/details/81178337 https://blog.csdn.net/wang_123_zy/article/details/82497369 前 阅读全文
摘要:
使用并查集查找时,如果查找次数很多,那么使用朴素版的查找方式肯定要超时。比如,有一百万个元素,每次都从第一百万个开始找,这样一次运算就是10^6,如果程序要求查找个一千万次,这样下来就是10^13,肯定要出问题的。 这是朴素查找的代码,适合数据量不大的 int findx(int x) { int 阅读全文
摘要:
遍历所有状态最好用dfs,求最短路用bfs,(无权值,都是一); 要注意满足状态与越界状态。(必要时设标志位) dfs bool judge(){ int k, p, q; for(int i = 0; i < n; i++){ if(b[i] == true) k++; } for(int i = 阅读全文
摘要:
2.lower_bound 在从小到大的排序数组中, lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。 up 阅读全文