![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数学(数论、博弈论、概率论, etc.)
文章平均质量分 77
博弈论
RocSin
这个作者很懒,什么都没留下…
展开
-
HDOJ 2955 Robberies 简单01背包+简单概率思想
/*** 与其说这题考背包,不如说考概率。* 比较容易想到的是,把被抓到的概率乘100,加卡精度来做背包容量,钱就做背包价值* 可是不行! 这精度卡不了诶。。还是wa* 换种想法,题目给出的被抓的概率p,那(1-p)就是不被抓的概率。* 然而,让dp[i]表示抢到i百万的逃跑成功率。 那么如何计算?* 如果要抢到i百万需要抢n个银行,那么就是抢这原创 2013-09-13 23:32:59 · 883 阅读 · 0 评论 -
POJ 1077 Eight BFS + 康拓展开式
Accepted6588K329MSC++3890B2013-05-20 23:43:40 康拓展开式: http://blog.csdn.net/xuruoxin/article/details/8951913 /*** 这题做了我一晚上啊! 半晚上写代码,半晚上debug。 最后发现错在两个变量的名原创 2013-05-20 23:55:18 · 1028 阅读 · 0 评论 -
康拓展开
各处摘抄,便于详细理解掌握。 康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。 X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i原创 2013-05-20 19:11:09 · 2386 阅读 · 0 评论 -
UVa 10193 All You Need Is Love 求互质 数学题
/*** 题意: 给你两个01字符串, 表示两个由二进制表示的数* 问能否找到一个01串同时是这两个串的因数,不能是1.* 简单数学题,求两数是否互质。* 先把输入的两个01串换成十进制的数。* 再求这两个数的公约数就行了。* 如果公约数是1,也就是互质,答案就是not you need* 反之。。。*/#include #include #include #i原创 2013-05-07 21:51:44 · 2799 阅读 · 0 评论 -
UVa 11029 - Leading and Trailing 数学题(求n^k的前N位和后N位)
/*** 题意求n^k的前三位和后三位:** 一开始就是把n变成小数,循环运算,然后再乘1000取前三位,结果TLE。。。* 总是忘了用log神器。。。** 首先,后三位好求。 快速幂取模就行。或者循环取模应该也不会超市。** 再者,前三位:* 这里就要用到log神器了。。。* 设 n^k = A 两边取对数有: lgA = k * lgn;* 则原创 2013-05-02 21:48:49 · 1306 阅读 · 0 评论 -
UVA 10791 Minimum Sum LCM (数论)
这题让我终于懂了UVa上一定要用%lld输出! 我记得有些题%I64d 也行,所以就没在意,也用了%I64d 结果WA了3次!!! 首先说说这题思路吧。。 对于输入的数 n 由唯一分解定理得 N = p1^n1 * p2^n2 *...* pn^nn 首先题意是把多个数的最小公倍数为N的数相加和最小即为答案,注意不是2个,一开始想当然的以为求出所有素数次方分2半求最小原创 2013-04-25 09:45:55 · 2815 阅读 · 0 评论 -
UVa 10673 Play with Floor and Ceil ACM——数论 (扩展欧几里得算法)
摘抄百度摘抄他人代码。。。只是理解了罢了。。 求解 x,y的方法的理解:设 a>b。 1,显然当 b=0,gcd(a,b)=a。此时 x=1,y=0; 2,ab!=0 时 设 ax1+by1=gcd(a,b); bx2+(a mod b)y2=gcd(b,a mod b); 根据朴素的欧几里得原理有 gcd(a,b)=gcd(b,a mod b); 则:ax1+原创 2013-04-21 21:23:01 · 1333 阅读 · 0 评论 -
UVa 128 Software CRC 数论(模运算)
题意:给你一个字符串(可能有空格,最多1024字符),每个字符代表一个数字,因为最多有256个字符,所以这个字符串其实是表示一个256进制的数字。但这还没完,在这个256进制数字要再加两位,组成一个新的256进制数字,这个数字要能被g=34943(这是个十进制数字)整除,要你输出新添加的那两个数字是什么,这两个数字要以16进制的形式输出,用空格隔开 这题挺水的吧。。就是可以想象(只是想象,原创 2013-04-18 23:04:20 · 1201 阅读 · 0 评论 -
UVa 550 - Multiplying by Rotation N进制
自己推了个公式,然后枚举实现,结果TLE 参考了人家代码,即使人家附了思路,还理解了半天。。惭愧。。。 “输入k,m,n,本来的数字为s,因为s的最后一位为m,则s*n的最后一位为s*n%k,而s*n%k又是s的倒数第二位,如许又可以策画出ans*n的倒数第二位”#include int main(){ int k, m, n; while(scan原创 2013-03-26 23:04:47 · 896 阅读 · 0 评论 -
快速幂(C语言实现) 超详细 (转载)
快速幂取模算法在网站上一直没有找到有关于快速幂算法的一个详细的描述和解释,这里,我给出快速幂算法的完整解释,用的是C语言,不同语言的读者只好换个位啦,毕竟读C的人较多~所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。[有读者反映在讲快速幂部分时有点转载 2013-02-12 00:50:44 · 36690 阅读 · 10 评论 -
POJ 1006 中国剩余定理(孙子定理) ——数论
(大部分摘抄)中国剩余定理: 在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。具体解法分三步:找出三个数:从3和5的公倍数中找出被7除余1的最小数15,从3和7的公倍数中找出被5除余1 的最小数21,最转载 2012-12-03 12:09:30 · 1323 阅读 · 0 评论 -
UVa 10404 - Bachet's Game 博弈+动态规划
/*** 博弈和dp结合* 首先有博弈论的一些基础:* 必胜点: 选手必胜的点,下一步要么停止,要么必然走到必败点。(因为都是以最优策略博弈的)* 必败点: 选手必败的店,下一步要么停止,要么必然走到必胜点。* 所以这题在结合下dp,题给出的数组是一次可以选取的可能情况,所以这些点都是* 必胜点,标记好必胜点后,再从2到num遍历一遍,假设现在选手在点i原创 2013-05-22 16:47:31 · 778 阅读 · 0 评论 -
Nim Game (博弈论)
Nim 游戏类型简介: 有两个玩家; 有n堆扑克牌(比如:有三堆,可以分别是 5,7,9张); 游戏双方轮流操作; 玩家的每次操作是选择其中某一堆牌,然后从中取走任意张; 最后一次取牌的一方为获胜方; 定义P-position和N-position,其中P代表Pre原创 2012-12-04 12:40:45 · 682 阅读 · 0 评论 -
POJ 1067 威佐夫博弈(Wythoff Game)问题 (取石子游戏)
取石子游戏Description有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。Input输入包含若干行,表示若干种石子的初始情况,其中原创 2012-12-04 19:48:42 · 865 阅读 · 0 评论