
ACM_数学
文章平均质量分 79
Nero___
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UVA 10254 The Priest Mathematician
题意: 熟知的汉诺塔问题的改版。现在给4根柱子,要求按这个方式移动:现将最上面k个移到某根柱子上,然后用剩下3根柱子做经典汉诺塔问题,然后再把移开的k个移回来。问最少需要移动多少次。数据范围10000。解法: 设g[x]为汉诺塔3石柱的最小移动步数,即g[x] = 2^x-1。设f[x]为4石柱的最小移动步数,则f[x] = max(f[k]*2+g[x-k]),0显然这个方程的复杂度O(原创 2013-08-28 19:21:03 · 1176 阅读 · 0 评论 -
LA 4727 Jump
题意: 给出约瑟夫环的n和k,求最后的三个人。解法: Here解释蛮详细了,此处不赘述。/* **********************************************Author : NeroCreated Time: 2013-8-26 0:36:33Problem id : LA 4727Problem Name: Jump**********原创 2013-08-26 01:00:20 · 1139 阅读 · 1 评论 -
2013 ACM/ICPC Asia Regional Changsha Online - J Candies
题意: 有一排数,有的明示它的值,有的则隐藏(以-1表示)。现在给出他们所有相邻三个的和(头尾两个位置只包含两个数的和),有500次询问,问某个位置上的可能最大值是多少。解法: 容易知道我们可以把从左到右数第三个数的值求出,类推我们能够知道所有位置是3的倍数的值,再类推我们能够知道所有从右往左数位置是3的倍数的值。所以当n%3!=2时,我们能够知道每三个数中的两个的值,剩下的一个可以直接求出。原创 2013-09-23 01:16:58 · 1061 阅读 · 0 评论 -
POJ 1830 开关问题 (高斯消元)
高斯消元分析题意: 有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关,如果为关就变为开。你的目标是经过若干次开关操作后使得最后N个开关达到一个特定的状态。对于任意一个开关,最多只能进行一次开关操作。你的任务是,计算有多少种可以达到指定状态的方法。(不计开关操作的顺序)原创 2013-10-31 19:15:38 · 1012 阅读 · 0 评论 -
HDU 4418 Time travel (概率,高斯消元)
题意: 有一个人在一根长度n的线段上来回走,方向是固定的,除非碰到线段的左右端点。他每次走的时候,有p1的概率走1步(即向前走1个点),p2的概率走2步...pm的概率走m步,让你求从点x走到点y的步数的期望值。若不可能走到,输出"Impossible !"。解法: 对于来回走的处理方式,比如0 1 2 3 4 5,我们可以把他看成 0 1 2 3 4 5 4(6) 3(7) 2(8) 1原创 2013-11-01 17:26:32 · 1064 阅读 · 2 评论 -
HDU 4678 Mine (博弈)
题意: 两个人一起玩扫雷,都不点炸弹,谁先不能点谁就输。问谁赢。解法: 在题目保证不出现重叠的情况下,就可以转化为类似取石子的Nim游戏(取1个或者取整堆)。其他部分看题解的,这里略过。第一次做博弈题,大概了解了一下这类题的思路。对于n堆石子,它的子游戏是一堆石子,通过分析一堆石子的SG值,将所有堆对应的SG值异或,得到的结果非0为先手赢,0为后手赢。这类题如果纯推演的话,是很复杂原创 2013-08-16 16:36:37 · 1090 阅读 · 4 评论 -
ZOJ 3624 Count Path Pair (组合计数,乘法逆元)
乘法逆元题意: 4个点A(0,0),B(p,0),C(m,q),D(m,n),保证m>p,n>q,求从A走到D和从B走到C两条路径不相交的走法的种数,只能up和right。解法: 直接求不相交路径不好求,那么就求所有的走法,再减去所有的相交路径。而相交的路径种数,其实等价于从A走到C和从B走到D的走法种数,因为从A到C和从B到D路径必相交,并且A和B只要在交点交换一下路径,变成A去D,B去原创 2013-11-06 00:12:42 · 902 阅读 · 0 评论 -
ZOJ 3557 How Many Sets II (组合计数,Lucas定理,费马小定理)
题意: 从1~n里选出m个数,要求这m个数不相邻,问有几种求法,对p取模。n解法: 对于一个数论盲来说,首先想到的是设状态f(n,m)为n个数选m个不相邻的方法数,然后通过讨论第一个数的选和不选,可以容易得到方程:f(n,m) = f(n-1,m) + f(n-2,m-1),这个方程对于巨大的n无力,于是变成这样:f(n,m) = sigma(f(i,m-1)),1然后换个思路,n原创 2013-11-07 00:10:36 · 959 阅读 · 0 评论