数学
zhaofukai
行有不得,反求诸己
展开
-
uva 10014 - Simple calculations
<br />这个题是典型的数学递推题,把求a1的公式算出来,这道题便解决了。<br />由2ai = ai–1 + ai+1 – 2ci,将i = 1,2,3,4……n带入,得:<br /> 2a1 = a0 + a2 - 2c1<br /> 2a2 = a1 + a3 - 2c2<br /> 2a3 = a2 + a4 - 2c3<br /> ………… ……<br /> 2an = an-1 + an+1 - 2cn,<br />然后保留第一个式子i, 并从第一个式子往下加,又得到n原创 2011-02-10 22:05:00 · 1493 阅读 · 0 评论 -
HDU3723 Delta Wave
之前做过一道卡特兰数的题目。但那个题目比较直接,很容易看出是卡特兰数。但这道题目需要自己去观察。 对卡特兰数的了解不要仅仅局限在它的公式上,还要去了解它的各种应用。其中有一个栈的应用:就是说给一个1-n的数列,求其入栈出栈后序列的个数。上图中,如果我们把横线去掉,就是斜线往上往下。我们把斜线往上看做入栈,往下看做出栈,就和卡特兰数栈的应用一样。而其余横线我们可以随便插入,就是一个组合数。想到原创 2012-08-07 23:24:26 · 1078 阅读 · 1 评论 -
10215 - The Largest/Smallest Box ...
这道题10.03%的提交通过率真不是盖的……自己也忽忽悠悠的错了n次…… 这道题乍一看挺简单了,刚开始自己先求出极大值和极小值,然后比较,但老是不对。后来发现最小值在0和min(l/2, w/2)出取得,而不是0和极小值处=_= 但这样还是不对,在四舍五入的时候要加一个eps偏移量。。。。 这样就可以过了 #include #include #include #include us原创 2011-11-02 13:40:22 · 530 阅读 · 0 评论 -
Mathematicians and brackets
<br />这道题的题意我当时真是没怎么读懂,尤其是这一句“A string a is a cyclic shift of a string b if a and b have the same lengths and a consists of some (possibly empty) suffix from b followed by a prefix from b.”。意思是:字符串a是字符串b 的循环移动,当且仅当a包含b的后缀(可能为空),后面跟着b的前缀。例如)((),这就是串b,有四种串a符原创 2011-04-24 11:27:00 · 449 阅读 · 0 评论 -
Fractions to Decimals
这道题题意比较简单,给你一个被除数和除数,求出小数的表示形式,若循环,则把循环节用括号括起来。 用试除法来做,难点在于如何判循环节。若果判商的话,会比较麻烦,但如果判余数则会很简单。因为只要余数相同,则一定会出现循环节。刚开始没想到判余数,就一直没做,后来查了些资料,恍然大悟。在查资料时发现关于循环节许多有意思的结论: 1、循环节的位数一定小于除数,最多也要比除数小1。 这一点很容易理解。因为余数总是比除数小,如果除数是ɑ,余数只能是1,2,3,…,ɑ-1,原创 2011-04-20 23:11:00 · 899 阅读 · 0 评论 -
Electric Fence
这道题求三角形内有多少个格点,应用pick定理。 pick定理:以整点为顶点的简单多边形(任两边不交叉),它内部整点数为i,它的边上(包括顶点)的整点数为b,则它的面积S=i+b/2-1。本题中我们只需求出面积和边上的整点即可。一条线段((m, n)、(p, q))上整点的个数为:gcd(m-p, n-q) + 1,其中,gcd()为最大公约数。相关题目:http://poj.org/p原创 2011-06-11 10:19:00 · 701 阅读 · 0 评论 -
uva 10392 Factoring Large Numbers
<br /> 这道题就是把一个数质因数分解,数据范围是long long,有迷惑性。刚开始想从2到这个数的开方数取余看是否正除来判断质因数,这样肯定超时,然后又想求出sqrt(LONG_LONG_MAX)以内的所有质数,然后再判断,虽然这样判断快,但求素数肯定就超时。<br /> 没有了思路去翻书,先看的素数判定,要用费马小定理和二次探测定理,所实话没怎么看明白,然后又去看整数因数分解,有个Pollard的算法,但写出来后是个死循环,没调出来。<br /> 最后在网上查整数因式原创 2011-02-11 20:59:00 · 905 阅读 · 0 评论 -
uva 10879 Code Refactoring
<br />这个题就是求一个数的四个不相同的因数<br />程序代码:<br />#include<iostream> #include<cstdio> using namespace std; int main() { int n, num, cnt = 1; cin>>n; while(n--){ cin>>num; printf("Case #%d: %d", cnt++, num); for(int i =原创 2011-02-11 20:28:00 · 618 阅读 · 0 评论 -
uva 10110 Light, more light
<br /> 这个题求经过n次开关后,最后第n个灯是亮还是灭。本来想把求n的因数,后来发现,如果n不是开方数,因数为偶数,若是开方数,则因数为奇数,所以这题只需判断n是否为开方数即可。注意n的类型为unsigned<br />程序代码:<br />#include<iostream> #include<cmath> using namespace std; int main() { unsigned int n, middle; while(cin>>n){原创 2011-02-11 20:26:00 · 637 阅读 · 0 评论 -
uva 10719 Quotient Polynomia
<br /> 这个题手动算出p(x)和q(x)系数之间关系,然后就可以模拟求解,有点像高中的解方程。<br />程序代码:<br />#include<iostream> #include<cstdio> #include<string> #include<sstream> using namespace std; string input; int Quotient[1010]; int main() { int k, len, a; //freopen("input.原创 2011-02-11 20:18:00 · 663 阅读 · 0 评论 -
uva 10025 The ? 1 ? 2 ? ... ? n = k problem
<br /> 这个题思路是先求1+2+3+……+n>k的最小n,然后判断1+2+……+n的和减去k是否为偶数,若为偶数,则n即为所求,若不是,则n++重复刚才的判断。把k都当做正数做,它们只差了个符号,在本题没有影响。<br />程序代码:<br />#include<iostream> #include<cmath> using namespace std; int main() { int m, n, num; cin>>m; while(m--){原创 2011-02-11 20:09:00 · 1476 阅读 · 0 评论 -
uva 113 Power of Cryptography
<br /> 这个题做的很无语,刚开始用高精度,二分查找,结果总是TLE。实在没招了,看了解题报告…囧…原来可以用double,原来可以用pow(),以前没这么用过。然后把代码改了,还是WA了2次,精度问题。以后注意用pow(),fabs(),返回值都要强制类型转换,否则很容易出错。代码不贴了,太……原创 2011-02-10 20:34:00 · 600 阅读 · 0 评论 -
Uva 253 - Cube painting
<br /> 这个题是比较两个正方体涂得颜色是否一致。让一个正方体不动,另一个转,总共有6个面,每个面4种情况,一一列举便可求出。<br /> 例如:123456 1和6分别为顶和底不变,绕其顺时针转动可分别得:142536 154326 135246 通过观察发现:旋转实际是在交换数的位置,而且这种交换是有规律的。我们可以同时交换0和5, 1和4, 2和3中的两个,例如交换1和4, 2和3,便得上式中的第二个;也可以交换们其中一个位置,如2和3,然后再交换1和2, 3和4,便得上式中的原创 2011-02-09 21:35:00 · 1769 阅读 · 0 评论 -
Uva 621 - Secret Research
<br /> 这是一个迭代的题,本来思路是从里面的S往外扩,直到把所有的数字都检查一遍,但发现这个题比较特别,只有这四种情况,而且这四种情况都容易区分,所以只需判断它们各自的特征便可以水过。但如果还有第五种情况:不符合上面四种情况的,这样就比较麻烦了。所以这道题想做好,应该是按刚开始的思路模拟<br />程序代码:<br /><br />#include<iostream><br />#include<string><br />using namespace std;<br />string in原创 2011-02-09 19:41:00 · 1009 阅读 · 0 评论 -
ZOJ 2688 Requirements
这道题是求5维下的曼哈顿距离 在2维平面: 设距离最远的两点为i,j,可知所求的最大距离必定有以下四种形式之一: (xi-xj)+(yi-yj), (xj-xi)+(yi-yj),(xi-xj)+(yj-yi), (xj-xi)+(yj-yi) 变形一下,把相同点的坐标放到一起, 即:(xi+yi)-(xj+yj), (-xi+yi)-(-xj+yj), (xi-yi)-(xj-yj)原创 2012-08-07 23:40:44 · 694 阅读 · 0 评论