hdu 1267 下沙的沙子有几粒?

题意分析: 1)当m>=n时,字符串是杭电串串;

这样的话我就可以用一个二维数组的下标分别表示H和D的数量,例如dp [ m ] [ n ];

在dp[m][n]数组中这有m>=n的下标数组是有值得,其他的为零;

那么接下来就只要求满足条件的值放入对应的数组中了;

把m和n的值都定为21,用打表法,可增强运行速度;

2)否着不是。

主旨句:“假定一个字符串由m个H和n个D组成,从左到右扫描该串,如果字符H的累计数总是不小于字符D的累计数,那么,

满足条件的字符串总数就恰好和下沙的沙粒一样多。”

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		long[][] dp = new long[21][21];//int 装不下
		//当D的数量只有一个时,H无论有多少,都只有一种排列方式
		for (int i = 1; i < dp.length; i++) {
			dp[1][i] = 1;
		}
		for (int i = 1; i < dp.length; i++) {// 这表示行,
			for (int j = 1; j < dp[i].length; j++) {
				//条件:j >= i ;
				if (i > j) {
					continue;
				}
				//看图写j和i的位置,最好测试数据
				dp[i][j] += dp[i - 1][j] + dp[i][j - 1];
			}
		}
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int m = sc.nextInt();
			int n = sc.nextInt();
			System.out.println(dp[n][m]);
		}
	}

}




下沙的沙子有几粒?

很多人在国际知名期刊上发表了研究论文,这其中,尤以中国超级女科学家宇春小姐写的一篇研究报告最为著名,报告发表在science上,标题是“杭电为什么这样红?” 文中研究发现:Hangzhou Dianzi University这个校名具有深刻的哲学思想和内涵,她同时提出了一个大胆的猜想:“假定一个字符串由m个H和n个D组成,从左到右扫描该串,如果字符H的累计数总是不小于字符D的累计数,那么,满足条件的字符串总数就恰好和下沙的沙粒一样多。”
这就是当今著名的“宇春猜想”!
虽然还没能从数学上证明这个猜想的正确性,但据说美国方面在小布什的亲自干预下,已经用超级计算机验证了在(1<=n<=m<=1000000000000)时都是正确的。my god! 这是一个多么伟大的猜想!虽然我们以前总说,21世纪是属于中国的,可还是没想这一天来的这么早,自豪ing... + 感动ing...
感动和自豪之余,问题也来了,如果已知m和n的值,请计算下沙的沙粒到底有多少。

Ps:
1. 中国有关方面正在积极行动,着手为宇春小姐申报诺贝尔奖。
2、“宇春猜想”中提到的H和D组成的字符串现在被学术界成为“杭电串串”(“杭电串串”前不久被一个卖羊肉串的注册了商标,现在我校正在积极联系买断,据说卖方的底价是1000万欧元,绝不打折,看来希望不大,sigh...)
 

Input
输入数据包含多个测试实例,每个占一行,由两个整数m和n组成,m和 n 分别表示字符串中H和D的个数。由于我们目前所使用的微机和老美的超级计算机没法比,所以题目给定的数据范围是(1<=n<=m<=20)。
 

Output
对于每个测试实例,请输出下沙的沙粒到底有多少,计算规则请参考“宇春猜想”,每个实例的输出占一行。
 

Sample Input
  
  
1 1 3 1
 

Sample Output
  
  
1 3
 

Author
lcy







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值