
数论
mig_davidli
稍微明白点算法和C++,参加过几个小项目。。
展开
-
【五边形定则应用2】HDU 4602——Partition
来源:点击打开链接(MU1)发现多校很喜欢考整数划分的问题。与点击打开链接4651一样,用找规律的方式也可以找出来,p(1,k):1 (k从1至n) p(2,k):2,1 p(3,k):5,2,1 p(4,k):12,5,2,1 p(5,k):28,12,5,2,1…… p(n,1)= 2*f(n-1)+2^(n-3) p(n,k)=a_n = 2^(n-1) + (n-2)*2^原创 2013-08-16 09:20:41 · 1027 阅读 · 0 评论 -
【差一点就坑了】SDUT春季高校周赛8(SDUT2038) Problem F——数字游戏
来源:点击打开链接看上去很简单的一道题,可是。。真的很简单吗?找到排序规则,就找到了这个题目的关键..当然没这么简单。。正常人的一反应是按从大到小排。。13 81 99 排完自然就是998113最大了。。发现WA。发现反例1:9 90 6,排完是9096,可正确的是9906。然后暴搜索超时之类的不提。按a+b,a等于b时如何如何的思路想,依然不对,因为都过不了这样的样例。4原创 2013-03-17 19:56:01 · 1048 阅读 · 0 评论 -
【新年新气象_新年优快云第一篇】斯特林数简介及应用
祝大家新年快乐!!下边开始正式介绍:斯特林数(Stirling Number)定义:第一类斯特林数——给出恰包含 m 个圈的 n 个元素 的排列数目. 斯特林数满足母函数关系。 第二类斯特林数——将p个物体划分成k个非空的不可辨别的(可以理解为盒子没有编号)集合的方法数。S(p,k)的递推公式是: S(p,k) = k*S(p-1,k) + S(p-1,k-1)原创 2013-02-10 00:04:59 · 1295 阅读 · 0 评论 -
【腾讯马拉松3月23日】HDU 4525_威威猫系列故事——吃鸡腿
来源:点击打开链接大水题,但是当时怎么也想不起来做的方法了。。或者说错在哪了。公式可以通过从上往下加起来得到:a(n+1)=(k1+k2)*an,但是用__int64的话也是不行的,因为循环调用的时候会有中间数据超过__int64的范围。正解是用double,另外有一个隐含条件是k1,k2都是整数(描述中说了吗 似乎没有= =)。。这样就很容易判断inf了。。#include #in原创 2013-03-31 14:34:22 · 935 阅读 · 0 评论 -
【循环小数性质】HDU 1717——小数化分数2
题目:点击打开链接这个题是个模拟,小数化分数的一般步骤可以看我的上一篇BLOG,无非除以10的位数次方,再约分一下,这个题也是如此。比较复杂的是无限小数的处理。分三种情况:1、纯循环小数2、纯不循环小数3、混合小数这三种的转化各有自己的性质,结论如下(证明过程可以见百度)1、有限小数的话把小数点后面的数除以10(一位数).100(两位数).1000(三位数)等,2原创 2013-02-01 12:12:50 · 1150 阅读 · 0 评论 -
【反正到现场比赛时都会忘掉】斐波那契数列入门及一例题
对我等数学彩笔来说,权当拓宽数论的知识面吧。。估计比赛时什么都不会想到的。。。。ORZ1、斐波那契数列。这个数列很知名,是斐波那契研究兔子的生产规律时的出来的,从表面上来看,F(0)=0,F(1)=1,F(2)=F(0)+F(1)....f(n)=f(n-1)+f(n-2),用脑子推还是很好推的,但是计算机用递归的话就略显拙计,到一百就溢栈崩溃了。于是有个伟大的数学家得到了通项公式,这原创 2013-02-03 22:19:43 · 1183 阅读 · 0 评论 -
【水DP】HDU 1267——下沙的沙子有几粒?
题目链接:点击打开链接相当水的DP,状态方程也很简单:dp(m,n)=dp(m,n-1)+dp(m-1,n),其中mdp的精髓就是状态方程。#include #include using namespace std;__int64 dp[21][21];int main(){ int m,n; while(cin>>m>>n) { memset(dp,0,siz原创 2013-02-19 16:12:27 · 919 阅读 · 0 评论 -
【筛法思想】HDU 1215—— 七夕节
题目来源:点击打开题目链接这个题的意思是,给出一个数,求该数所有因数的和。本来以为是找规律,结果找了半天也没有找到。枚举又显得超时。输入范围中等,10^5,但枚举的次数达到了10^10,显然是不行的。但看了大神的报告,前面的素数筛法其实也是一种思想,排除了明显不可能的情况,利用性质得出结论。1、每个数都有因数1.2、每个数的最大因数都不超过他的1/2。综合以上,我们可以得到成型原创 2013-01-30 22:02:43 · 956 阅读 · 0 评论 -
【别笑】十行代码也是数论!CodeForce 4A—Watermelon
来源:CodeForce 4A,点击打开链接偶数在什么情况下平分,可以拆成两个奇数?答:在2的时候。。。。。。。于是这个题就由纯粹的水题变成了数论的水题,虽然只要十行,ORZ。。#include using namespace std;int main(){ int n; cin>>n; if(n%2==0 && n!=2) cout<<"YES"<<endl; el原创 2012-12-03 12:27:19 · 877 阅读 · 0 评论 -
【模版君第二弹】HDU_1028_最简单的母函数
ok,找了半天,发现这个题是标准的模板……完全数学抽象化了。有了这个模板,更复杂的在思路上的就没问题了。这个也得小心,因为下标不少,一错容易ce,容易WA,容易TLE,总之什么都有可能……#include using namespace std;const int INF=150;int c1[INF+1],c2[INF+1],c3[INF+1];int main(){ int n原创 2012-10-18 20:55:40 · 475 阅读 · 0 评论 -
【硬币君第一弹】HDU_1398_母函数
题目大意:秘银岛上有一些硬币,这些硬币为1,4,9,……17^2的面值,拿某个面值,求解有几种拿法。输入N:2 10 30 0 输出OT:1 4 27典型母函数。数学分析之。公式为n=g(ot)=(1+x+x^2+x^3+...x^n)(1+x^2+x^4+x^6....x^n)(1+x^17.....+x^17n),题目最大原创 2012-10-18 20:36:28 · 642 阅读 · 0 评论 -
【栈与队列】SDUT练习2—数据结构实验之栈一:进制转换
题目:点击打开链接注意:1、进制转换最有效的方法依然是短除法2、empty()由于设计问题,在最后的某些边界情况出现BUG,比如内存错误,所以不要太信赖empty()(这个题可能没问题,其他题不一定),手动判0。3、注意输出格式。#include #include using namespace std;int main(){ stack tar;原创 2013-01-23 10:59:59 · 2270 阅读 · 1 评论 -
【公式题】HDU 4651—— Partition
题目:点击打开链接这个题目来自多校练习5,求整数划分的种类数,二维DP一定超时,一维打表试了试(参考poj上吃蛋糕的题,范围是5000/5S),大于120KB,没法提交。找了半天,当时明明在wiki找到公式了(传说中的五边形数),但是却没有转化好,惨遭wa。链接:点击打开链接#include #include #include using namespace std;原创 2013-08-08 14:57:33 · 1849 阅读 · 1 评论 -
HDU多校练习第一场4608——I_Number
题目:点击打开链接水题一道,刚开始写了一发模拟,后来发现所谓的10^5是个length……果断加了个大数枚举,过了,今天换了个样式重写了个。易于推出,两个数之间的最大差值为20.#include #include #include #include #include #include using namespace std;const int maxn=100001;原创 2013-07-24 09:59:11 · 759 阅读 · 0 评论 -
【优秀数学题】HDU 1302——The Snail
来源:点击打开链接这个题目也不是很复杂。一只蜗牛,白天上升一些,晚上下滑一些,每天会因为没有力气而比上一天少爬,求这个蜗牛几天滑到底或者几天滑到顶。简单模拟即可,如果用数学反而麻烦。另外当这个蜗牛上升比下降还快的时候,其实就已经不行了= =##include #include using namespace std;int main(){ double high,up,down原创 2013-04-23 16:19:50 · 1226 阅读 · 0 评论 -
【大数递推】HDU 1297——Children’s Queue
题目:点击打开链接递推问题实现起来很简单,但得到递推公式确实很麻烦,就像DP一样。分析(部分出自HDU的PPT):设:F(n)表示n个人的合法队列,则:按照最后一个人的性别分析,他要么是男,要么是女,所以可以分两大类讨论: 1、如果n个人的合法队列的最后一个人是男,则对前面n-1个人的队列没有任何限制,他只要站在最后即可,所以,这种情况一共有F(n-1);2、如果n个人原创 2013-02-21 10:52:16 · 1424 阅读 · 2 评论 -
【大数+DP】HDU 1133——Buy the tickets(不用catalan数了)
题目:点击打开链接有一些人手中有100和50的钱,他们来买票,一张票50,电影院初始没零钱可找,只能收若干50的顾客再找给100的,问有多少种合法的找钱方法。方法1:这个题目可以使用组合数学中的Catalan数性质,简略说明一下CATALAN做法:合法的排列方式=所有排列方式-非法排列方式这里非法排列方式的计算 就是:(- )*M!*N!然而在这题,因为每原创 2013-02-19 17:37:54 · 1241 阅读 · 0 评论 -
【再谈阶乘的近似解】HDU 1018——Big Number
题目链接:点击打开链接求某数阶乘的位数。网上比较流行的方法是取对数后硬算,卡时而过,还是有些取巧成分的。正解可能是数论中的斯特林估算阶乘法(来源为WIKI):对这个公式取对数,可以快速得到位数,另外在比赛中进行快速估算也是比较方便的。#include #include #include using namespace std;const double PI=acos(原创 2013-02-19 12:11:39 · 906 阅读 · 0 评论 -
【新年新气象_1】卡特兰(Catalan)数入门及应用
标题表示了一种在春节期间坚持更新BLOG的行为艺术。。下边开始正式介绍:卡特兰数(Catalan Number)定义(第N个卡特兰数用h(n)表示):令h(0)=1,h(1)=1,则catalan数满足关系式:h(n)=h(0)h(n-1)+h(1)h(n-2)+.....+h(n-1)h(0)即h(2)=h(0)h(1)+h(1)h(0)=2h(3)=h(0)h(2)+h原创 2013-02-07 19:16:17 · 913 阅读 · 0 评论 -
【欧拉体积公式及行列式】AC总在数十WA后——POJ 2208
这个题是个公式推导题。已知四面体的六条边,求四面体体积。在计算几何的模板中发现欧拉公式,可以计算任意四面体的体积,知道3个点坐标和3个COS值即可。而题目是知道6条边,所以需要进行推导转化,通过线性代数知识变成行列式(注意输入顺序是AB,AC,AD,BC,BD,CD,这一点挖了十次左右。。另外,推导过程中的matix[2][0]发生了错误,应为:(p^2+r^2-m^2)/2,这一点上WA原创 2012-11-08 20:06:23 · 1271 阅读 · 0 评论 -
【拉灯君第三弹】母函数-HDU1085-泰山下的AC
刚从泰山上下来,就一个感觉,只要步履平稳,不停的小憩,甭管是中天门还是十八盘,都弱爆了。。行百里者半九十的说……日出也就这么回事……36H没睡觉~~~比起模板,稍有变化。拉登君有1分,2分,5分若干,求他最小凑不成的钱数。从这个题中,我终于弄明白了,那两重循环是用来求幂的,C1是第一表达式,C2是第二表达式,数组的值代表了他的下标,c2[I+J]=c1[i]就是把幂的值进行加和,算法毫无问题,原创 2012-10-21 19:46:41 · 1119 阅读 · 1 评论 -
【CodingTrip - 携程编程大赛第一场】1001 聪明的猴子
来源:HDU携程编程大赛初赛第一场聪明的猴子Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 0 Accepted Submission(s): 0Problem Description森林中原创 2014-04-10 21:01:13 · 2172 阅读 · 0 评论