040-数论
蒝味
这个作者很懒,什么都没留下…
展开
-
约瑟夫问题的数学解法
转载来源:http://www.cnblogs.com/programming-tips/看到这个想起了去年的省赛上,我们就是被一个约瑟夫问题的变种搞的几乎发狂了,一直是WA,出了赛场才发现并不是真正的约瑟夫问题。对于约瑟夫问题,今天看到了一篇好帖子,是用数学方法处理的,感觉还不错的无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高原创 2012-12-05 20:18:09 · 611 阅读 · 0 评论 -
hdu-1394-逆序数
又有一段时间没怎么写博客了。是不是连这么点时间也要节约。。额。。所谓的逆序数就是前面的数比后面的要大,在一个排列中,所有逆序数的总和就是这个排序的逆序数比如: 2 3 4 1,逆序数有 21,,31,41,所以逆序数就是3关键是怎么求出n个数的逆序数:1.先求出中的逆序数2.每次把最后面的往前调,逆序数减少 n - 1 - a[i], 增加 a[i];详见代码:原创 2013-04-05 10:16:49 · 1107 阅读 · 0 评论 -
n的阶乘最后一个非0的数
哈哈~要说这个题目,中午比赛的时候1AC了、、归功于之前写过的求大数的阶乘这个算法啊。。在电脑上调试了一会,发现求阶乘的过程是一段段输出的。。就比如说10的阶乘,先输出362,然后8800,知道了这点,那么求n的阶乘最后一个非0的数就变得很简单了。。只要加个while判断一下,就ok了、、#include#include#include#includeusing name原创 2013-04-05 16:48:42 · 8171 阅读 · 7 评论 -
poj - 2833- The Average
题目意思: 去掉前面n1 个最高分,去掉后面n2 个最低分,求平均分由于数据比较大,直接排序sort。。会超时的。。就用原始的方法吧。。#include #include #include using namespace std;#define INF 1000000005int Min[11];int Max[11];void init () { memset(Max原创 2013-04-05 22:38:11 · 1138 阅读 · 0 评论 -
排列组合的写法
:C(,n m)不超时的:#include #include #include #include #include #include #include #include #include #define setbit(x,y) x|=(1<<(y)) //将X的第Y位置1#define clrbit(x,y) x&=~(1<<(y)) //将X的第Y位清0#define原创 2013-03-22 22:19:03 · 2995 阅读 · 0 评论 -
CodeForces 248B - Chilly Willy - 找规律
Chilly Willy loves playing with numbers. He only knows prime numbers that are digits yet. These numbers are 2, 3, 5 and 7. But Willy grew rather bored of such numbers, so he came up with a few games原创 2013-04-22 23:43:46 · 1303 阅读 · 0 评论 -
poj 3070-Fibonacci-矩阵幂乘
FibonacciTime Limit: 1000msMemory Limit: 65536KBThis problem will be judged on PKU. Original ID: 307064-bit integer IO format: %lld Java class name: MainPrev Submit Status Sta原创 2013-04-30 19:40:47 · 1756 阅读 · 0 评论 -
乘法与位数
题目意思:给你一个数,然后转化成相应进制的数,算出阶乘以后,求阶乘的位数阶乘的位数我们这么来算:例如1000的阶乘log10(1) + log10(2) + ...+log10(1000) 取整后加1然后转化成进制的话就是: 除以log10(base) 后加1题目:A - Digits of FactorialTime Limit:2000MS Memo原创 2013-05-18 23:44:33 · 835 阅读 · 0 评论 -
ZOJ 3693-进位
H - Happy Great BGTime Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmit Status Practice ZOJ 3693DescriptionThe summer training of ZJU ICPC in July is abo原创 2013-05-11 10:31:43 · 1427 阅读 · 0 评论 -
UVA 10006
题目意思:快速幂求摸。。。。G - Carmichael NumbersTime Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %lluSubmit Status Practice UVA 10006Description Carmi原创 2013-05-12 09:04:01 · 1540 阅读 · 0 评论 -
判断一个字符是不是数字
判断一个字符是不是数字,也就是从字符串中提取字符串通过isdigit()函数来运算:其功能的实现见代码:#include #include #include #include #include #include #include #include using namespace std;string str;int main () { while (cin >原创 2013-05-12 10:18:55 · 1103 阅读 · 0 评论 -
poj 2506-计算方格摆放的方法数
D - TilingTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionIn how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles?原创 2013-06-12 19:29:37 · 1127 阅读 · 0 评论 -
杭电第五场多校联系-整数划分-五边形定理
记录一下。五边形定理很强大,这题数据要求100000,用dp肯定是超时的。代码:#include #include #include using namespace std;#define LL long longLL p[100005];int T,n,t;int main() { p[0] = 1; p[1] = 1; p[2] = 2; for (原创 2013-08-08 18:59:15 · 1024 阅读 · 0 评论 -
uva 11426-欧拉函数
Problem JGCD Extreme (II)Input: Standard InputOutput: Standard Output Given the value of N, you will have to find the value of G. The definition of G is given below:原创 2013-03-16 21:43:55 · 831 阅读 · 0 评论 -
uva 10341-Solve It 二分求值
Problem FSolve ItInput: standard inputOutput: standard outputTime Limit: 1 secondMemory Limit: 32 MBSolve the equation: p*e-x + q*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0原创 2013-03-16 21:49:00 · 656 阅读 · 0 评论 -
poj 3175(根据给出的小数部分求最小的整数)
枚举:如果 x.123... 这个数字的平方是一个整数的话,那必然sqr(x.124) > ceil(sqr(x.123)) [sqr = 求平方, ceil = 向上取整]所以,就可以从小到大枚举它的整数部分 x ,遇到第一个满足结果的 x,就是答案了。 代码: #include #include double A, P, B;int L; _原创 2012-12-08 20:19:43 · 968 阅读 · 0 评论 -
poj 2661(关于对数log的应用)
题目链接:http://poj.org/problem?id=2661利用:2^nn代码:#include #include #include #include #include #include #include using namespace std;int find(int n){ double t=pow((double)2,(n-1原创 2012-12-09 09:39:23 · 852 阅读 · 0 评论 -
poj 3372(判断是不是2的指数)
Candy DistributionTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5145 Accepted: 2811DescriptionN children standing in circle who are numbered 1 throu原创 2012-12-27 22:22:24 · 686 阅读 · 0 评论 -
hdu 1019最小公倍数
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1019题目解析:用以前的方法调用最小公倍数,结果超时,而且这题也不适合用数组做,那就用循环解决吧!代码:#include#include#include#include#include#include#includeusing namespace std;int原创 2012-10-21 10:43:15 · 462 阅读 · 0 评论 -
codefores 13A(进制数和最大公约数)
C - NumbersCrawling in process...Crawling failedTime Limit:1000MSMemory Limit:65536KB64bit IO Format:%I64d & %I64uSubmitStatusDescriptionLittle Petya likes numbers a lot. He foun原创 2012-12-18 23:24:12 · 635 阅读 · 0 评论 -
poj 2282-数位DP
求出两数之间0~9的个数代码:#include#include#include#include#include#include #include#includeusing namespace std;#define sf scanf#define pf printf#define INF 1<<29#define lint __int64#define clr(x原创 2013-02-19 10:13:47 · 725 阅读 · 0 评论 -
hdu 1395-2^x mod n = 1-易超时
一不小心就超时了。、代码:#include#include#include#include#include#include #include#includeusing namespace std;#define sf scanf#define pf printf#define INF 1<<29#define lint __int64#define clr(x)原创 2013-02-19 20:23:39 · 493 阅读 · 0 评论 -
poj 3286-数位DP
How many 0‘s?数位DP,统计两个数之间0的个数--代码:#include#include#include#include#include#include #include#includeusing namespace std;#define sf scanf#define pf printf#define INF 1<<29#原创 2013-02-19 09:49:19 · 749 阅读 · 0 评论 -
poj3273-Monthly Expense典型的二分题目
要把n个数分成m份,使得得到的m份中的最大值尽可能的小;二分:其上界r是n个数的和(相当于把n个数分成1份),下界l是n个数中的最大值,那么取mid=(l+r)/2,进行二分;用tp计数mid遍历n个数后,大于sum的值。具体的代码:#include#include#include#include#include#include #include#includeusing原创 2013-02-21 09:34:46 · 516 阅读 · 0 评论 -
Uva 11538-Chess queue象棋中的皇后
详细的介绍参考刘汝佳106页……代码:#include#include#include#include#include#include #include#includeusing namespace std;#define sf scanf#define pf printf#define INF 1<<29#define eps 1e-6原创 2013-02-20 21:09:27 · 454 阅读 · 0 评论 -
poj 1455-Crazy tea Party-类似冒泡排序
如果所有人是线性排列,那我们的工作就是类似冒泡程序做的工作:1,2,3,4,5变为5,4,3,2,1 ,耗时n(n-1)/2但是出现了环,也就是说1,2,3,4,5变为3,2,1,5,4也可满足条件 我们可以把这个环等分成两个部分 ,每个部分看成是线性的,再把它们花的时间加起来.当n是偶数时, 每份人数n/2 ,即 2*(n/2 )*(n/2 -1)/2;当n是奇数时,两份的人数原创 2013-03-14 18:26:00 · 1385 阅读 · 0 评论 -
uva 11021-Tribbles-全概率
Problem ATribblesInput: Standard InputOutput: Standard OutputGRAVITATION, n."The tendency of all bodies to approach one another with a strengthproportion to the quantity of matte原创 2013-03-17 11:50:16 · 894 阅读 · 0 评论 -
N个点求最大的四边形面积
codeforces 340B Maximal Area Quadrilateral(叉积)参考博客:http://www.cnblogs.com/zstu-abc/archive/2013/08/31/3293327.html题意:平面上n个点(n分析:1、第一思路是枚举四个点,以O(n4)的算法妥妥超时。2、以下思路源自官方题解 以原创 2013-08-31 20:59:01 · 4327 阅读 · 0 评论