Maths
miss_minor
坚持,请你坚持
展开
-
UVA10277 - Boastin' Red Socks(枚举+二分)
UVA10277 - Boastin' Red Socks(枚举+二分)题目链接题目大意:现在有m只红袜子,n只黑袜子,这样总袜子total = n + m;现在给你p, q,确定n和m,使得从这些袜子中取两只都是红袜子的概率等于p/q;如果没有这样的n和m满足要求输出impossible;解题思路:m *(m - 1) / (total * (total - 1)原创 2014-12-13 09:51:21 · 802 阅读 · 0 评论 -
UVA10359 - Tiling(递推 + 大数)
UVA10359 - Tiling(递推 + 大数)题目链接题目大意:用2 ∗ 1 和 2 ∗ 2的瓷砖去铺2 * n的矩形,有多少种。解题思路:递推:f(n) = f(n - 1) + 2 ∗ f(n - 2) 边界f(0) = 1, f(1) = 1.代码:import java.util.*;import java.math.*;imp原创 2014-11-14 18:49:29 · 467 阅读 · 0 评论 -
UVA10519 - !! Really Strange !!(数论+高精度)
10519 - !! Really Strange !!(数论+高精度)题目链接题目大意:给你n个圆,每两个圆都有相交的部分,并且相交的两个点都唯一的,不能再和别的圆交于这点。问这样在一个矩形里的相交的n个圆可以产生多少个新的封闭图形。看图会明白的。解题思路:规律:f(n) = f(n - 1) + 2 ∗(n - 1) 最后推的 f(n) = n ∗ (n原创 2014-11-18 20:59:53 · 670 阅读 · 0 评论 -
UVA10518 - How Many Calls?(矩阵快速幂)
UVA10518 - How Many Calls?(矩阵快速幂)题目链接题目大意:给你fibonacci数列怎么求的,然后问你求f(n) = f(n - 1) + f(n - 2)需要多少次调用,并且这个数很大,取模一个进制的数。解题思路:要发现F(n) = 2 ∗f(n) - 1这个规律,估计要很熟悉fibonacci数列,我明明推出了好多项后但是一点也没有发现规律原创 2014-11-16 22:19:09 · 1134 阅读 · 0 评论 -
UVA10616 - Divisible Group Sums(dp)
UVA10616 - Divisible Group Sums(dp)题目链接题目大意:N个数,选择m个数出来,问相加的和能够整除MOD有多少种选择方式。解题思路:从1到N数选择过去,每个数有选和不选两种可能,并且(num + d) % MOD = num % MOD + d % MOD, 所以可以这么做,最后判断一下余数等于0么。坑点是这题N个数会有负数,负数的取模 (n原创 2014-11-16 21:47:07 · 735 阅读 · 0 评论 -
UVA10334 - Ray Through Glasses(Fibonacci数列)
UVA10334 - Ray Through Glasses(Fibonacci数列)题目链接题目大意:求光穿过两块玻璃的折射次数的方式数目,我也有点不懂它说什么,但是看图看明白了。解题思路:画画折射3,4,5,发现话的规律,然后就会发现符合Fibonacci数列,f[n] = f[n - 1] + f[n - 2];但是n很大到1000,需要用大数。代码:im原创 2014-11-15 20:10:07 · 659 阅读 · 0 评论 -
UVA10128 - Queue(dp)
UVA10128 - Queue(dp)题目链接题目大意:有N个人,通过排序,可以使得从前面往后面看只有P个人,从后面往前面看,只有R个人。问这样的排列有多少种。解题思路:之前一直在要怎么排序,结果是方法没正好,看了别人的题接后才发现应该把高个子的先排好,然后再把矮个子的插进去,这样对于从前往后看,还是从后往前看才有规律可循。假设n - 1个人已经排好对了,现在要排第n个人原创 2014-11-15 19:49:42 · 694 阅读 · 0 评论 -
UVA10056 - What is the Probability ?(概率)
UVA10056 - What is the Probability ?(概率)题目链接题目大意:有n个人玩游戏,一直到一个人胜出之后游戏就可以结束,要不然就一直从第1个到第n个循环进行,没人一轮,给出每个人胜出的概率为p,问第i个人胜利的概率。解题思路:第i个人要胜利,那么就可能在第一轮胜利,也可能在第i轮胜利,那么胜利的概率就是q = 1 - p;概率 = q^(i -原创 2014-11-16 22:05:20 · 1560 阅读 · 0 评论 -
UVA10081 - Tight Words(dp)
UVA10081 - Tight Words(dp)题目链接题目大意:给你数字【0..k],然后要求你找出这样的序列,长度为n,并且相邻的两个数字之间的相差不能超过1.问这样的数字序列出现的概率。解题思路:之前一直反着想这题,一心想找出相邻的的数字相差大于1的,结果发现这题还是要正着想才好写。。。还有一个问题,之前没有想到直接计算概率,而是想着统计总共有多少种,然后除以总数原创 2014-11-15 20:00:43 · 696 阅读 · 0 评论 -
UVA10912 - Simple Minded Hashing(dp)
UVA10912 - Simple Minded Hashing(dp)题目链接题目大意:给你L和S,把小写的26个字母定义为1-26,然后要求找出有多少个这样的字符串,首先要满足严格的递增顺序(a解题思路:这提和之前做过的题目很想,但是不一样的地方在于这题的字母选择是有要求的,不仅仅是和要等于S,还需要保持递增,也就是之前你用过的不能再用的意思。而且这题的范围给的有点大了原创 2014-11-15 19:34:11 · 756 阅读 · 0 评论 -
UVA542 - France '98(dp)
UVA542 - France '98(dp)题目链接题目大意:之前题目意思还以为看懂了,其实没看明白,它已经把各个选手分在各自所在的区域里面,这就意味着第一次的PK的分组已经确定,而且冠军必须是从两个左右分区出来的胜利者才有机会pk冠军。解题思路:那么从1-16这个大的区间内诞生出来的冠军可能是来自左边,也可能是右边,然后再左边右边的子区间递归找出冠军。f[i][l][r]表原创 2014-11-15 20:27:30 · 1064 阅读 · 0 评论 -
UVA696 - How Many Knights(数论)
696 - How Many Knights(数论)题目链接题目大意:要求在一个棋盘上放上最多的骑士,但他们之间不能互相攻击。骑士的攻击范围题目中有图给出。思路:画到后面会发现上下两行骑士交错的放是最优的策略(N N N)( N N )(N N N)但是这个只适用与3*3矩阵和更大的矩阵,小点的就要另外讨论了。一行或者一列的时後每个位置都是可以放的,不会原创 2014-11-17 20:14:48 · 803 阅读 · 0 评论 -
UVA10943 - How do you add?(DP)
UVA10943 - How do you add?(DP)题目链接题目大意:给你N和K,要求找出这样的K个数(小于等于N),和等于N,问有多少种结果模上1e6。解题思路:dp。代码:#include #include const int maxn = 105;const int MOD = 1e6;typedef long long ll;ll原创 2014-11-14 19:05:59 · 537 阅读 · 0 评论 -
UVA10940 - Throwing cards away II(找规律)
UVA10940 - Throwing cards away II(找规律)题目链接题目大意:桌上有n张牌,按照1-n的顺序从上到下,每次进行将第一张牌丢掉,然后把第二张放到这叠牌的最后。反复进行这样的操作,知道只剩下一张牌。解题思路:只能先暴力,将前面小点的n打印出来,看看有什么规律。规律:f【2^k + mod] = 2*mod;(mod > 0); n = 1需要原创 2014-11-18 21:19:25 · 731 阅读 · 0 评论 -
UVA10229Modular Fibonacci(矩阵快速幂)
UVA10229Modular Fibonacci(矩阵快速幂)题目链接题目大意:给你i和m,求Mi, Mi = (F(i - 1) + F(i - 2)) % 2^m;解题思路:因为Mi = (F(i - 1) % 2^m + F(i - 2)% 2^m) % 2^m = (M(i - 1) + M(i - 2)) % 2^m.类似于求fibonacci数加上取模,只是n原创 2014-12-13 11:24:27 · 694 阅读 · 0 评论 -
UVA 10023 - Square root(手算平方根)
题目:UVA 10023 - Square root(手算平方根)题目链接题目大意:求给定的一个数的平方根。解题思路:用二分但是这个数太大了,就超时了。看题接后发现需要用一种手算平方根的算法。算法: 先判断这个数是不是偶数位,是的话就第一次取前面的两位数,不是的话第一次就只取前面的一位数来作为被除数。接下来就是两位两位为一节来计算。 用前一次的计算结果乘上20+一个个位数a原创 2015-01-21 11:02:32 · 1296 阅读 · 1 评论 -
UVA10205 - Stack 'em Up(模拟)
UVA10205 - Stack 'em Up(模拟)题目链接题目大意:给你52张牌,这些牌一开始就有个顺序。现在给你每次的洗牌动作,52个数Ai,表示第i个位置上的牌放到Ai位置。意思就是能够通过这次洗牌,可以将i位置上的牌放到Ai位置上。至于后面的牌要不要移动什么的,根本不考虑。反正就是通过这次的洗牌,我给你52个数,把每个位置上的牌更新了一下。解题思路:之前的题意看错原创 2014-12-04 22:36:37 · 752 阅读 · 0 评论 -
UVA10303 - How Many Trees?(java大数+catalan数)
UVA10303 - How Many Trees?(java大数+catalan数)题目链接题目大意:给你1-N N个数,然后要求由这些数构成二叉搜索树,问有多少种这样的二叉搜索树。解题思路:把前5项理出来,正好是1 2 5 14 42..就猜想是catalan数,结果也是对了。公式f(i + 1) = (4∗i - 6)/ i; (i >= 2).结果很大,要用高精原创 2014-12-04 22:21:13 · 794 阅读 · 0 评论 -
UVA10183 - How Many Fibs?(java大数+二分)
UVA10183 - How Many Fibs?(java大数+二分)题目链接题目大意:给你a,b,求[a,b]之间有多少个fibs数。解题思路:虽然a.b很大,但是在10^100内的fibs却不超过500个。这样就可以先把这些fibs保存在数组中,然后每次二分去找a,b的位置,然后就可以得到之间有多少个fibs。代码:import java.util.*;原创 2014-12-03 22:42:45 · 701 阅读 · 0 评论 -
UVA - 10375Choose and divide(数论)
UVA - 10375Choose and divide(数论)题目链接题目大意:求 C(p,q) / C(r,s)的值。解题思路:题目给出公式:那么上面的那个式子就等价于(p!s!(r - s)!)/(q!(p - q)!r!)需要发现q!和 p!/(P - q)!的关系,枚举1..q的值,可以对应得到p.. p - q + 1,对应乘积就是p!/(p - q)! ,原创 2014-12-02 22:19:49 · 716 阅读 · 0 评论 -
UVA10308Roads in the North(dfs)
UVA10308Roads in the North(dfs)题目链接题目大意:给你多条道路,每条道路都连着两个不同的城市,并且给你这条路的距离,现在要求你找出离得最远的两个城市之间的距离。解题思路:一开始,想用dfs,可是没有想到只需要任意找个节点dfs一次就可以了,还想着如果每个点都找一次,那么肯定行不通。看了题解后才发现只需要找一次就可以了,因为题目给的是一棵树,而且原创 2014-12-02 22:17:54 · 700 阅读 · 0 评论 -
HDU5086Revenge of Segment Tree(数论)
HDU5086Revenge of Segment Tree(数论)题目链接题目大意:给出长度为n的数组,然后要求累计里面的每个子串的和。解题思路:枚举起点和终点,判断每个数属于多少条线段,那么这个数就要被加这么多次。可以得出每个位置被加次数的公式: i (n - i + 1);那么结果就是累计(arr[i] i) mod * (n - i + 1) % mod,注意两原创 2014-11-02 21:40:50 · 741 阅读 · 0 评论 -
UVA11125 - Arrange Some Marbles(dp)
UVA11125 - Arrange Some Marbles(dp)题目链接题目大意:给你n种不同颜色的弹珠,然后给出每种颜色的弹珠的个数,现在要求你将这些弹珠排序,要求相同颜色的部分最多3个。然后相同颜色的弹珠称为一个组,那么每个相邻的组要求长度不同,颜色也不同,然后首位的两组也要符合要求。解题思路:这题之前是被n∗8∗8∗8.(可以用一个8进制的数来代替传4个参数)因原创 2014-11-18 21:48:30 · 790 阅读 · 0 评论 -
UVA10254 - The Priest Mathematician(找规律)
UVA10254 - The Priest Mathematician(找规律)题目链接题目大意:4根柱子的汉诺塔。解题思路:题目里面有提示,先借助四个柱子移走k个,然后在借助三个柱子移走剩余的n - k个,再把n个移动到n - k个所在柱子。那么F[n] = min(2 * F[k] + H[n - k]);H[n - k] = 2^(n - k) - 1;把前面的60项原创 2014-11-18 21:09:40 · 853 阅读 · 0 评论 -
UVA10862 - Connect the Cable Wires(递推 + java的大数)
UVA10862 - Connect the Cable Wires(递推 + java的大数)题目链接题目大意:给你n座房子位于一条直线上,然后只给你一个cable service,要求每座房子都连上有线,方式可以是间接的通过这个房子的直接邻居连接(前提是它的邻居要连上有线),另外一种是直接连上cable service也是可以的。解题思路:把后面的房子编号为1,前面的为原创 2014-11-14 16:38:10 · 762 阅读 · 0 评论 -
UVA11181 - Probability|Given(概率)
UVA11181 - Probability|Given(概率)题目链接题目大意:n个人去购物,要求只有k个人买东西。给你n个人每个人买东西的概率,然后要你求出这n个人中有k个人购物并且其中一个人是ni的概率pi。解题思路:设B是n个人中选择k个人。设Ai是除了第i个人外选择k - 1个人。那么P = P(Ai)∗ pi / P(B);所以用dfs求出B,和Ai的概率,原创 2014-11-14 16:13:31 · 1787 阅读 · 0 评论 -
UVA10717 - Mint(欧几里德求最小共倍数)
UVA10717 - Mint(欧几里德求最小共倍数)题目链接题目大意:要求你设计桌子,桌子的四条腿是用四种不同的硬币堆砌起来,并且这四条腿的长度要求要种相同。现在给n种硬币,然后给你t个要求的高度H。要求你给出能够用这些硬币设计出来的桌子的高度最接近H的两个数。解题思路:要求四条腿一样长的话就是求这四种硬币厚度的最小共倍数,然后这里会给n种硬币,需要枚举出每四个的组合,求原创 2014-11-09 11:20:09 · 776 阅读 · 0 评论 -
UVA10673 - Play with Floor and Ceil(数论)
UVA10673 - Play with Floor and Ceil(数论)题目链接题目大意:给你x,k,要求你找出p,q:满足x = p∗下取整(x/k) + q∗上取整(x/k);解题思路:分三种情况:1、x整除k,那么可以另p = 0,那么q = k。2、x不整除k,那么另n=下取整(x/k),则x=p∗n + q∗(n + 1)= (p + q)*原创 2014-11-09 15:48:49 · 683 阅读 · 0 评论 -
UVA106 - Fermat vs. Pythagoras(素勾股数)
UVA106 - Fermat vs. Pythagoras(素勾股数)题目链接题目大意:给你一个数n,勾股数三元组(x,y,z)的定义:满足x 解题思路:先找出所有的素勾股数(x, y, z) ,那么便可以通过(kx, ky, kz)得到不是素勾股数的勾股数。接着要换种方式构造素勾股数,公式:x = m^2 - n^2; y = 2∗m∗n; z = m^2 + n^原创 2014-11-09 15:10:51 · 1370 阅读 · 0 评论 -
UVA10006 - Carmichael Numbers(筛选构造素数表+快速幂)
UVA10006 - Carmichael Numbers(筛选构造素数表+快速幂)题目链接题目大意:如果有一个合数,然后它满足任意大于1小于n的整数a, 满足a^n%n = a;这样的合数叫做Carmichael Numbers。题目给你n,然你判断是不是Carmichael Numbers。解题思路:首先用筛选法构造素数表,判断n是否是合数,然后在用快速幂求a^2-a^原创 2014-11-09 14:46:45 · 841 阅读 · 0 评论 -
UVA10820 - Send a Table(欧拉函数)
UVA10820 - Send a Table(欧拉函数)题目链接题目大意:给你N,对于1-N里面的每个数x,计算1-N里面与x互质的个数m。最后就将2*m- 1都加起来。因为(x,x)只有一种。解题思路:重点在于计算1-N里面和x互质的数的个数。欧拉函数这里是用筛选素数的方法来构造欧拉表。代码:#include #include const int ma原创 2014-11-09 16:44:31 · 497 阅读 · 0 评论 -
UVA571 - Jugs(数论)
UVA571 - Jugs(数论)题目链接题目大意:给你A和B的水杯,给你三种操作:fill X:把X杯里面加满水。empty X:把X杯中的水清空。pour X Y 把X的水倒入Y中直到一方满或另一方空为止。然后要求你得到C的水量,给出实现步骤。解题思路:因为A,B互质,n属于【1,B - 1】则n%B=n。那么n∗A%B= n%B∗A%B = n∗R,因为AB互原创 2014-11-09 11:49:15 · 828 阅读 · 0 评论 -
UVA138 - Street Numbers(等差数列)
UVA138 - Street Numbers(等差数列)题目链接题目大意:找十组这样的数(a,b) 满足 1到a-1的和等于 a + 1到b的和。解题思路:根据等差数列的性质可以得到:a (a - 1) == (a + 1 + b)(b - a)化简得b^2 + b - 2a^2 = 0; 这样b = (sqrt(1 + 8a^2) - 1) / 2;代码原创 2014-11-09 11:06:39 · 504 阅读 · 0 评论 -
UVA305 - Joseph(数论 + 打表)
UVA305 - Joseph(数论 + 打表)题目链接题目大意:约瑟夫环问题:n个人围成一圈,每次都淘汰第m个人,问最后一个幸存下来的人的编号。这题的意思有点不一样,它规定前面的k个人是好人,后面的k个人是坏人(2 ∗ k形成环)。问最小的m是多少,能够先把后面的k个坏人淘汰再淘汰好人。解题思路:这题有个递推式:ai = (ai - 1 + m - 1) %原创 2014-09-19 10:56:56 · 945 阅读 · 0 评论 -
hdu4944FSF’s game(数论)
题目:hdu4944FSF’s game(数论)题目大意:给定N,然后会有N * ( N + 1)/2个等级的矩形,(1 * 1, 2 * 1, 2* 2, ...N * 1, N * 2.. N* N).将这些矩阵分成大小相同的K * K 的正方形,能够获得金币A * B / gcd(A/ K, B/ K);然后给定N,问能够得到的总金币。解题思路:对于sum(N):原创 2014-08-13 10:01:33 · 640 阅读 · 0 评论 -
poj 4586 Play the Dice(数论)
题目:poj 4586 Play the Dice题原创 2014-04-17 16:49:04 · 576 阅读 · 0 评论 -
UVA11121 - Base -2(找规律)
UVA11121 - Base -2(找规律)题目链接题目大意:给你十进制的数转换成-2进制的数。解题思路:规律:根据单双的位置【1,1】(0) 【2,5】(2) 【6, 21】(4) 【21 + 1, 21 + 2^6】(6)...【-2,-1(1) 【-10, -3】(3) 【-10 - 2^5, -10 - 1】(5)...根据这个可以判断一下最开始的1是原创 2014-11-09 16:05:16 · 555 阅读 · 0 评论 -
UVA10791 - Minimum Sum LCM(分解质因子)
UVA10791 - Minimum Sum LCM(分解质因子)题目链接题目大意:给你一个N,x,y,z..(多个数)的最小公倍数是N,希望这些数的和是最小的,输出这个值(因子数至少是2)。解题思路:将N质因子分解,那么每个因子的次数方的和一定是最小的。1的时候要注意一下。还要需要用long long,因为当N =2147483648,它是个素数,但是和确实2147483原创 2014-11-09 16:23:03 · 429 阅读 · 0 评论 -
HDU5100Chessboard(数论)
HDU5100Chessboard(数论)题目链接题目大意:用k∗1的瓷砖区铺n∗n的矩形,问能铺上的最大的面积。解题思路:这题没有直接得出结论:l = n%k, ans = max[(n^2 - l^2), (n^2 - (k - l)^2)],但是在画的过程中发现了,最好的情况就只有两种铺法,要不按照贪心的策略来铺,直到铺不下为止。或者是一圈一圈的铺,铺完一圈后最后还会原创 2014-11-12 14:23:12 · 738 阅读 · 0 评论 -
UVA10721 - Bar Codes(DP)
UVA10721 - Bar Codes(DP)题目链接题目大意:给你n, k, m, 要求满足BC(n,k,m)bar code的数目。n表示这样的字符串长度为n,k表示相同颜色的段落有k段,m代表每段内最多只能有m个相同的。解题思路:f[n][k][m]:表示第i个位置的字符,现在已经形成了k段,长度为m。f[n][k][m] = f[n + 1][k][m + 1原创 2014-11-15 08:42:08 · 728 阅读 · 0 评论