组合-数列-函数
文章平均质量分 78
时雨晴天
PhD毕业,正在寻找下一个人生目标,愿求文武双全之道。
展开
-
LightOJ 1246 Colorful Board (DP+组合数)
题目连接:http://lightoj.com/volume_showproblem.php?problem=1246题意:有(M+1)*(N+1)的棋盘,可以用k种油漆给它们染色。要求曼哈顿距离为奇数的格子不能染同一颜色(显然相邻格子的曼哈顿距离为1),问总的染色方案数。思路:问题可转化为:每个格子(x,y),x+y奇偶性不同的格子的颜色不能相同。于是棋盘被分成两部分,类似于国际象棋黑白原创 2013-09-06 16:47:18 · 1665 阅读 · 0 评论 -
LightOJ 1005 Rooks (排列数 组合数)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1005题意:在一个n*n的棋盘上放k个车,使得各个车之间不相互攻击。有多少种放法?思路:先在n行中选出k行,C(n,k),再在n列中选出k列随便放A(n,k),答案为C(n,k)*A(n,k)。一直都记得0!=1,却忘了A(n,0)=1。。。。。。#include原创 2013-11-06 21:09:46 · 851 阅读 · 0 评论 -
二项式系数加法解 + 快速阶乘运算
偶然看见的东西,感觉还是挺厉害的。主要用到的公式是二项式系数加法解 - alexingcool的专栏 - 博客频道 - CSDN.NET快速阶乘运算 - alexingcool的专栏 - 博客频道 - CSDN.NET补充:斯特灵公式求阶乘:对于足够大的n转载 2014-02-13 12:04:53 · 4015 阅读 · 0 评论 -
错排问题 错排公式 Hdu 1465 + 2048 +2049 + 2068 + 4535
也称 伯努利-欧拉装错信封问题n错排公式:F[n]=(n-1)*(F[n-1]+F[n-2])证明:1.当前n-1个错排时:将其任意一封信与n对调,共(n-1)*F[n-1]2.当前n-2个错排,1个不错排时,将不错排的那封信与n对调,共(n-1)*F[n-2]3.当前≤n-3个错排,≥2个不错排时,显然无解.∴F[n]=(n-1)*F[n-1]+(n-2)*F[n-2]原创 2014-03-02 15:34:09 · 1664 阅读 · 0 评论 -
Poj 1496 Word Index & Poj 1850 Code (计数 组合数)
两题除了字符串长度不同之外没有区别。题意:字符串的合法排序规则为:长度小的靠前,同长度则按字典序,每个字符串内部字母都是升序的。思路:因为满足字符串内部也都是升序的,所以对于长度为L的字符串,满足条件的个数便是从26个字母中选出L个,即C[26][L]。借此统计比它短的部分,等长度的串枚举解决。本题方法很多,可以动态规划:http://blog.sina.com.cn/s/blog_6原创 2014-03-09 17:21:33 · 898 阅读 · 0 评论 -
鸽巢原理 Poj3370&Hdu1808 + Poj2356 + Hdu 1205
2014-3-25 更新 :修正了Hdu1205的代码,貌似以前的版本过不了,少输出了回车。Poj 的一个评论很有启发:http://poj.org/showmessage?message_id=171199如果将读入的数据存入a[1], a[2],...,a[n];余数位置数组就赋初值为0即可如果将读入的数据存入a[0], a[1],...,a[n-1];余数位置数组初值必须为-1,原创 2013-04-08 22:15:44 · 1623 阅读 · 0 评论 -
Hdu 1796 How many integers can you find (容斥原理 递归及循环的一般写法)
题意:给出n和由m个元素的集合,求小于n且是集合中任意元素的倍数的数有多少个。把集合中的0先去掉。#include int data[20],n,m,cnt;__int64 sum;__int64 Gcd (__int64 x,__int64 y){ return y==0?x:Gcd(y,x%y);}void dfs (int now, int sym, __int6原创 2014-03-27 21:46:05 · 869 阅读 · 0 评论 -
Hdu 4451 Dressing (简单容斥)
题意:有N种衣服,M种裤子和K种鞋子,已知哪些衣服和哪些裤子不能搭配,哪些裤子和哪些鞋子不能搭配,现在要选择一套(衣服+裤子+鞋子),问有多少种搭配方法。思路:所有的不和谐搭配都是与裤子有关的,所以分别统计对于一条裤子哪些衣服和鞋子不和谐,减掉相应的数量,再加上多减去的,详见代码。#include #include int clothes[1005], shoes[1005];i原创 2014-03-30 10:10:40 · 795 阅读 · 0 评论 -
Hdu 1695 GCD (数论 容斥原理)
参考了:HDU 1695 GCD 【数论,容斥原理】 - 脑残 - 博客频道 - CSDN.NET题意:求(1,b)区间和(1,d)区间里面gcd(x, y) = k的数的对数(1思路:问题可以转化:在b和d分别除以k之后的区间里,只需要求gcd(x, y) = 1就可以了。题目还要求1-3 和 3-1 这种情况算成一种,因此需要限制x只需要枚举x,然后确定另一原创 2014-03-30 13:40:16 · 942 阅读 · 0 评论 -
Hdu 4336 Card Collector (容斥原理 循环)
题意:有n种卡片,每种卡片 i 出现的概率为 pi ,一袋小吃有可能没有卡片,但最多有一张,问集齐所有卡片需要购买小吃的袋数期望。思路:容斥原理,感觉循环写法更适合自己。搜了下题解,也可以用状态压缩来做,附一份分析:http://www.2cto.com/kf/201308/236782.html#include double data[25];int main (){ i原创 2014-03-30 10:44:18 · 916 阅读 · 0 评论 -
Hdu 3929 Big Coefficients (容斥原理 二项式性质)
二项式定理有两个性质,这题只用到第一个。性质1:若k表示把n转为二进制后所有位中1的个数,则(1 + x) ^ n中系数为奇数的个数为2 ^ k。性质2:(1 + x) ^ n中的系数中 所有奇系数之和等于偶系数之和等于 2^(n-1)以下内容参考了:http://hi.baidu.com/yy17yy/item/f703320adb5cafeb34990256有三个集合A原创 2014-03-27 21:14:15 · 1226 阅读 · 0 评论 -
Poj 1650 & Zoj 1601 Integer Approximation (追赶法,分数逼近实数)
讨论群里有人提起追赶法,于是就搜到了这个题,最后还是没弄明白什么是追赶法……Zoj上这题的测试数据更强些。题意:给出一个数字x和一个范围,在这个范围内找两个数字,使它们的商最接近x。思路一:直接枚举,取n,d为1每次对n,d求商,如果n/d > x,则d增加1,否则n增加1,每次记录下差值最小时n,d的值。思路二:类似法雷数列进行处理,思想详见上一篇博文#include原创 2013-10-16 20:59:44 · 1480 阅读 · 0 评论 -
Farey数列 (法雷数列)
以下整理自:http://www.cnblogs.com/genyuan/archive/2012/08/29/2662598.html及http://blog.csdn.net/ji414341055/article/details/5793166修正了部分错误,整理了代码。法雷数列的来源: 约翰·法雷 是英国一位多才多艺的“ 杂家” , 生活在拿破仑时代, 职业是原创 2013-10-15 21:53:41 · 3605 阅读 · 0 评论 -
斯特林数 - 环排列 学习小记 Hdu 3625 Examining the Rooms + LightOJ 1326 Race
环排列定义从n个不同的元素中仅取m(1≤m≤n)个不同的元素按照圆圈排列,这种排列叫做从n个元素里取m个元素的环排列。两个环排列,如果元素间的位置没有改变,就是同一排列。计算公式把一个m个元素的环在m个不同的位置拆开记得到m个不同的线排列。由于n个不同元素中任取m个元素的排列方法为P(n,m)种,所以n个不同元素中任取m个元素的环排列方法有P(n,m)/m种。特别的原创 2013-05-29 20:36:44 · 2325 阅读 · 0 评论 -
Hdu 2512 一卡通大冒险 (贝尔数)
Bell数是将P个元素集合分到非空且不可区分的子集的划分个数性质详见 贝尔数 - 维基百科,自由的百科全书每个贝尔数都是"第二类Stirling数"的和关于斯特林数:斯特林数 - 环排列 学习小记 Hdu 3625 Examining the Rooms + LightOJ 1326 Race - whyorwhnt的专栏#include const int N原创 2013-10-01 21:44:41 · 1768 阅读 · 0 评论 -
Hdu 4465 Candy (概率 对数 组合数 负二项分布)
题意:两个瓶子里都装了n个糖果;从第一个瓶子拿的概率是p ,当再拿糖果的时候,发现瓶子空了 ,求这时候另外一个瓶子的剩余的糖果的数量的期望 思路:参考了http://www.cnblogs.com/yefeng1627/archive/2013/04/24/3040112.html计算过程中为避免溢出和丢失精度,采用取对数计算,exp还原。本题服从负二项分布:已知一个事件在伯努利试验中原创 2013-08-11 13:06:21 · 1126 阅读 · 0 评论 -
卡特兰数学习小记
卡特兰数有许多非常神奇的应用,将最近读到的博文摘录如下:卡特兰数_百度百科http://baike.baidu.com/view/2499752.htm#refIndex_8_24997522012腾讯实习笔试中看到的Catalan数 - - 博客频道 - CSDN.NEThttp://blog.csdn.net/jtlyuan/article/details/7440原创 2013-05-29 20:52:19 · 898 阅读 · 0 评论 -
Hdu 4546 组合+第k小(二分或优先队列)(西山居初赛)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4546西山居初赛第一场的题。思路:最初想法是二分难度,超时……剪枝一下,A掉了。到网上搜解题报告貌似主流算法是优先队列的样子……二分:#include #include #include #include using namespace std;const int原创 2013-05-19 19:56:26 · 1052 阅读 · 0 评论 -
数学学习小记(二) 组合数求模:Lucas 定理 LightOJ 1067 + Hdu 3037
最近被数论搞得生活不能自理。。。。电路终于考完了,一道非线性原件的题我算出电阻是负的。。。。。生死未卜。。。五一假期还要忙数学建模。。。。从以下博文中学习的,代码中有许多借鉴的地方也来自这里:hdu - 4349 - Xiao Ming's Hope - 大大的Lucas定理 && 小小的乘法逆元 - Julyana_Lin_夜 - 博客频道 - CSDN.NEThtt原创 2013-04-28 22:49:41 · 1426 阅读 · 0 评论 -
Hdu4767 Bell (贝尔数 中国剩余定理 构造矩阵)
2013年长春网络赛的题。比赛时很快就找到了bell数的性质,看到数据范围也马上想到要用矩阵做,只可惜当时没接触过中国剩余定理……以下题解转自:http://fudq.blog.163.com/blog/static/19135023820139114642927对于贝尔数,如果p是任意质数,则有B[p+n]=B[n]+B(n+1)%p还有可以发现的是95041567=31*37*原创 2013-10-02 21:37:39 · 1770 阅读 · 0 评论 -
扩展欧几里得及组合数递推模板
继续数学部分的学习,温故知新。学习扩展欧几里得可以参考:扩展欧几里得学习小记 - 将狼踩尽 19891101 - 博客园欧几里得+扩展——数论总结2 - _%Corey的日志 - 网易博客#define i64 __int64i64 Extended_Euclid (i64 a,i64 b,i64 &x,i64 &y){//扩展欧几里得算法,求ax+by=gcd(a,原创 2013-10-07 11:15:30 · 1357 阅读 · 0 评论 -
Hdu 4045 Machine scheduling (组合数,斯特林数)
11年北京网络赛的题目题意:有N个机器,每天选出R个机器,而且每两个机器的编号差要大于等于K,每天将这R个机器最多分为M组工作,问最多有多少种方案。思路:问题由两部分构成:第一,从N个机器中选出R个满足条件的机器的方案数;第二,将R个机器最多分为M组有的方案数。二者乘积即为答案。第一部分:先满足每两个机器之间至少有K-1个间隔,也就是还剩下rem=n-((r-1)*k+1)个机原创 2013-10-13 20:20:56 · 1499 阅读 · 0 评论 -
普通型母函数学习小记 Hdu1028 + Hdu1085 Holding Bin-Laden Captive! +Hdu2082
以前做背包时看解题报告经常看到有人用母函数的方法,现在自己学习下~母函数(Generating function)详解 — TankyWoo | Tanky Woohttp://www.wutianqi.com/?p=596生成函数(母函数) - nyist_xiaod - 博客频道 - CSDN.NEThttp://blog.csdn.net/dgq8211/arti原创 2013-05-01 22:51:33 · 966 阅读 · 0 评论