A - Relations

Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

Description

Background

Consider a specific set of comparable objects. Between two objects a and b, there exits one of the following three classified relations:
a = b
a < b
b < a
Because relation '=' is symmetric, it is not repeated above.
So, with 3 objects ( abc), there can exist 13 classified relations:
a = b = c       a = b < c       c < a = b       a < b = c
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

Given N, determine the number of different classified relations between N objects.

Input

Includes many integers N (in the range from 2 to 10), each number on one line. Ends with −1.

Output

For each N of input, print the number of classified relations found, each number on one line.

Sample Input

input output
2
3
-1
3
13

题目大意:给你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】的更多相关文章

  1. Kattis - honey【DP】

    Kattis - honey[DP] 题意 有一只蜜蜂,在它的蜂房当中,蜂房是正六边形的,然后它要出去,但是它只能走N步,第N步的时候要回到起点,给出N, 求方案总数 思路 用DP 因为N == 14 ...

  2. HDOJ 1423 Greatest Common Increasing Subsequence 【DP】【最长公共上升子序列】

    HDOJ 1423 Greatest Common Increasing Subsequence [DP][最长公共上升子序列] Time Limit: 2000/1000 MS (Java/Othe ...

  3. HDOJ 1501 Zipper 【DP】【DFS+剪枝】

    HDOJ 1501 Zipper [DP][DFS+剪枝] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...

  4. HDOJ 1257 最少拦截系统 【DP】

    HDOJ 1257 最少拦截系统 [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...

  5. HDOJ 1159 Common Subsequence【DP】

    HDOJ 1159 Common Subsequence[DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...

  6. HDOJ_1087_Super Jumping! Jumping! Jumping! 【DP】

    HDOJ_1087_Super Jumping! Jumping! Jumping! [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...

  7. POJ_2533 Longest Ordered Subsequence【DP】【最长上升子序列】

    POJ_2533 Longest Ordered Subsequence[DP][最长递增子序列] Longest Ordered Subsequence Time Limit: 2000MS Mem ...

  8. HackerRank - common-child【DP】

    HackerRank - common-child[DP] 题意 给出两串长度相等的字符串,找出他们的最长公共子序列e 思路 字符串版的LCS AC代码 #include <iostream&g ...

  9. LeetCode:零钱兑换【322】【DP】

    LeetCode:零钱兑换[322][DP] 题目描述 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成 ...

随机推荐

  1. 容器编排之Kubernetes1.10.2安装与配置

    k8s 1.10.2 https搭建文档 1.下载k8s镜像 方式一:docker hub + github,需要创建一个docker hub账户,连接指定的github账户,docker hub会从 ...

  2. mybatis、Spring整合(eclipse)以及事务管理

    1.项目目录 2.jar包 dbcp:连接池 pool:连接池 logging:日志 log4j:日志 mybatis-spring:用于SqlSession等相关操作 spring相关包 mybat ...

  3. HTTP基本认证和JWT鉴权

    一.HTTP基本认证 Basic Authentication——当浏览器访问使用基本认证的网站的时候, 浏览器会提示你输入用户名和密码. http auth的过程: · 客户端发送http请求 ·  ...

  4. C++基础学习8:类的定义(class)

    先来说说C和C++中结构体的不同 a) C语言中的结构体不能为空,否则会报错(??) b) C语言中内存为空结构体分配大小为0,C++中为结构体和类分配大小为1byte c) C语言中的结构体只涉及到 ...

  5. UICollectionView的基本使用 collectionView

    #pragma mark -- 创建CollectionView - (void)createCollectionView{ //关闭自适应 self.automaticallyAdjustsScro ...

  6. CentOS7l联网

    原文:https://blog.csdn.net/nothing2017/article/details/61420767 步骤: 1.以root管理员身份登录系统,输入   --->(ls / ...

  7. 在线作图工具 Flowchart Maker & Online Diagram Software & Visual Solution

    9款国内外垂直领域的在线作图工具:那些可以替代Visio的应用!-CSDN.NEThttps://www.csdn.net/article/2015-02-12/2823939 Documentsht ...

  8. git ssh密钥的使用

    //配置邮箱,用户名, git config --global user.name git config --global user.email git config --global --list ...

  9. linux 安装 配置网络 备份 快照

    安装系统准备: 1.软件准备 vmware workstation14.vm14key.centos系统镜像 secureCRT http://sw.bos.baidu.com/sw-search-s ...

  10. mysql+gtid主从同步

    安装mysql  yum install mysql-community-client-5.7.17-1.el6.x86_64.rpm mysql-community-common-5.7.17-1. ...