随笔分类 -  数论

摘要:vjudge 上题目链接:uva 11728 其实是个数论水题,直接打表就行: 1 #include 2 #include 3 using namespace std; 4 5 int ans[1003]; 6 inline void init(int n = 1000) { 7 f... 阅读全文
posted @ 2015-08-08 11:49 Newdawn_ALM 阅读(220) 评论(0) 推荐(0) 编辑
摘要:vjudge上题目链接:Huge Mods 附上截图: 题意不难理解,因为指数的范围太大,所以我就想是不是需要用求幂大法: AB % C = AB % phi(C) + phi(C)% C ( B > phi(C) ) 呢?后来发现确实需要用到,而且因为它有很多重指数,所以需要 dfs,深搜... 阅读全文
posted @ 2015-08-01 13:11 Newdawn_ALM 阅读(295) 评论(0) 推荐(0) 编辑
摘要:在期末被各科的大作业碾压快要窒息之际,百忙之中抽空上牛客网逛了逛,无意中发现一道好题,NowCoder猜想,题意很明显,就是个简单的素数筛法,但竟然超内存了,我晕(+﹏+)~ 明明有 3 万多 k 的空间限制……于是我不打表,试了试最暴力的做法,赤裸裸的做法果然超时了,无奈,只好对素数筛法进行位... 阅读全文
posted @ 2015-07-04 17:27 Newdawn_ALM 阅读(444) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 4965,题目大意:给你一个 n*k 的矩阵 A 和一个 k*n 的矩阵 B,定义矩阵 C= A*B,然后矩阵 M= C^(n*n),矩阵中一切元素皆 mod 6,最后求出 M 中所有元素的和。题意很明确了,便赶紧敲了个矩阵快速幂的模板(因为编程的基本功不够还是调试了很久),然... 阅读全文
posted @ 2015-04-03 20:27 Newdawn_ALM 阅读(216) 评论(0) 推荐(0) 编辑
摘要:数论题,本想用中国剩余定理,可是取模的数之间不一定互质,用不了,看到网上有篇文章写得很好的:数论——中国剩余定理(互质与非互质),主要是采用合并方程的思想: 大致理解并参考他的代码后便去试试hdu上这道题,可还是wa了数遍。 1 #include 2 #define scd(x) scan... 阅读全文
posted @ 2015-03-25 10:21 Newdawn_ALM 阅读(221) 评论(0) 推荐(0) 编辑
摘要:题目链接:F: 我是好人,题目大意:给你两个数 n 和 m,问你有多少对正整数对最大公约数是n,最小公倍数是m。 因为1 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #inclu... 阅读全文
posted @ 2015-03-17 20:50 Newdawn_ALM 阅读(218) 评论(2) 推荐(0) 编辑
摘要:一开始找矩阵快速幂的题来做时就看到了这题,题意就是让你求出如图所示的第n个三角形中指向向上的小三角形个数。从图中已经很容易看出递推关系了,我们以f[n]表示第n个大三角形中upward的小三角形个数,g[n]表示第n个大三角形中downward的小三角形个数,然后,递推关系就是: f[n]= ... 阅读全文
posted @ 2014-12-19 13:13 Newdawn_ALM 阅读(394) 评论(0) 推荐(0) 编辑
摘要:这道题其实也是水题来的,求Fibonacci数的前4位和后4位,在n==40这里分界开。后4位不难求,因为n达到了10^18的规模,所以只能用矩阵快速幂来求了,但在输出后4位的时候一定要注意前导0的处理(我就是在这里wa了一发,也是看了看别人的代码才发现的)。 前4位的话稍微有点难处理,我一开... 阅读全文
posted @ 2014-11-30 14:58 Newdawn_ALM 阅读(144) 评论(0) 推荐(0) 编辑
摘要:昨晚搞的第二道矩阵快速幂,一开始我还想直接套个矩阵上去(原谅哥模板题做多了),后来看清楚题意后觉得有点像之前做的数位dp的水题,于是就用数位dp的方法去分析,推了好一会总算推出它的递推关系式了(还是菜鸟,对dp还是很不熟练): dp[i][0/1]表示以0/1开头的不含101且不含111的i位... 阅读全文
posted @ 2014-11-30 12:39 Newdawn_ALM 阅读(179) 评论(0) 推荐(0) 编辑
摘要:这题自己一开始硬是不会处理√6 前面的系数,直到看了别人的博客后才知道是怎么解得,不多说,先付上一张图: 推出这个关系后,就很容易了。 1 #include 2 #include 3 typedef long long LL; 4 const int mod= 1024; 5 6 struc... 阅读全文
posted @ 2014-11-29 22:33 Newdawn_ALM 阅读(194) 评论(0) 推荐(0) 编辑
摘要:题目的大意就是求等差数列对应的Fibonacci数值的和,容易知道Fibonacci对应的矩阵为[1,1,1,0],因为题目中f[0]=0,f[1]=1,所以推出最后结果f[n]=(A^n-1).a,所以 f(g(i))= f(k*i+b)= (A^(k*i+b-1)).a,i从 0取到 n-1... 阅读全文
posted @ 2014-11-21 09:06 Newdawn_ALM 阅读(196) 评论(0) 推荐(0) 编辑
摘要:今早水出的第一道题,带着情绪做的,竟然1Y了,确实惊奇。这道简单的线性递推取模,直接递推是不行的,因为n的规模达到了100,000,000,要么超时要么超内存。可以用矩阵快速幂来搞,根据题意构建出对应的矩阵后即可(第一次写的,用结构体来进行矩阵相乘运算),代码如下: 1 #include 2... 阅读全文
posted @ 2014-10-18 16:10 Newdawn_ALM 阅读(189) 评论(0) 推荐(0) 编辑
摘要:今天做的第二道矩阵快速幂题,因为是初次接触,各种奇葩错误整整调试了一下午。废话不说,入正题。该题应该属于矩阵快速幂的裸题了吧,知道快速幂原理(二进制迭代法,非递归版)后,剩下的只是处理矩阵乘法的功夫了,我直接用个结构体来表示矩阵,确实能省去不少功夫(这里一定要注意用单位矩阵来初次相乘,但不要把它... 阅读全文
posted @ 2014-10-18 15:38 Newdawn_ALM 阅读(293) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示