杭電acm5698-瞬間移動(2016"百度之星" - 初賽(Astar Round2B))

来源:http://www.cnblogs.com/acmwangpeng/archive/2016/05/26/5532797.html
-Advertisement-
Play Games

題目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5698 Problem Description 有一個無限大的矩形,初始時你在左上角(即第一行第一列),每次你都可以選擇一個右下方格子,並瞬移過去(如從下圖中的紅色格子能直接瞬移到藍色格子),求到第nnn ...


題目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5698

Problem Description

有一個無限大的矩形,初始時你在左上角(即第一行第一列),每次你都可以選擇一個右下方格子,並瞬移過去(如從下圖中的紅色格子能直接瞬移到藍色格子),求到第nnn行第mmm列的格子有幾種方案,答案對100000000710000000071000000007取模。

http://acm.hdu.edu.cn/data/images/C702-1003-1.jpg

Input

多組測試數據。

兩個整數n,m(2≤n,m≤100000)n,m(2\leq n,m\leq 100000)n,m(2n,m100000)

Output

一個整數表示答案

Sample Input 4 5 Sample Output 10        
/*
#include<stdio.h>
#include<stdlib.h>
int a[300][300]={0};
int main()
{
    int n,m,i,j; 
    //printf("%d\n",a[1][1]);
    for (i=2;i<300;i++)
    {
        a[i][2] = 1;
        a[2][i] = 1;
    }
    for (i=3;i<300;i++)
    {
        for (j=3;j<300;j++)
        {
            a[i][j] = a[i][j-1]+a[i-1][j];
            a[i][j] = a[i][j]%1000000007;
        }
    }
    while (scanf("%d%d",&n,&m)!=EOF)
    {
        printf("%d\n",a[n][m]);
    }
    return 0;
}
*/

//ac代碼
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<stack>
#include<map>
#define ll __int64
#define mod 1000000007
using namespace std;
ll poww(ll a,ll n)
{
   ll r=1,p=a;
   while(n)
   {
       if(n&1) r=(r*p)%mod;
       n>>=1;
       p=(p*p)%mod;
   }
   return r;
}
ll coun(ll n,ll m) 
{
    ll sum=1; 
    for(ll i=1,j=n;i<=m;i++,j--)
    {
        sum*=j;
        sum%=mod;
        sum*=poww(i,1000000005);
        sum%=mod;
    }
    return sum;
}
 ll x,y,z,t; 
 ll n,k;
 ll ans;
int main()
{
    while(scanf("%I64d %I64d",&x,&y)!=EOF)
    {
        ans=0;
        n=(x+y)-4;
        k=x-2;
        ans=coun(n,k);
        cout<<ans<<endl;
    }
    return 0;
}



/*
//ac代碼
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<queue>
#include<algorithm>
#include<stack>
#include<cstring>
#include<vector>
#include<list>
#include<set>
#include<map>
using namespace std;
#define ll long long
#define mod 1000000007
#define inf 999999999
#define pi 4*atan(1)
//#pragma comment(linker, "/STACK:102400000,102400000")
int scan()
{
    int res = 0 , ch ;
    while( !( ( ch = getchar() ) >= '0' && ch <= '9' ) )
    {
        if( ch == EOF ) return 1 << 30 ;
    }
    res = ch - '0' ;
    while( ( ch = getchar() ) >= '0' && ch <= '9' )
        res = res * 10 + ( ch - '0' ) ;
    return res ;
}
void extend_Euclid(ll a, ll b, ll &x, ll &y)
{
    if(b == 0)
    {
        x = 1;
        y = 0;
        return;
    }
    extend_Euclid(b, a % b, x, y);
    ll tmp = x;
    x = y;
    y = tmp - (a / b) * y;
}
ll combine1(ll n,ll m) //計算組合數C(n,m)
{
    ll sum=1; //線性計算
    for(ll i=1,j=n;i<=m;i++,j--)
    {
        sum*=j;
        sum%=mod;
        ll x,y;
        extend_Euclid(i,mod,x,y);
        sum*=(x%mod+mod)%mod;
        sum%=mod;
    }
    return sum;
}
int main()
{
    ll x,y,z,i,t;
    while(~scanf("%I64d%I64d",&x,&y))
    {
        ll n,k;
        ll ans=0;
        k=x-2;
        n=(x+y)-4;
        ans=combine1(n,k);
        printf("%I64d\n",ans);
    }
    return 0;
}

*/

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • I am using `&`: why isn't the process running in the background? No problem. We won't show you that ad again. Why didn't you like it? Uninteresting Mi ...
  • 1.安裝方法1:Mac電腦上面安裝很簡單,直接下載需要的版本解壓即可: 下載網址 https://www.mongodb.com/download-center?jmp=nav#community 方法2: brew install mongodb 2. mongodb 數據預設存在/data/db ...
  • 上篇對python中的字元串進行了列舉和簡單說明,但這些方法太多,逐一背下效率實在太低,下麵我來對這些方法安裝其功能進行總結: 1.字母大小寫相關(中文無效) 1.1 S.upper() -> string 返回一個字母全部大寫的副本 1.2 S.lower() -> string 返回一個字母全是 ...
  • 當我們創建一個集合以後,可以直接使用system.out.println()來列印這個集合,但是,我們需要可以對每個元素進行操作,所以,這裡需要使用迭代器來遍歷集合 迭代器其實就是集合取出元素的方式 調用List對象的iterator()方法,得到Iterator對象,這個類是個介面類型,因此可以知 ...
  • 當今的技術領域,開發者人數最為之多的群體便是web領域,與之相關崗位的包括前端工程師,後臺工程師,移動端開發工程師等等。然而由於受時代浮躁氛圍的影響,許多開發者對最為基礎的HTTP協議都不甚瞭解,這也正是本篇文章的目的--簡單總結一下 瞭解HTTP協議之前你需要掌握的一些基礎知識,基本術語等等。 基 ...
  • 今天主要內容是線性回歸的介紹 原則:在進行任何正式分析之前,先要對數據進行可視化分析,看看直觀效果。 當沒有任何其他附加信息的情況下,對一個變數的最佳假設也是最基本的假設,就是其均值。(前提是使用平方誤差作為衡量準則時) 第二層信息就是可以被利用的二元或多元區分型的信息,這類信息可以輔助我們的預測。 ...
  • 本節大綱: 一:在執行list()函數或者dict()函數首先是調用list()函數或者dict()方法會自動調用該函數的__init__方法進行數據的初始化,list()函數通過一個可迭代的對象,用for迴圈進行遍歷插值。 上述的過程:首先list()函數調用本身的__init__方法進行數據的初 ...
  • 1.web.xml 配置: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <span style="font-size: 15px;"><servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...