Gym100025K

来源:https://www.cnblogs.com/iwllbeback/archive/2019/04/05/10659746.html
-Advertisement-
Play Games

矩陣快速冪 設答案為f(i) 舉個例子: 當i==2時,包含0的值有:10,20,30,40,50,60,70,80,90,100;0的個數為11,f(2)=11; i==3時;可以從i==2的情況遞推, 第一步:i==2時的數據範圍:1-100;在這100個數後面補0;補0後,這些數在1-1000 ...


矩陣快速冪

設答案為f(i)

舉個例子:

i==2時,包含0的值有:10,20,30,40,50,60,70,80,90,100;0的個數為11,f(2)=11;

i==3時;可以從i==2的情況遞推,

第一步:i==2時的數據範圍:1-100;在這100個數後面補0;補0後,這些數在1-1000的範圍之內,合法,0的個數增加了100個,也就是10^(i-1);

第二步:把i==2時包含0的有效值拿出來,在這些值後面補0,1,2,3,4,5,6,7,8,9;

比如70;補數之後就成了:700,701,702,703,704,705,706,707,708,709;這樣70裡面0的個數就被計算了10次。至於700裡面由於後面補零增加的一個0,這個可以發現已經在第一步中計算過了。因此加上10*f(i-1);

但要知道100後面補數的話,1001,1003,1003,1004,1005,1006,1007,1008,1009都是不合法的。不合法的情況有9種,每種裡面包含0的個數為(i-1)

因此遞推式為f(i)=10*f(i-1)+10^(i-1)-9*(i-1);

接下來就可以愉快的矩陣快速冪了。

#include<bits/stdc++.h>
using namespace std;
int f[10];
#define ll long long
ll mod;
ll res[4][4];
ll ans[4];
void Ans()
{
    ll tmp[4]={0};
    for(int i=0;i<4;++i)
    {
        for(int j=0;j<4;++j)
        {
            tmp[i]=(tmp[i]+res[i][j]*ans[j])%mod;;
        }
    }
    for(int i=0;i<4;++i)ans[i]=tmp[i];
}
void A()
{
    ll tmp[4][4]={0};
    for(int i=0;i<4;++i)
    {
        for(int j=0;j<4;++j)
        {
            for(int k=0;k<4;++k)tmp[i][j]=(tmp[i][j]+res[i][k]*res[k][j])%mod;
        }
    }
    for(int i=0;i<4;++i)for(int j=0;j<4;++j)res[i][j]=tmp[i][j];
}
void init(ll n)
{
    --n;
    res[0][0]=10%mod;res[0][1]=10%mod;res[0][2]=(-9%mod+mod)%mod;
    res[1][1]=10%mod;
    res[2][2]=res[2][3]=1;
    res[3][3]=1;
    for(int i=0;i<4;++i)ans[i]=1;
    while(n){
        if(n&1)Ans();
        n>>=1;A();
    }
    cout<<ans[0]<<endl;
}
int main()
{
    /*
    f[1]=1;
    for(int i=2;i<=6;++i){
        f[i]=10*f[i-1]+pow(10,i-1)-9*(i-1);
        cout<<f[i]<<endl;
    }
    */
    freopen("zeroes.in","r",stdin);
    freopen("zeroes.out","w",stdout);
    ll k;
    cin>>k>>mod;
    if(mod==1)cout<<0<<endl;
    else init(k);
}

 


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

-Advertisement-
Play Games
更多相關文章
  • 第四節 數據類型(列表、元祖) 今日內容 列表 元祖 1、列表 1.格式 2.公共方法 1.len 計算長度 2.索引 輸出某一個元素 3.切片 輸出某一段元素 4.修改(字元串/數字/布爾除外) 5.步長 選取列表中第幾個元素 6.for迴圈 註意:for和while的應用場景: 有窮盡優先使用f ...
  • XML的解析簡介: 在學習JavaScript時,我們用的DOM來解析HEML文檔,根據HTML的層級結構在記憶體中分配一個樹形結構,把HTML的標簽啊,屬性啊和文本之類的都封裝成對象。 比如:document對象,element對象,屬性對象,文本對象,Node結點對象 我們通常有兩種方式來解析XM ...
  • (1) plot是標準的繪圖庫,調用函數plot(x,y)就可以創建一個帶有繪圖的圖形視窗(其中y是x的函數)。輸入的參數為具有相同長度的數組(或列表);或者plot(y)是plot(range(len(y)),y)的簡寫。 例1:python實現使用200個採樣點來繪製sin(x),並且每隔四個點 ...
  • 一、元組tuple 1、作用 存多個值,對比列表來說,元組不可變,主要是用來讀。 2、定義 與列表類型比,只不過[ ]換成() 3、常用操作 4、元組案列 二、字典dict 特別瞭解:dict是python中僅存的mapping類型 1、作用 存多個值,key-value存取,取值速度快。 2、定義 ...
  • 一,本機配置 Win10 64bit NVIDIA GeForce GTX 960M Python3.7(Anaconda) 二,安裝CUDA 親測,TensorFlow-gpu1.13.1支持cuda10.0的版本,所以我們可直接選擇cuda10.0的版本 Window10下載CUDA10 安裝步 ...
  • PHP原生寫的生成圖片縮略圖類,本文以京東商品圖片為例,分別生成三種不同尺寸的圖片。調用方法很簡單隻要傳參數高度和寬度,及新圖片的名稱。 引入縮略圖類 生成三個不同尺寸縮略圖 本實例下載:https://www.sucaihuo.com/php/867.html ...
  • John and Mary want to travel between a few towns A, B, C ... Mary has on a sheet of paper a list of distances between these towns. ls = [50, 55, 57, 5 ...
  • 1.變數的作用域和靜態變數 函數的參數以及參數的引用傳遞 函數的返回值以及引用返回 外部文件的導入 系統內置函數的考察 變數的作用域也稱為變數的範圍,變數的範圍即他定義上下文的背景(也是它生效的範圍)。大部分php變數只有一生效的範圍,這個單獨的範圍也包括include 和require 引入的文件 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...