自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AcToy

Where there is a will there is a way

  • 博客(174)
  • 收藏
  • 关注

原创 Uva10106 - Product

求两个大数的乘积#include #include #include #include #include const int maxn = 505;using namespace std;struct bign{ int len, s[maxn]; bign() { memset(s, 0, sizeof(s)); len = 1; }

2013-10-28 12:30:03 606

原创 Uva424 - Integer Inquiry

#include #include #include #include using namespace std;const int maxn = 10005;struct bign { int len, s[maxn]; bign() { len = 0; memset(s, 0, sizeof(s)); s[0] = 0; } bign operator

2013-10-28 12:16:19 543

原创 UVa 11524 - In-Circle

不需要算法,几何计算题。方法如同Ac_coral http://www.cnblogs.com/Accoral/p/3142038.html/************************************************************************* > File Name: UVa11524.cpp > Author: AcToy > Mail:

2013-07-20 09:56:11 702

原创 UVa 11817 - Tunnelling the Earth

将平面上的亮点坐标转化成空间坐标,为球面上的两点。求所对应的弧长与弦长的差值,转化为空间坐标的函数为double torad(double deg) { return deg / 180 * M_PI;}void get_coord(double lat, double lng, double& x, double& y, double& z) { lat = torad(lat)

2013-07-19 20:08:34 631

原创 UVa 11646 - Athletics Track

在圆中有个矩形,知道长:宽 = a : b。设一值x,这样我们可以求出圆半径R,2*R*x = sqrt(a*x*a*x +b*x*b*x),x可化简没,sin(ang1)= b / 2R,矩形对角划分的一个角,画出图来就会知道是那个角了,这个我可以求出圆弧所对应的圆心角为 ang = 2 * ang1 。所以200 = a * x + R * x *ang,可以求出x,这样长为a * x, 宽为

2013-07-19 18:39:27 811

原创 UVa 11800 - Determine the Shape

计算几何入门题,直接模拟即可,这个题关键是判断四个点的位置,我的方法如下:if(SegmentProperIntersection(z[1],z[2], z[3], z[4])) A = z[1], D = z[2], C = z[3], B = z[4], flag = 1; else if(SegmentProperIntersection(z[1], z[3], z[2], z[

2013-07-19 12:02:58 695

原创 UVa 11437 - Triangle Fun

入门题,给了A,B,C三点的坐标,通过参数方程可以求得,在BC上点的坐标 p = B + ( C - B ) t , 因为D是三等分点,所以t = 1 / 3. 可以求得D = 2 / 3 * B + 1 / 3 * C,同理可以求得E,F。这样就可以求得点P, Q, R三点的坐标。例如求P点坐标方法如下Point GetLineIntersection(Point p, Vector v

2013-07-18 19:42:18 525

原创 UVa 11178 - Morley's Theorem

例题,全是模板,知道了怎么计算,就可以做出来,只是Rotate()函数要注意的是,弧度rad为正时逆时针旋转,为负时顺时针旋转/************************************************************************* > File Name: UVa11178.cpp > Author: AcToy > Mail: ycsgldy

2013-07-18 16:56:39 547

原创 poj2096 - Collecting Bugs

http://poj.org/problem?id=2096深深的被这个题给坑了,题意叙述的就比较麻烦。最纠结的是在输出的时候用%.4lf就是WA,用%.4f就AC了,不明白什么原因。题意:给n个bug,s个子系统,某人一天会发现一个bug,这个bug属于某种类型的bug,发生在某个子系统上,这样dp[i][j]表示的是j个子系统中找到了i个bug,这样概率应该为i / n * j /

2013-07-18 13:59:03 979

原创 UVa11584-Partitioning by Palindromes

http://uva.onlinejudge.org/external/115/11584.html将所给的字符串,最少可以分成多少个回文串,dp[i]表示0~i之间最少可以分成的值,然后判断j~i(j /************************************************************************* > File Name: UVa11

2013-07-18 10:23:34 622

原创 hdoj4405-Aeroplane chess

求期望值,体重说明,如果可以flight的话就直接到达规定那个点,用f数组将两个点连在一起就可以,反之,就要求打骰子后的期望啦,e[i] =∑(e[i + k] * 1 / 6) + 1(k为点数1~6,1/6为致筛子的概率,因为不可以flight就要置一次筛子,所以+1)。/*********************************************************

2013-07-17 15:35:12 577

原创 hdu3853-LOOPS

接触的第一道概率dp,这个题和以前做的唯一区别就是加了一个概率,但是也是参照了别人的思路做出来的。dp[i][j]表示在第i,j格子所期望的。p[i][j][0], p[i][j][1], p[i][j][2]分别表示三种传送的概率。dp[i][j] = p[i][j][0] * dp[i][j] + p[i][j][1] * dp[i][j + 1]  + p[i][j][2] * dp

2013-07-17 09:38:27 696

原创 NOI2004 - 郁闷的出纳员

就是维护一个有序的序列,对这个序列进行插入,删除,加和,查找第k大的数值,但值得注意的是,在插入的时候,如果他的工资起始就比工资下届底就不需要插入了,这表示他每到公司,也不算离开。删除的时候也要判断下,ss是否是起始的节点,如果是的话同样也不需要删除的操作/*****************************************************************

2013-07-16 15:21:41 560

原创 HNOI2002 - 营业额统计

找出比num小的最大数和比num大的最小数,然后计算差值和最小。只是两个查找的过程,和插入的过程,结果在控制a, b的位置wa了N次,/************************************************************************* > File Name: HNOI2002.cpp > Author: Ac_Toy >

2013-07-16 14:19:56 659

原创 poj3481-Double Queue

根据优先值的大小,输出它所对应的节点,在建树的过程中,再加一个kk变量,找到优先值p的位置,输出kk即可/************************************************************************* > File Name: 3481.cpp > Author: Ac_Toy > Mail: ycsgldy@163.

2013-07-16 11:45:36 755

原创 HNOI2004-宠物收养所

/************************************************************************* > File Name: hysbz1208.cpp > Author: Ac_Toy > Mail: [email protected] > Created Time: 2013年06月21日 星期五 06时48分17

2013-07-16 11:37:43 1575

原创 UVa 10539 - Almost Prime Numbers

求low~high之间有多少个质数分解后由一个素数组成,将10^6内的素数全部打出来,然后枚举每个素数的n(n > 2 )次幂在low和high之间个数的和。/************************************************************************* > File Name: 10539.cpp > Author: Toy

2013-06-10 08:55:53 1208

原创 UVa 382 -Perfection

求num的所有因子的和tmp(不包括num),tmp和num的大小关系输出不同的结果。tmp==num  输出 PERFECTtmp>num     输出ABUNDANTtmp/************************************************************************* > File Name: 382.cpp

2013-06-09 21:31:47 712

原创 UVa 160 -Factors and Factorials

就是求num!中对从2开始的每个素数的指数幂是多少,然后输出指数。注意输出格式/************************************************************************* > File Name: 160.cpp > Author: Toy > Mail: [email protected] > Create

2013-06-09 21:01:38 691

原创 UVa 10139 - Factovisors

输入Case和num,求Case!是否能整除num。思路:将num质数分解,然后用Case!对每个num质数分解后的素数求指数,和num这个素数比较,如果小于,说明不能整除。/************************************************************************* > File Name: 10139.cpp > A

2013-06-08 07:59:41 602

原创 UVa 10110-Light, more light

题意就是一个人在走廊里一共走n次,走第i次的时候,如果i是n的因子,那么他会按下第i个灯泡。问最后第n个灯泡是不是亮着的。求n是不是完全平方数,因为所以因子都是成对出现额度,如果是完全平方数,意味着这个数n有奇数个因子,所以n是开着的,反之是关闭的。/**********************************************************************

2013-06-07 22:09:22 474

原创 UVa 11064-Number Theory

求1 /************************************************************************* > File Name: 11064.cpp > Author: Toy > Mail: [email protected] > Created Time: 2013年06月07日 星期五 16时00分58秒

2013-06-07 16:38:12 955

原创 UVa 10880 - Colin and Ryan

有n块饼干,请G个客人,每个客人吃Q块饼干,要求最后剩m块。思路:只要求出n-m这个数的因子就好,每个因子代表可以请几个客人,但是要满足要求,Q>m,最后要求出去Q,从小到大的顺序 /************************************************************************* > File Name: 10880.cpp

2013-06-07 16:08:27 1328

原创 UVa 10783-Odd Sum

求m,n之间奇数的和/************************************************************************* > File Name: 10783.cpp > Author: Toy > Mail: [email protected] > Created Time: 2013年06月07日 星期四 15时2

2013-06-07 15:19:28 539

原创 UVa 294-Divisors

找到L和U之间其中一个数,这个数有最多的因子数/************************************************************************* > File Name: 294.cpp > Author: Toy > Mail: [email protected] > Created Time: 2013年06月

2013-06-06 21:18:22 844

原创 UVa 10299-Relatives

还是欧拉函数,注意是1输出0/************************************************************************* > File Name: 10299.cpp > Author: Toy > Mail: [email protected] > Created Time: 2013年06月04日 星期二

2013-06-04 21:03:28 612

原创 UVa 10179 - Irreducable Basic Fractions

欧拉函数/************************************************************************* > File Name: 10179.cpp > Author: Toy > Mail: [email protected] > Created Time: 2013年06月04日 星期二 20时19分18秒

2013-06-04 20:45:08 620

原创 UVa 10738 - Riemann vs Mertens

预处理,对于一个数Case进行质数分解,如果Case质数分解后质数的指数都是1的话,说明它是square free,如果Case质数分解后的质数数为奇数的话mu[Case]=-1,偶数mu[Case]=1,如果不是square free, mu[Case]=0,M[Case]=mu[1]+……+mu[Case];最后求mu[Case], M[Case].采用预处理的方式,将1000000中

2013-06-04 07:50:19 857

原创 UVa 10780-Again Prime? No Time.

求N!中M的最高次幂。思路:先将M质数分解,然后对M的每个素数因子求N!的最高次幂。例如M = 45 N = 67. 45 = 3 ^ 2 * 5 ^ 1. 45的素数因子为3 和 5,             而67!中3的最高次幂为31,5的最高次幂为15.这样就可以确定67!中45的最高幂为15,因为67!中每2个3,1个5就包含                 一个45,换句话说也就是

2013-06-03 22:40:13 932

原创 UVa 10622 - Perfect P-th Powers

Case可以写成一个数b的p次幂。求出p的最大值。其实就是质数分解问题的转化。将Case质数分解后,求出所有指数的最大公约数,如2^3*5^6 = ( 2 * 5 ^ 2 ) ^ 3.如果是负数呢。如果最大公约数为偶数,那么负数的偶数次幂一定是正数,不合题。所以将最大公约数不断除2直到除为奇数为止。/*********************************************

2013-06-03 18:20:45 546

原创 UVa 10392 - Factoring Large Numbers

就是质数分解,和以前做的没什么区别,只改用long long就可以/************************************************************************* > File Name: 10392.cpp > Author: Toy > Mail: [email protected] > Created Ti

2013-06-03 09:27:39 427

原创 UVa 583-Prime Factors

质数分解,将Case的所有因子全部输出即可/************************************************************************* > File Name: 583.cpp > Author: Toy > Mail: [email protected] > Created Time: 2013年06月02

2013-06-02 20:56:08 614

原创 UVa 10311-Goldbach and Euler

这个题很好,求100000000以内的数是否可以写成两个素数的和,要求两个素数的差最小。对于输入的Case。如果Case是偶数的话,我们从Case/2向前开始枚举就可以,如果满足条件直接输出即可。如果Case是奇数的话,我们知道素数只有2是偶数,其余的素数都是奇数。一个奇数如果可以写成两个素数和的情况,其中一个一定是2,然后再判断Case - 2是不是素数即可。(因为奇数-奇数一定得偶数,

2013-06-02 15:43:04 1155

原创 UVa 543-Goldbach's Conjecture

求n可以拆分成两个素数和,而且两个素数的差要最大的。将所有素数在IsComp数组中标记为1,然后只需要枚举n/2就可以,然后判断 i 和 n - i 是不是素数。如果两个都是素数的直接输出即可,因为这样保证两个的差一定是最大的/************************************************************************* > Fi

2013-06-02 14:00:11 558

原创 UVa 516-Prime Land

质数分解问题,题意是给出一个数的指数分解形式,例如5 1 2 1.即x = 5 ^ 1 * 2 ^ 1 = 10,然后要求我们来求x - 1的质数的分解形式。输出使从大到小的输出/************************************************************************* > File Name: 516.cpp > Aut

2013-06-02 12:37:26 1478

原创 UVa 10140- Prime Distance

求L,U区间之间的相邻素数的最小距离和最大距离。如果没有相邻的素数,输出There are no adjacent primes./************************************************************************* > File Name: 10140.cpp > Author: Toy

2013-06-01 12:01:10 668

原创 UVa 406-Prime Cuts

筛素数的问题,1~n的素数cnt为偶数个时,输出c*2个素数,当cnt为奇数时输出c*2-1个素数,都是从1~n的素数表的中间开始的。当要求输出的素数个数大于cnt时,将1~n之间的素数全部输出。/************************************************************************* > File Name: 406.cp

2013-06-01 08:00:46 1728

原创 UVa 296 - Safebreaker

猜数字游戏,直接从0开始枚举到9999,我的方法很笨。因为只有0~9十位数字,所以用了5层循环。在匹配的时候,先是对应位置匹配,用flag和opt分别记录位置ll猜的数字和枚举的数字i*1000+j*100+k*10+l这个数的对应位置是否已经配对。如果符合情况用ans记录/************************************************************

2013-05-31 19:05:07 671

原创 UVa 10125-Sumsets

要求求出集合S中a + b + c = d中最大的d值。暴力的枚举一定超时的,所以需要找到一个优化的方式枚举,可以转化成 a + b = d - c.将集合排序,从大到小枚举d和c。然后在从1到c的前一位枚举。最后输出d即可/************************************************************************* > Fil

2013-05-30 21:46:29 505

原创 UVa 759-The Return of the Roman Empire

用map将所有从1到4000的罗马数字存起来,然后根据输入的字符串输出即可。/************************************************************************* > File Name: 759.cpp > Author: Toy > Mail: [email protected] > Created

2013-05-30 17:17:42 584

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除