摘要:
有关拼凑正方形的问题一般都和欧几里德或者扩展欧几里德有关,至少一般会和最大公约数有关【我什么都没说过啊..我没有!我不是!】 https://acm.ecnu.edu.cn/contest/69/problem/A/ 题意:给一个正方形【边长为n】,若干长方形【长为x,宽为y】,问能否拼凑出一个大正 阅读全文
摘要:
逆元(inv) 什么是逆元 当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法: 设c是b的逆元,则有b*c≡1(mod m); 则(a/b)%m = (a/b)*1%m = (a/b)*b*c%m = a*c(mod m); 即a/b的模等于a*b的逆元的模; 阅读全文
摘要:
A/B关于C取模时,A和B很大时(如组合数,那就需要中间取模了,而除法不能直接取模),这时如果C是素数时,可以使用费马小定理:A * mypow(B,C-2) 而B不是很大时,可以利用先乘后除来进行解决 ,如 a=b*x+c 则 a%b==c 而 a*k=b*x*k+c*k 取模之后 (a*k)%( 阅读全文
摘要:
dfs由于每次都要面临若干的选择,所以时常会有一个变量用来标记不同时空的状态,这种变量一般是通过 【变量标记 】 ;dfs(状态1);【变量标记解除】的方式进行的 这里的标记变量其实就是一个时间戳,是一种很基本的时间戳,用于分离不同时空 基本的时间戳用来分离不同时空的状态,而时间戳也可以用于相同时空 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P1338 【题目大意:从1到n的连续自然数,求其逆序对数为m的一个字母序最小的排列。】 最开始的思路是想从逆序对数入手,然后按顺序求出一个个的排列然后找逆序对数==m的那种排列,后来由于我是个蒟蒻...求逆序对数对我来说似 阅读全文
摘要:
求解二元一次方程可以通过使用扩展欧几里德定理解决。 而求解二元二次方程则可以通过变量转化利用枚举的方式进行解决。如(b-a+1)*(a+b)=4000,可以将等式左端一个因子化为另一变量T,然后另一因子转化为含 T 和另一变量的式子,通过枚举 T ,利用另一因子必为整数的前提,来求解符合要求的T,也 阅读全文
摘要:
求单一数字的约数个数可以直接使用唯一分解定理(约数个数=(1+e1)*(1+e2)*...(1+en)) 而求一个区间的数字的约数个数和就不能使用唯一分解定理了进行遍历求值了,尤其是区间范围很大的时候,很容易就TLE了 洛谷P1403https://www.luogu.org/problemnew/ 阅读全文
摘要:
增广路的核心就是引入了反向边,使在进行道路探索选择的时候增加了类似于退路的东西【有一点dp的味道??】 具体操作就是:1、首先使用结构体以及数组链表next[ MAXN ]进行边信息的存储 2、【核心】在存储正向边时,将正向边结构体数组相邻编号的元素存储反向边 【具体操作:如正向边为AA[0],则对 阅读全文
摘要:
1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<iostream> 5 #include<algorithm> 6 #define N 10000 7 using namespace std; 8 int x 阅读全文
摘要:
Twilightgod CUST http://blog.csdn.net/twilightgodAekdycoin FZU http://hi.baidu.com/aekdycoinForeverlin HNU http://hi.baidu.com/forverlin1204/blogMatri 阅读全文