http://acm.timus.ru/problem.aspx?space=1&num=1172

水题DP   大整数直接上java

代码:

import java.math.BigInteger;
import java.util.Scanner; public class Main { /**
* @param args
*/
static final int N = 35; public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
BigInteger[][][][] dp = new BigInteger[N][N][N][4];
int n = in.nextInt();
for (int i = 0; i <= n; ++i) {
for (int j = 0; j <= n; ++j) {
for (int l = 0; l <= n; ++l) {
for (int k = 1; k <= 3; ++k) {
dp[i][j][l][k]=BigInteger.ZERO;
}
}
}
}
dp[0][0][0][1] = BigInteger.ONE;
for (int i = 0; i <= n; ++i) {
for (int j = 0; j <= n; ++j) {
for (int l = 0; l <= n; ++l) {
for (int k = 1; k <= 3; ++k) {
if (dp[i][j][l][k].compareTo(BigInteger.ZERO) == 1) {
if (k != 1 && i < n) {
dp[i + 1][j][l][1] = dp[i + 1][j][l][1]
.add(dp[i][j][l][k].multiply(BigInteger
.valueOf(Math.max(1, n - i - 1))));
}
if (k != 2 && j < n) {
dp[i][j + 1][l][2] = dp[i][j + 1][l][2]
.add(dp[i][j][l][k].multiply(BigInteger
.valueOf(n - j)));
}
if (k != 3 && l < n) {
dp[i][j][l + 1][3] = dp[i][j][l + 1][3]
.add(dp[i][j][l][k].multiply(BigInteger
.valueOf(n - l)));
}
}
}
}
}
}
System.out.println(dp[n][n][n][1].divide(BigInteger.valueOf(2L)));
} }

1172. Ship Routes的更多相关文章

  1. hdu3599 War(最大流)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud War Time Limit: 2000/1000 MS (Java/Others ...

  2. War(最短路+最大流)

    War http://acm.hdu.edu.cn/showproblem.php?pid=3599 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  3. 渡轮问题Ship

    题目描述 Palmia河从东往西流过Palmia国,把整个国家分成南北两半.河的两岸各有N个城市,北岸的每一个城市都与南岸的一个城市互为友好城市,而且任意两个北岸城市的友好城市都不相同.每一对友好城市 ...

  4. routes.rb和link_to的一些规则

    rails文档中描述了一个知识,link_to方法用于产生链接,但链接是根据routes.rb中的路由规则来产生的.这又分为面向资源和非面向资源两种产生链接的方法.比如 routes.rb文件中有两条 ...

  5. A ship is always safe at the shore - but that is not what it is built for.

    A ship is always safe at the shore - but that is not what it is built for. 船靠岸边总是安全的,但那不是建造它的目的.

  6. Python requests 为pfsense 添加Routes

    # !/usr/bin/python 2 # -*- coding: utf-8 -*- __author__ = "Evilxr" import requests ips = o ...

  7. Rails ---> routes.rb 详解

    理解路由的目的 看懂routes.rb文件中的代码 使用经典的hash风格或者现在比较流行的Restful风格构造你自己的路径 断定一个路径会映射到哪一个controller和action 路由的双重 ...

  8. [转]学习Nop中Routes的使用

    本文转自:http://www.cnblogs.com/miku/archive/2012/09/27/2706276.html 1. 映射路由 大型MVC项目为了扩展性,可维护性不能像一般项目在Gl ...

  9. XidianOJ 1176 ship

    题目描述 The members of XDU-ACM group went camp this summer holiday. They came across a river one day. T ...

随机推荐

  1. vlc播放yuv文件

    vlc.exe --demux rawvideo --rawvid-fps 25 --rawvid-width 480 --rawvid-height 272 --rawvid-chroma I420 ...

  2. Prince2和PMP的区别,大多数人都没有搞清楚!

    [涨姿势]Prince2和PMP的区别,大多数人都没搞清楚!   项目管理领域有2个流行的知识体系:☑ 一个是美国项目管理协会(PMI)开发的"项目管理知识体系(PMBOK,Project ...

  3. 基于webrtc的资源释放问题(一)

    基于webrtc的资源释放问题(一) ——重复释放webrtc的相关资源 背景: 视频通讯大都只是作为一个功能存在于各种应用中,比如微信,qq .既然只是应用的一部分,这样就涉及反复的开启和关闭视频通 ...

  4. Linux 打通ssh无密码登录

    像hadoop和spark这类的集群,因为master节点要控制slave节点,以及各节点之间要交互信息,所以需要各节点之间能够互相无密码登录. 通过RSA保存密码, 基本操作如下: Step 1: ...

  5. noi 4977 怪盗基德的滑翔翼

    题目链接: http://noi.openjudge.cn/ch0206/4977/ LIS http://paste.ubuntu.com/23406594/

  6. treegrid and datagrid ctrl or shift selectRow

    var tg = $('#tg');tg.treegrid({...}); // create treegridvar panel = tg.treegrid('getPanel');var body ...

  7. C++字符串与转移字符

    先看以下代码: #include<iostream> #include<string> using namespace std; int main() { string str ...

  8. php : 匿名函数(闭包) [二]

    摘自: http://www.cnblogs.com/yjf512/archive/2012/10/29/2744702.html php的闭包(Closure)也就是匿名函数.是PHP5.3引入的. ...

  9. win安装NLTK出现的问题

    一.今天学习Python自然语言处理(NLP processing) 需要安装自然语言工具包NLTK Natural Language Toolkit 按照教程在官网https://pypi.pyth ...

  10. MFC编程入门之七(对话框:为对话框添加控件)

    创建对话框资源需要创建对话框模板.修改对话框属性.为对话框添加各种控件等步骤,前面一讲中已经讲了创建对话框模板和修改对话框属性,本节继续讲如何为对话框添加控件.  上一节中创建了一个名为"A ...