hdu2068-RPG的错排-(dp递推式)
去年看错排公式,死都看不懂,基础扎实之后再来看就略懂了。
公式: dp[ n ] = ( n-1 ) * ( dp[n-1] + dp[n-2] )
解析公式:比如有n个元素,各对应n个正确位置,dp[n]表示这n个元素全部排错的可能。
比如有元素:1 2 3 4 5 ... k ... n
1.假设第n个元素,要它在错误的位置上,则有n-1种情况。
2.对于剩下的n-1个元素,随便取一个位置上的元素k,要它在错误的位置上,则有2种情况
1)它在第n个元素的位置,相当于n和k两个元素交换位置,和其它没有关系,剩余n-2个元素爱怎么排就怎么排,dp[n-2]
2)不在第n个元素的位置,假设把n作为k的正确位置,则1 2 3 4 5...(k)...n,除去正确位置k,就是n-1个元素放在n-1个位置上,dp[n-1]。
初始化:
dp[1]=0;
dp[2]=1;
dp[ n ] = ( n-1 ) * ( dp[n-1] + dp[n-2] );
hdu2068:http://acm.hdu.edu.cn/showproblem.php?pid=2068
题解:
有n个人要猜对一半以上,就是错一半以下,排错公式。
对于这些错的人,也可以互不相同,组合数公式。
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<math.h>
#include<string>
#include<map>
#include<queue>
#include<stack>
#include<set>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std; ll ans[];
ll c[][];///C(n,m) = C(n-1,m) + C(n-1,m-1) void init()
{
memset(ans,,sizeof(ans));
memset(c,,sizeof(c));
ans[]=;///一个都没有错只有1种
ans[]=;
ans[]=;
ans[]=;
for(ll i=;i<;i++)
ans[i] = (i-) * ( ans[i-]+ans[i-] ); for(int i=;i<;i++)
c[i][]=;
for(int i=;i<;i++)
for(int j=;j<=i;j++)
c[i][j] = c[i-][j] + c[i-][j-]; } int main()///hdu2068 RPG错排
{
init();
int n;
while(scanf("%d",&n) && n)
{
ll res=;
for(int i=;i<=n/;i++)
res += ans[i] * c[n][i];
printf("%lld\n",res);
}
return ;
}
hdu2049:http://acm.hdu.edu.cn/showproblem.php?pid=2049
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<math.h>
#include<string>
#include<map>
#include<queue>
#include<stack>
#include<set>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std; ll ans[];
ll c[][];///C(n,m) = C(n-1,m) + C(n-1,m-1) void init()
{
memset(ans,,sizeof(ans));
memset(c,,sizeof(c));
ans[]=;///一个都没有错只有1种
ans[]=;
ans[]=;
ans[]=;
for(ll i=;i<;i++)
ans[i] = (i-) * ( ans[i-]+ans[i-] ); for(int i=;i<;i++)
c[i][]=;
for(int i=;i<;i++)
for(int j=;j<=i;j++)
c[i][j] = c[i-][j] + c[i-][j-]; } int main()///hdu2049 考新朗
{
init();
int n,t;
scanf("%d",&t); while( t-- )
{
int n,m;
scanf("%d%d",&n,&m);
ll res=;
res = ans[m] * c[n][m];
printf("%lld\n",res);
} return ;
}
hdu2068-RPG的错排-(dp递推式)的更多相关文章
- hdu2068 RPG的错排 组合数/递推
#include<stdio.h> ]; long long c(int a,int b) { ,j; ;i>=a-b+,j<=b;i--,j++) sum=sum*i/j; ...
- ACM_错排(递推dp)
RPG的错排 Time Limit: 2000/1000ms (Java/Others) Problem Description: 今年暑假GOJ集训队第一次组成女生队,其中有一队叫RPG,但做为集训 ...
- HDU2068 RPG的错排 —— 错排
题目链接:https://vjudge.net/problem/HDU-2068 RPG的错排 Time Limit: 1000/1000 MS (Java/Others) Memory Lim ...
- HDU-2068 RPG的错排(组合, 错排)
RPG的错排 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- Hdu2068 RPG的错排 2017-06-27 15:27 30人阅读 评论(0) 收藏
RPG的错排 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submis ...
- hdu2068 RPG的错排 错排+组合
RPG的错排 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- hdu2068 RPG的错排
RPG的错排 时间限制:1000/1000 MS(Java / Others)内存限制:32768/32768 K(Java / Others)总提交内容:16421接受的提交内容:6670 问题描述 ...
- ACM学习历程—HDU2068 RPG的错排(组合数学)
Description 今年暑假杭电ACM集训队第一次组成女生队,其中有一队叫RPG,但做为集训队成员之一的野骆驼竟然不知道RPG三个人具体是谁谁.RPG给他机会让他猜猜,第一次猜:R是公主,P是草儿 ...
- 神、上帝以及老天爷--hdu2048(错排,递推)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2048 1. N张字条的所有可能排列自然是N!(分母). 现在的问题就是求N张字条的错排数f(N)(分子 ...
随机推荐
- HDU校赛 | 2019 Multi-University Training Contest 5
2019 Multi-University Training Contest 5 http://acm.hdu.edu.cn/contests/contest_show.php?cid=852 100 ...
- CSP2019-S宝典
目录 CSP2019-S宝典 模板 博客 快读 vim配置 对拍 CSP2019-S注意事项 考前 考时 考后 游记 Day -2(UPDATE:2019-11-14) Day -1(UPDATE:2 ...
- [Atcoder AGC029C]Lexicographic constraints
题目大意:给定$n$个字符串的长度$a_i$,问至少用几种字符可以构造出字符串$s_1\sim s_n$,满足$|s_i|=a_i$且$s_1<s_2<\cdots<s_n$. $ ...
- java运算符的优先级别
一.运算符的优先级 运算符按照优先级别的高低排序分别是:自加/减运算符. 算术运算符.比较运算符.逻辑运算符.赋值运算符.具体请参考下表: 顺序 运算符 1. 括号,如 ( ) 和 [ ] 2. 一元 ...
- java中Math类
Math类 Math类是一个很有用的数学帮助类,使用也非常简单,这个类比较特殊,首先他和String类一样都是用final修饰,所以不能有子类,还有就是它的构造方法是私有的,也就是我们不能通过new的 ...
- Django--视图函数
目录 视图函数 HttpRequest对象 request属性 request常用方法 HttpResponse对象 render() redirect() JsonResponse 视图函数 一个视 ...
- ASP.NET 后台 COOKIE 的设置
这几年经常与安全打交道,深知 COOKIE 对一个网站的安全影响有多大,所以在编写相与 cookie 相关代码的时候,都会特别的小心. 最近做一个系统,有几个地方用到 cookie, 然后统一把 co ...
- Myeclipse6.5迁移到IDEA
背景 myeclipse开发的javaweb项目用svn管理.现要转用idea开发.因为发现idea实在是太好用了.myeclipse6.5是个纯净版,用了两年,对于新手来说用myeclipse6.5 ...
- 13、vue如何解决跨域问题
开发环境:配置config文件夹中index.js文件: proxyTable: { '/api': { target: 'http://10.10.1.242:8245',//后端地址 // sec ...
- Android 指定调用已安装的某个“相机”App
在做项目时,有这样一个需求:如果我的手机中安装了四个相机软件,那么,在调用系统相机的时候,这四个相机软件都会被列出来,但是其中的两个在拍照完后并不能将拍得的照片返回给我,因此,能不能指定开启一个我已知 ...