URAL 1142——Relations——————【dp】
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u
Description
Background
a < b
b < a
b = c < a a = c < b b < a = c a < b < c
a < c < b b < a < c b < c < a c < a < b
c < b < a
Problem
Input
Output
Sample Input
| input | output |
|---|---|
2 |
3 |
题目大意:给你n个人,让你给n个人排名,可以有并列,问你有多少种排名情况。
解题思路:定义dp[i][j]表示j个人有i个名次,那么dp[1][i] = 1,而dp[i][i] = (i!) i的阶乘。dp[i][j] = i*dp[i][j-1] + i*dp[i-1][j-1]。表示当第j个人加入的话,要么第j个人跟某些人等名次,要么有一个单独的名次。当第j个人跟其他人等名次的时候,他可以选择i种名次中的任意一种,当第j个人有单独的名次的时候,他可以在i-1种名次形成的i个空中选一个。 思路转自:http://www.zhihu.com/question/30200444?sort=created
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
typedef long long LL;
LL fact[20],dp[20][20];
void fac(){
fact[0] = 1;
for(LL i =1; i <= 15; i++){
fact[i] = fact[i-1]*i;
}
}
void prin(){
for(int i = 1; i <= 12; i++){
dp[1][i] = 1;
dp[i][i] = fact[i];
}
for(int i = 2; i <= 12; i++){
for(int j = i+1; j <= 12; j++){
dp[i][j] = i*(dp[i][j-1] + dp[i-1][j-1]);
}
}
}
int main(){
LL n;
fac();
prin();
while(scanf("%lld",&n)!=EOF&&n!=-1){
LL ans = 0;
for(int i = 1; i <= n; i++){
ans += dp[i][n];
}
printf("%lld\n",ans);
}
return 0;
}
uralID: 196348LD
URAL 1142——Relations——————【dp】的更多相关文章
- Kattis - honey【DP】
Kattis - honey[DP] 题意 有一只蜜蜂,在它的蜂房当中,蜂房是正六边形的,然后它要出去,但是它只能走N步,第N步的时候要回到起点,给出N, 求方案总数 思路 用DP 因为N == 14 ...
- HDOJ 1423 Greatest Common Increasing Subsequence 【DP】【最长公共上升子序列】
HDOJ 1423 Greatest Common Increasing Subsequence [DP][最长公共上升子序列] Time Limit: 2000/1000 MS (Java/Othe ...
- HDOJ 1501 Zipper 【DP】【DFS+剪枝】
HDOJ 1501 Zipper [DP][DFS+剪枝] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- HDOJ 1257 最少拦截系统 【DP】
HDOJ 1257 最少拦截系统 [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- HDOJ 1159 Common Subsequence【DP】
HDOJ 1159 Common Subsequence[DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- HDOJ_1087_Super Jumping! Jumping! Jumping! 【DP】
HDOJ_1087_Super Jumping! Jumping! Jumping! [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- POJ_2533 Longest Ordered Subsequence【DP】【最长上升子序列】
POJ_2533 Longest Ordered Subsequence[DP][最长递增子序列] Longest Ordered Subsequence Time Limit: 2000MS Mem ...
- HackerRank - common-child【DP】
HackerRank - common-child[DP] 题意 给出两串长度相等的字符串,找出他们的最长公共子序列e 思路 字符串版的LCS AC代码 #include <iostream&g ...
- LeetCode:零钱兑换【322】【DP】
LeetCode:零钱兑换[322][DP] 题目描述 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成 ...
随机推荐
- 简单的linux service(linux服务)编写,运行示例
1.写一个简单小程序 #include<stdio.h> #include<stdlib.h> int main(int argc,char **argv) { while(1 ...
- PowerDesigner 16.5 链接SQL Server 2008R2
链接的目的主要是为了使用PowerDesigner反向工程生成数据字典 Step1: 在Workspace中创建New Physical Data Model, 否则不会出现Database菜单 当链 ...
- Python lib库docker-py和docker的区别
1)两者的安装方式 pip install docker A Python library for the Docker Engine API pip install docker-py A Pyth ...
- day02.2-常用Linux命令整理
Linux命令语法格式: 命令 [选项] [参数] 1). 命令:告诉Linux操作系统执行什么: 2). 选项:说明命令的运行方式.选项部分是以字符‘-’开始的: 3). 参数:说明 ...
- web安全问题-csrf
web安全问题 csrf <script> document.write(` <form name="commentForm" target="csrf ...
- P3943 星空 区间异或差分
\(\color{#0066ff}{ 题目描述 }\) 逃不掉的那一天还是来了,小 F 看着夜空发呆. 天上空荡荡的,没有一颗星星--大概是因为天上吹不散的乌云吧. 心里吹不散的乌云,就让它在那里吧, ...
- 贪心+DP【洛谷P4823】 [TJOI2013]拯救小矮人
P4823 [TJOI2013]拯救小矮人 题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以 ...
- Qt 学习之路 2(16):深入 Qt5 信号槽新语法
Qt 学习之路 2(16):深入 Qt5 信号槽新语法 豆子 2012年9月19日 Qt 学习之路 2 53条评论 在前面的章节(信号槽和自定义信号槽)中,我们详细介绍了有关 Qt 5 的信号 ...
- 江西财经大学第一届程序设计竞赛 E
链接:https://www.nowcoder.com/acm/contest/115/E来源:牛客网 题目描述 当你的好友给你发来一条消息,你的消息列表上就会置顶显示该好友的名字以及该好友发给你的消 ...
- Hello World 十大秘密
#include <stdio.h> int main(int argc, char* argv[], char* env[]) { printf("Hello World\n& ...