ACM学习历程—HDU2068 RPG的错排(组合数学)
Description
Input
Output
Sample Input
Sample Output
假设i个人在他本来位置,其余人错排的种数是f[i],那么题目要求的就是所有大于等于(n+1)/2的f[i]的和,n+1是为了对奇数偶数情况统一。
假设k个人错排是p[k],
那么就是n个人先取出i个人在自己位置C(n, i),其余人再错排p[n-i],然后控制i的范围就OK了。
这里需要注意的是由于题目没有模的情况,所以所有数可能会很大,所以在求p和c的时候最好是相邻项间递推。
代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <set> #include <map> #include <queue> #include <string> #include <algorithm> #define LL long longusing namespace std;int n; LL p[30], c[30], ans;void init() {p[0] = 1;p[1] = 0;p[2] = 1;for (int i = 3; i < 30; ++i)p[i] = (i-1)*(p[i-1]+p[i-2]); }void cal() {c[0] = 1;for (int i = 1; i <= n; ++i)c[i] = c[i-1]*(n-i+1)/i; }void work() {ans = 0;int half = (n+1)/2;for (int i = 0; i+half <= n; ++i)ans += c[i+half]*p[n-i-half];printf("%I64d\n", ans); }int main() {//freopen("test.in", "r", stdin); init();while (scanf("%d", &n) != EOF && n){cal();work();}return 0; }
转载于:https://www.cnblogs.com/andyqsmart/p/4756598.html
ACM学习历程—HDU2068 RPG的错排(组合数学)相关推荐
- 完成了C++作业,本博客现在开始全面记录acm学习历程,真正的acm之路,现在开始
以下以目前遇到题目开始记录,按发布时间排序 ACM之递推递归 ACM之数学题 拓扑排序 ACM之最短路径做题笔记与记录 STL学习笔记不(定期更新) 八皇后问题解题报告 转载于:https://www ...
- ACM学习历程—HDU5586 Sum(动态规划)(BestCoder Round #64 (div.2) 1002)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5586 题目大意就是把一段序列里面的数替换成f(x),然后让总和最大. 首先可以计算出初始的总和,以及每 ...
- ACM学习历程—UESTC 1226 Huatuo's Medicine(数学)(2015CCPC L)
题目链接:http://acm.uestc.edu.cn/#/problem/show/1226 题目就是构造一个对称的串,除了中间的那个只有1个,其余的两边都是对称的两个,自然答案就是2*n-1. ...
- ACM学习历程—HDU2476 String painter(动态规划)
http://acm.hdu.edu.cn/showproblem.php?pid=2476 题目大意是给定一个起始串和一个目标串,然后每次可以将某一段区间染成一种字符,问从起始串到目标串最少需要染多 ...
- ACM学习历程—HDU5668 Circle(数论)
http://acm.hdu.edu.cn/showproblem.php?pid=5668 这题的话,假设每次报x个,那么可以模拟一遍, 假设第i个出局的是a[i],那么从第i-1个出局的人后,重新 ...
- ACM学习历程—HDU5666 Segment(数论)
http://acm.hdu.edu.cn/showproblem.php?pid=5666 这题的关键是q为质数,不妨设线段上点(x0, y0),则x0+y0=q. 那么直线方程则为y = y0/x ...
- ACM学习历程—Hihocoder [Offer收割]编程练习赛1
比赛链接:http://hihocoder.com/contest/hihointerview3/problem/1 大概有一个月没怎么打算法了.这一场的前一场BC,也打的不是很好.本来Div1的A和 ...
- ACM学习历程—Hihocoder 1290 Demo Day(动态规划)
http://hihocoder.com/problemset/problem/1290 这题是这次微软笔试的第三题,过的人比第一题少一点,这题一眼看过去就是动态规划,不过转移方程貌似不是很简单,调试 ...
- ACM学习历程—51NOD 1685 第K大区间2(二分 树状数组 中位数)
http://www.51nod.com/contest/problem.html#!problemId=1685 这是这次BSG白山极客挑战赛的E题. 这题可以二分答案t. 关键在于,对于一个t,如 ...
最新文章
- 迪普科技以近50%份额全面中标国家电网2016信息化硬件采购
- django后台多页面分页逻辑python代码
- LaTeX表格字太贴近上面表线
- 宇视硬盘录像机onvif_视频监控系统中强大的录像机,兼容不同品牌,看看有哪些监控厂家...
- db2取数据库日期时间_DB2数据库取得当前时间的正确解析
- ES6.3 index Sorting测试
- 带你啃透深度学习必学“圣经”花书!(附带论文代码精读讲解)
- 【Struts】:Struts1和Struts2的区别与联系
- redis从入门到入魔
- wireshark出现rst的原因_多次RST以及不同场景下的RST报文的差异
- 新东方雅思词汇(List 21~ List 25)
- 在网上打印双面和单面的资料哪里打印价格便宜
- ED1 SoC Linux环境搭建
- 企业大楼AI无感考勤解决方案
- Unity圆环进度条制作
- 你知道吗?火狐搜集您的数据?
- BugkuCTF 游戏过关
- numpy实现图像融合
- 浪潮商用机器:以开放心态,做大Power生态
- 到底什么才是真正的双核浏览器
热门文章
- saltstack mysql_saltstack学习五:return及入库_MySQL
- Kubernetes tutorial - K8S 官方入门教程
- cmd 【已解决】windows连接手机,运行adb devices提示“unauthorized”
- 二项分布 , 多项分布, 以及与之对应的beta分布和狄利克雷分布
- posix thread线程
- iOS设计模式 - 迭代器
- Android - 基于Toolbar的Navigation Drawer(Material Design)
- 发消息给非windows窗体程序
- 传统图片验证算法的缺点及改进(原理篇)
- 中医移动医疗_中医之极简移动医疗