CodeForces 938E Max History 題解

来源:https://www.cnblogs.com/cautx/archive/2019/05/10/10842034.html
-Advertisement-
Play Games

參考自:https://blog.csdn.net/dreaming__ldx/article/details/84976834 https://blog.csdn.net/acterminate/article/details/79339494 題意: 給你一個數組,將數組裡的所有元素進行全排列, ...


參考自:https://blog.csdn.net/dreaming__ldx/article/details/84976834

    https://blog.csdn.net/acterminate/article/details/79339494

題意:

  給你一個數組,將數組裡的所有元素進行全排列,然後

藉助這兩個條件求出Σfa 即可。

分析:

  n可以取到10^6,Time limit 是 3000 ms,直接枚舉有n!種情況,顯然優先認為這是個組合數學問題,找出一個通式本題即可AC。

  從n個位置中挑出n-i+1(大於等於這個數的個數)個位置,這n-i+1個位置中這個數必須是第一位,其他數可以任意排列,即A(n-i,n-i)。然後把剩下的小於他的數插入剩下的空位,即C(n,n-i+1)*A(i-1,i-1)。化簡得A(n,n)/(n-i+1)。

  最終結果就是:n!/(n-l+1)%mod 。

實現:現在就是求逆元的問題了。

關於逆元的知識可參考:https://www.cnblogs.com/Judge/p/9383034.html

附上AC代碼:

 1 #include <iostream>
 2 #include <algorithm>
 3 
 4 using namespace std;
 5 #define mod 1000000007
 6 typedef long long ll;
 7 
 8 ll a[1000005];
 9 ll qp(ll a, ll b)
10 {
11     ll base = a, ans = 1;
12     while (b)
13     {
14         if (b & 1)
15         {
16             ans *= base;
17             ans %= mod;
18         }
19         base *= base;
20         base %= mod;
21         b >>= 1;
22     }
23     return ans;
24 }
25 int main()
26 {
27     ll n;
28     cin >> n;
29     for (ll i = 1; i <= n; i++)
30     {
31         cin >> a[i];
32     }
33     ll fac_n = 1;
34     for (ll i = 2; i <= n; i++)
35     {
36         fac_n *= i;
37         fac_n%=mod;
38     }
39     sort(a+1, a + n+1);
40     ll ans = 0, now;
41     for (ll i = 1; i <= n; i = now)
42     {
43         now = i;
44         while (a[i] == a[now] && now <= n)
45             now++;
46         if (now <= n)
47         {
48             ans = (ans + fac_n * qp(n - i + 1, mod - 2) % mod * (now - i) % mod * a[i] % mod)%mod;//乘(now-i)是因為有(now-i)個a[i]情況相同。
49         }
50     }
51     cout << ans%mod << endl;
52 }

補充:第一次寫博客,如有不足,歡迎指出。

  

 


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

-Advertisement-
Play Games
更多相關文章
  • 在開發中,一個好的用戶操作界面,總會夾雜著一些動畫。css用對少的代碼,來給用戶最佳的體驗感,下麵我總結了一些css動畫屬性的使用方法及用例代碼供大家參考,在不對的地方,希望大佬直接拍磚評論。 1 transition(過渡) 使用語法: 參數: (1) property(設置過渡效果的css屬性名 ...
  • 服務目錄 服務目錄對應的介面是Directory,這個介面里主要的方法是 List list(Invocation invocation) throws RpcException; 列出所有的Invoker,對於服務消費端而言,一個Invoker對應一個可用的服務提供者,底層封裝了一個tcp連接。當 ...
  • 一、枚舉的定義 枚舉是一組命名整型常量。枚舉類型是使用 enum 關鍵字聲明的。 C# 枚舉是值類型。換句話說,枚舉包含自己的值,且不能繼承或傳遞繼承。 二、枚舉的聲明 聲明枚舉的一般語法: enum <enum_name> { enumeration list }; 其中, enum_name 指 ...
  • 一直以來,自己讀過的技術類書籍也不少了,但是都犯了一個毛病就是沒有很好的記錄下來,有些東西可能並不是平日開發中時時刻刻用到的,隨著時間的延長,學過的東西慢慢也就淡忘了,剛好最近有些時間,也正打算把<<設計模式之禪>>這本書好好的通讀一遍,順便把所想所得詳細的記錄一下,也方便以後查閱和回顧。 好,以上 ...
  • 心知天氣數據API 的QPS 在高峰時期已經達到數千的量級,如何承載這樣海量的併發請求,使客戶能穩定及時的獲取到所需數據自然也是心知技術團隊一路以來不斷探索的主題。 ...
  • 提出問題 「領域驅動設計」之於微服務,好比麥當勞之於漢堡(個人更喜歡肯德基,漢堡要大些,麥當勞的漢堡,想吃頓飽飯,請先給我上6個😂)。但是TDD測試驅動、MDD模型驅動好像也很火啊,到底什麼在驅動? 分析問題 不用著急,這是三個5分鐘就能區分開的概念。開發中在協同工作。 首先糾正兩個誤區。DDD是 ...
  • 一.SpringAOP的概述。 AOP(Aspect Oriented Programming),面向切麵編程,通過預編譯方式和運行期間動態代理實現程式的功能的統一維護的技術。AOP是OOP(面向對象編程)的擴展和延伸。舉個例子,讓大家對AOP印象更加深刻點。 比如許可權校驗。實際開發中,我們知道不是 ...
  • 一、JDK的安裝 1、打開下載好的安裝包(我在這裡附上一個百度雲連接,https://pan.baidu.com/s/1o3nx0kbmecAISeneGqykLQ 提取碼:jnw6) 傻瓜式安裝,直接點下一步就行。 2、安裝路徑 安裝路徑隨意,只要不是中文路徑就Ok!!!我比較懶,直接使用的預設安 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...