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.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成 ...
随机推荐
- java 获取url及url参数解析
java 获取url及url参数解析 一.url编码:URLEncoder.encode(userName); 二.url解码: URLDecoder.decode(userName);
- iOS开发时间处理工具
1.获取当前的时间 /** 获取当前的时间 */ +(NSString*)getCurrentTimes{ NSDateFormatter *formatter = [[NSDateFormatter ...
- 关于jquery.extend()的坑:我的数组变成相同元素了?
首先呢我有一个数组,存放了多个json对象.这些json对象的属性有缺失,我设置了一个对象模板来存放默认值 先来看一段代码 var source = [ { name: 'dapianzi', bor ...
- SSH—Struts2拦截器的应用(防止未登录用户进行操作)
前言 类似于京东.淘宝这些平台,如果单纯的去浏览页面上的一些商品显示,一点问题都没有,但是当你点击商品的订单详情或者想查看一下自己的购物车,那么就会出现通过登录进去的界面,这个就是今天要说的这个拦截器 ...
- Html再学
1. Html是网页的载体.内容就是网页制作者放在页面上想要用户浏览的信息,可以包括文字.图片.视频等. 2. CSS样式是展现.就像网页的外衣.比如,标题字体.颜色变化,或为标题加入背景图片.边 ...
- Jmeter-响应结果unicode转成中文显示
本文为转载微信公众号文章,如作者发现后不愿意,请联系我进行删除 原文链接:http://mp.weixin.qq.com/s?__biz=MjM5OTI2MTQ3OA==&mid=265217 ...
- P2245 星际导航 瓶颈路
\(\color{#0066ff}{ 题目描述 }\) sideman 做好了回到 \(\text{Gliese}\) 星球的硬件准备,但是 \(\text{sideman}\) 的导航系统还没有完全 ...
- linux网络编程中的基本概念
int close(int fd)(假设是服务器端) close 关闭了自身数据传输的两个方向.close一个TCP套接字的默认行为是把该套接字标记成已关闭,然后立即返回到调用进程.该套接字描述符不能 ...
- CF1101B Accordion 模拟
前后扫一遍: #include<iostream> #include<cstdio> #include<algorithm> #include<cstdlib ...
- DropDownList年份的添加
http://blog.sina.com.cn/s/blog_4b9e030e01007sc3.html