nyoj(简单数学)Oh, my Paper!

Oh, my Paper!

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描述
Give you a piece of paper, n (row) *m (column) to calculate your is

Calculated from a diagonal line to another diagonal how many walk method (only upward or downward, left, and right away).

输入
The input contains several testcases. Each is specified by two unsigned 32-bit integers n and m The last test case is followed by a line that contains two zeroes. This line must not be processe
输出
For each test case output on a line that how many paths you can calculate
样例输入
2 3
1 1
0 0
样例输出
10
2
提示
the num is a little big ,you‘d better use unsigned
来源
原创
上传者

ACM_贺荣伟

思路:(直接用伟哥的)给你一张纸,n(行)*m(列)你要计算的是

算出从一个对角线到另一个对角线有多少走法(只能向上,向右走)。

分析:一个矩阵,它有行有列,要到达对角线,必定有通过所有的行和列,那么存在两种情况,当行(n)==列(m),即刚好走完列和行,在m+n个里选m或n个组合得C(m+n,m)或C(m+n,n)。

当两者不相等,就要看那个先到,所有最小的必定先到达。

#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
using namespace std;
int main()
{
    long long n,m;
    while(~scanf("%lld%lld",&n,&m),n||m)
    {
        long long a,b;
        a=n+m;
        b=n<m?n:m;
        double sum=1;
        while(b>0)
            sum*=(a--/(double)(b--));
        printf("%.lf\n",sum);
    }
}
时间: 2024-08-18 00:45:17

nyoj(简单数学)Oh, my Paper!的相关文章

hdu 2200 Eddy&#39;s AC难题(简单数学。。)

题意: N个人,每个人AC的题数都不一样. Eddy想从中选出一部分人(或者全部)分成两组.必须满足第一组中的最小AC数大于第二组中的最大AC数. 问共有多少种不同的选择方案. 思路: 简单数学.. 代码: ll C(int n,int x){ ll ans=1; rep(i,1,x){ ans = ans*(n+1-i)/i; } return ans; } int main(){ int n; while(cin>>n){ ll ans = 0; rep(i,2,n){ ans += (C

编译器--简单数学表达式计算器

做了一个能够计算简单数学表达式值的小计算器,算不上是编译器,但用到了编译器的知识.最近在看一些编译器的东西,所以动手写这个最简单的计算器,既是对那些抽象的编译器知识有个形象的认识,也为后面添加复杂的东西--语句打下基础.此计算器是以<编译原理与实践>中实现的tiny编译器为参考写的,tiny是一个值得去研究的编译器,可以说是麻雀虽小,五脏俱全.从词法分析到代码生成都有,并且代码非常清晰易懂.我觉得想要了解编译器,可以从tiny入手,去将它跑起来并分析.废话不多说,开始记录这个小计算器. 先说下

HDU 1018 Big Number (简单数学)

Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25649    Accepted Submission(s): 11635 Problem Description In many applications very large integers numbers are required. Some of these

【龙书笔记】用Python实现一个简单数学表达式从中缀到后缀语法的翻译器(采用递归下降分析法)

上篇笔记介绍了语法分析相关的一些基础概念,本篇笔记根据龙书第2.5节的内容实现一个针对简单表达式的后缀式语法翻译器Demo. 备注:原书中的demo是java实例,我给出的将是逻辑一致的Python版本的实现. 在简单后缀翻译器代码实现之前,还需要介绍几个基本概念. 1. 自顶向下分析法(top-down parsing) 顾名思义,top-down分析法的思路是推导产生式时,以产生式开始符号作为root节点,从上至下依次构建其子节点,最终构造出语法分析树.在具体实现时,它会把输入字符串从左到右

SGU - 123 - The sum (简单数学!)

SGU - 123 The sum Time Limit: 250MS   Memory Limit: 4096KB   64bit IO Format: %I64d & %I64u Submit Status Description Here is your second problem, keep calm and solve it . Nacci sequence of numbers is known to all : F1 = 1; F2 = 1; Fn+1 = Fn + Fn-1,

简单数学(组合数+求数列通项公式)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6467 看到这题,简单数学???对不起我给数学老师丢脸了! 这里解释一下第二步到第三步:假设n=3,第二步{1*C(1,1)+1*C(1,2)+1*C(1,3)+2*C(2,2)+2*C(2,3)+3*C(3,3)},第三步{1*C(1,1)+1*C(1,2)+2*C(2,2)+1*C(1,3)+2*C(2,3)+3*C(3,3)}.可以发现是相等的 之后最后一步就是组合数求和公式2^n. 之后便可以

UVA - 10673 - Play with Floor and Ceil (简单数学!)

题目链接:Play with Floor and Ceil UVA - 10673 Play with Floor and Ceil Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu SubmitStatus Description Problem A Play with Floor and Ceil Input: standard input Output: standard output Tim

L脚本语言编写的简单数学函数库

对于一种编程语言数学计算的功能当然是必不可少的,通过L脚本语言的基本数学运算功能实现数学计算库也很简单 在L脚本语言中,使用库之前需要进行导入,这和C语言的include引用Java的导入jar包是类似的 下面的例子是一个L脚本语言的库文件 #scplib #数学函数库 定义:函数,求圆的周长,半径 开始:函数,求圆的周长 计算:算式,ret,2*3.14*半径 显示:ret 结束:函数,求圆的周长 定义:函数,求圆的面积,半径 开始:函数,求圆的面积 计算:算式,ret,3.14*(半径*半径

汇编语言系列Ⅱ 实现简单数学运算

软件:emu8086 语言:汇编语言(Assembly) 注意:本文列出了两种算术运算的代码,全部代码为博主独自一人编写,会有瑕疵,谨慎使用. 5.计算S=1+2×3+3×4+4×5+···+N(N+1) 5.1设计要求: 设计程序,实现数学公式S=1+2×3+3×4+4×5+···+N(N+1)的算法.数值N由加键盘输入,计算结果在显示终端输出.设计要求:计算结果不超过十六位寄存器的存储能力,如有溢出提示错误. 5.2设计思路: 输入N值然后把N给BH作为循环次数,通过循环实现乘和累加计算,结