随笔分类 -  数学

摘要:线性同余方程的模板题。和青蛙的约会一样。 #include <cstdio> #include <cstring> #define LL long long using namespace std; //A+n*C = B mod 2^k //n*C = B-A mod 2^k LL A,B,C,M 阅读全文
posted @ 2016-01-29 22:53 Helica 阅读(175) 评论(0) 推荐(0)
摘要:从n+m步中挑选min(n,m)步向上走,剩下的就是向下走。 求解n+mCmin(n,m)时,要一边计算一边约分。 #include <cstdio> #include <algorithm> #include <iostream> using namespace std; unsigned int 阅读全文
posted @ 2016-01-29 12:56 Helica 阅读(133) 评论(0) 推荐(0)
摘要:求出给定序列的序号。有一个定理需要知道 具体看这篇博客吧http://blog.csdn.net/lyy289065406/article/details/6648492 #include <cstdio> #include <cstring> #include <algorithm> using 阅读全文
posted @ 2016-01-29 11:17 Helica 阅读(309) 评论(0) 推荐(0)
摘要:1 12 123 1234 把数按照这样的形式拍成一排,给一个序号求出那个序号对应的数。 当出现两位数。三位数时,要麻烦的处理一下。 #include <cstdio> #include <algorithm> #include <cmath> using namespace std; int T, 阅读全文
posted @ 2016-01-29 11:11 Helica 阅读(181) 评论(0) 推荐(0)
摘要:当一个数的二进制表示中,0的个数大于或等于1的个数时,叫做RoundNumber。求从S到F两个数(包含)之间的RoundNumber个数。 这类题一般都是先求出0到N的个数,然后两个相减。 由于题目是考虑二进制中01的个数,当位数固定时,很方便计算。于是从位数方面解决问题。 设N表示成二进制的位数 阅读全文
posted @ 2016-01-29 02:01 Helica 阅读(249) 评论(0) 推荐(0)
摘要:一道很难的奥数题,给出一个数字串,插入加号和等号使之成立。求成立的算式数。我的做法是,先分成两段,中间插入等号 ,再分别求出左右两边可能的值和个数,然后对比,把值相等的情况乘起来,加到最终结果上。求可能值用递归,每次遇到一个数就选择是插入加号还是不插入,不插入加号就把之前维护的值乘以10加上此值,插... 阅读全文
posted @ 2015-09-08 20:30 Helica 阅读(434) 评论(0) 推荐(0)