hdu 1133 Buy the Ticket(Catalan)

杭电1133 Buy the Ticket(大数,递推) The "Harry Potter and the Goblet of Fire" will be on show in the next few days. As a crazy fan of Harry Potter, you will go to the cinema and have the first sight, won’t you? Suppose the cinema onl 阅读详情

Buy the Ticket

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5651    Accepted Submission(s): 2357


Problem Description
The "Harry Potter and the Goblet of Fire" will be on show in the next few days. As a crazy fan of Harry Potter, you will go to the cinema and have the first sight, won’t you?

Suppose the cinema only has one ticket-office and the price for per-ticket is 50 dollars. The queue for buying the tickets is consisted of m + n persons (m persons each only has the 50-dollar bill and n persons each only has the 100-dollar bill).

Now the problem for you is to calculate the number of different ways of the queue that the buying process won't be stopped from the first person till the last person. 
Note: initially the ticket-office has no money. 

The buying process will be stopped on the occasion that the ticket-office has no 50-dollar bill but the first person of the queue only has the 100-dollar bill.
 

Input
The input file contains several test cases. Each test case is made up of two integer numbers: m and n. It is terminated by m = n = 0. Otherwise, m, n <=100.
 

Output
For each test case, first print the test number (counting from 1) in one line, then output the number of different ways in another line.
 

Sample Input
3 0 3 1 3 3 0 0
 

Sample Output
Test #1: 6 Test #2: 18 Test #3: 180
 

Author
HUANG, Ninghai

题意:

m個人拿50,n個人拿100,而且售票处没有零钱。求这排人最终能够能全买到票的方案数

(如果没有50零钱找给拿一百的人则停)。


思路:

排列的所有可能情况:C(n+m,m)

假设一个数列 0110010当买到第三个人的时候便停止了,将后面的数1->0,0->1便能得到 0111101

反之亦然,于是我们可以得出他们是一一对应的。


于是我们用所有可能减去不成立的

(C(n+m,m) - C(n+m,m+1))*m!*n! = (n+m)! * (m-n+1) / (m+1); 

然后再利用JAVA的大整数即可 


import java.math.BigInteger;
import java.util.Scanner;

public class Main {

	static BigInteger []F =  new BigInteger[105];
	static BigInteger []A =  new BigInteger[205];
	public static void ini()
	{
		F[1] = BigInteger.valueOf(1);
		A[1] = BigInteger.valueOf(1);
		A[0] = BigInteger.valueOf(0);
		F[0] = F[1];
		for(int i = 2;i < 105;i++)
		{
			F[i] = F[i-1].multiply(BigInteger.valueOf(i*4-2)).divide(BigInteger.valueOf(i+1));
		}
		for(int i = 2;i <= 203;i++)
		{
			A[i] = A[i-1].multiply(BigInteger.valueOf(i));
		}
	}
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		ini();
		Scanner Reader = new Scanner(System.in);
		int x,y;
		int cas = 1;
		BigInteger ans;
		while(true)
		{
			x = Reader.nextInt();
			y = Reader.nextInt();
			
			if(x == 0 && y == 0)
				break;
			System.out.println("Test #"+cas+":");
			cas++;
			if(x < y){
				System.out.println("0");
			}
			else
			{
			  int t = x+y;
			  ans = A[t].multiply(BigInteger.valueOf(x-y+1)).divide(BigInteger.valueOf(x+1));
						  System.out.println(ans);
			}
		}     
	}

}



第9集:AI 驱动的智能日志分析!用 RAG 实现秒级日志检索与异常检测 文章摘要:AI驱动的智能日志分析系统 本文介绍了一个基于RAG(检索增强生成)技术的智能日志分析解决方案,旨在解决传统日志系统中的三大痛点:机械的关键词搜索、缺乏语义理解、告警与日志割裂。系统通过以下步骤实现: 环境准备:安装必要的Python依赖库,包括日志处理、Elasticsearch/Loki连接和时序异常检测工具。 核心设计:构建日志处理流水线,分为日志采集、向量化存储和AI检索分析三个阶段,创建专门的日志分析Agent。 技术实现:使用ChromaDB存储日志向量,通过HuggingFace E 阅读详情

相关推荐

从零开始用TS开发babylonjs - 本机环境搭建

babylonjs,初始化本地安装,web3d引擎

han3527638的专栏 794

杭电ACM1133——Buy the Ticket

买票问题,m个拿50,n个拿100,买票处没钱找,这m + n这么排才合法。 公式: (C(m + n, n) - C(m + n, m + 1) ) * m ! * n !     化简后 : (m + n)! * (m - n + 1)/ (m + 1).              总的情况          不合法情况            #include #include

XD 1233

Python爬虫实战:逆向解析央视频加密参数(附完整代码)

本文详细解析了央视频加密体系的技术实现,通过Python逆向工程实战演示如何解密动态密钥、AES加密和自定义哈希算法等核心组件。文章提供完整代码示例,涵盖GUID生成、参数构造和异步请求处理,帮助开发者掌握现代视频平台的反爬机制破解方法。

weixin_42532473的博客 1129

杭电1133-Buy the Ticket

Buy the Ticket Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3598    Accepted Submission(s): 1514 Problem Description The "Harry Po

ecjtu_acm_菜鸟—鱼尾尾 1574

使用openMVS对样例数据进行重建

openMVS根据github上的步骤进行编译。注意,如果没有GPU,用不了CUDA的话,那么需要在openMVS目录下找到CmakeLists.txt文件,把CUDA设置为OFF: SET(OpenMVS_USE_CUDA OFF CACHE BOOL "Enable CUDA library") 可执行的文件生成在openMVS_build/bin/里面,在openMVS_build文件夹下打开终端,按照顺序执行如下命令即可逐步重建。其中,-w 设置的是数据的总路径,-i 后接输入的文件名,-o

YuhsiHu的博客 2886

零中频接收机实战:DC Offset的5种常见解决方案与调试技巧

本文针对零中频接收机中DC Offset这一核心挑战,深入剖析了其产生机理与对信号解调的严重影响。文章从实战角度出发,系统性地介绍了五种解决方案,包括硬件预防、数字域校正、I/Q不平衡联合校正等,并分享了关键的实验室调试与产线测试技巧,旨在帮助射频工程师有效提升接收机性能。

weixin_29234509的博客 399

hdu 1133 · 【Buy the Ticket】Catalan数+java大数类

一瞥,排队买票问题,用Catalan(卡塔兰数)。

张天枭の博客 501

FineBI学习总结

交叉表:一组作为行标题显示在表的左部,另一组作为列标题显示在表的顶部。连接到数据,如果数据不满足数据分析的需求,先进行自助数据集处理。数据集分类:DB表、SQL、Excel、自助数据集。分组表:将报表中的数据按相同项合并为一组显示。1、数据准备2、制作仪表板3、分享仪表板。左合并:保留左边全部数据,合并右边。右合并:保留右边全部数据,合并左边。上下拼接:上下拼接到一张表数据。3、如何实现拼表:多表拼一张。分组–业务包–数据集–字段。字段分类:数值、文本和日期。目录–仪表板–数据准备。维度:文本和日期类型。

Rsun2018的博客 1561

HDU 1133 Buy the ticket catalan 数

转载:原博客地址 http://www.cppblog.com/MiYu/archive/2010/08/08/122676.html题目地址 : http://acm.hdu.edu.cn/showproblem.php?pid=1133 题目描述: Problem Description The “Harry Potter and the Goblet of Fire

一横一竖 475

手把手教你YOLOv8/YOLOv11分割训练自己数据集和推理,并教你使用Labelme工具标注数据(附分割网络结构图)

YOLOv8-seg 和 YOLOv11-seg 都是一种高效实例分割算法,实例分割模型的输出是一组勾勒出图像中每个物体的遮罩或轮廓,以及每个物体的类标签和置信度分数。当你不仅需要知道物体在图像中的位置,还需要知道它们的具体形状时,实例分割就非常有用了,功能非常强大,可以应对各种视觉任务。 YOLOv11-seg 则在 YOLOv8-seg 基础上进一步魔改了模型架构,相对分割速度可能更快,其他指标性能有待测试。实例分割可以用于自动驾驶、医疗图像处理、智能农业监控等领域。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4475

Spring AI 项目实战(五):Spring Boot + AI + DeepSeek + Redis 实现聊天应用上下文记忆功能(附完整源码)

本文介绍了如何基于Spring Boot 3.2、Spring AI 1.0.0-M4、DeepSeek API和Redis构建具备上下文记忆功能的智能聊天应用。项目采用现代化技术栈,包括Java 17、Maven、Lombok等,实现了智能对话、会话管理、异常处理等核心功能。文章详细讲解了环境搭建、配置管理(含Redis和AI服务集成)、核心组件设计(如消息实体、控制器和服务层实现),以及完整的项目结构。该项目提供了美观的Web界面和REST API,支持对话上下文存储(通过Redis实现)和系统监控,可

博客 829

HDU-1133 Buy the Ticket (Catalan数)

公式:(m+n)!*(m-n+1)/(m+1) 简单的大数运算。看似有除法,可以约去,大数相乘就行了。 #include #include #include using namespace std ; int len; int M[305]; void Mult(int *a,int k) { int Curlen=0,tmp; int carry=0; for(int i=0;i<

ZXLS-ZMR的专栏 951

基于STM32的智能浇花系统毕业设计(全部资料)

摘要:本文设计了一种基于STM32单片机的智能浇花系统,集成了环境温湿度检测、土壤温湿度监测、LCD显示、Wi-Fi联网及手机APP远程控制等功能。系统通过传感器实时采集环境参数,自动控制水泵工作实现智能灌溉,同时支持用户通过手机APP远程监控和调节。论文详细阐述了硬件选型、软件设计及系统测试过程,验证了系统的稳定性和实用性。该设计为家庭园艺提供了智能化解决方案,具有节水高效、操作便捷等特点。关键词:STM32;智能灌溉;远程控制;环境监测;Wi-Fi通信。

3254968421的博客 1194

【卡特兰数Catalan+Java大数BigInteger】HDU-1133 Buy the Ticket

注解 1、此题是Catalan数的变形,如果m=n,则就是标准的卡塔兰数。 2、如果m<n,直接输出0。 3、对于m>n的情况,要转换成排列。化简后的公式为:F(N) =(m+n)!*(m-n+1)/(m+1) 4、必须用大数来解决。 代码 import java.math.BigInteger; import java.util.Scanner; public class Ma...

zhanggirlzhangboy的博客 237

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HDU_1133Buy the Ticket(关于catalan)

Buy the Ticket

小小梅花 491

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

hdu 1133 Buy the Ticket(Catalan数)

题目大意:M+N个人排队买票,票的单价是50¥,每个人只能买一张。 M个人拿50的去买,N个人拿100的去买,然后悲剧的是售票处开始的时候没有钱,所以如果拿100块买票人前面的拿50块买票的人小于或者等于用100块买票的人,这种排队方式就不合法,也就是不能顺利全部都买到票(因为没零钱找了)!

u013365671的专栏 580

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【noi 2.6_9288】&【hdu 1133】Buy the Ticket(DP / 排列组合 Catalan+高精度除法)

题意:有m个人有一张50元的纸币,n个人有一张100元的纸币。他们要在一个原始存金为0元的售票处买一张50元的票,问一共有几种方案数。 解法:(学习了他人的推导后~) 1.Catalan数的应用7的变形。(推荐阅读:http://www.cnblogs.com/chenhuan001/p/5157133.html)。P.S.不知我之前自己推出的公式“C(n,m)*C(2*m,m)/(m+1)*...

weixin_34221775的博客 156

HDU 1133 Buy the Ticket 大数+卡兰特数的应用

版权声明:本文为博主原创文章,未经博主允许不得转载。 原题目链接:点击打开链接 1、首先先考虑人无区别的情况 令f(m,n)表示有m个人手持50元的钞票,n个人手持100元的钞票时共有的方案总数。则可以分以下几种情况讨论: (1)当n=0时      n=0意味着排队购票的所有人手中拿的都是50元的钞票,那么这m个人的排队方案总数为1. (2)当m      显然,f(m

GoGina的博客 618

[HDU] 1133-Buy the Ticket

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1133 n:50元个数 m:100元个数 一看到这个题目我就顺着思路写了,先找出不同种排法再*n!*m!用BigInteger保存结果,最后超时。在捣鼓了很久之后在网上看到了首次接触的Catalan数,通过递推就很容易得到答案。 Cataland的一些详细介绍:http://daybreakcx.is...

Orion_lin的博客 243

HDU 1133 Buy the Ticket (数学、大数阶乘)

Buy the Ticket Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8838Accepted Submission(s): 3684 Problem Description The "Harry...

weixin_30830327的博客 202

hdu 1133 Buy the Ticket

Buy the Ticket Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2898    Accepted Submission(s): 1214 Problem Description The "Harry

shiyuan的专栏 1247

HDU 1133 Buy the Ticket

题目链接:Buy the Ticket 解题思路:当你去寻找M个入栈和N个退栈的序列的时候,其中有许多不能满足题意的。但是根据Catalan数的证明方法类似联想到,当每一组非法序列到K的位置的时候正好出现非法的情况,再将前面K位的全部数字翻转,1变为0,0变为1。这样由于前面部分的1变得比0多了1,最终导致全部的1多了一个,全部的0少了一个。就是m + 1和n - 1.由之前证明Catalan数

CrazySona的专栏 485

HDU 1133 Buy the Ticket 50,100钱买票,大数乘除法,卡特兰数变形

Buy the Ticket Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4418    Accepted Submission(s): 1867 Problem Description The "Harry Pott

小人物的草稿本 1160
上一篇: hdu 1130 How Many Trees?(Catalan数)
下一篇: hdu5601 BestCoder Round #67 (div.2)
Tyuio28
博客等级 码龄11年 12粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值