51 Nod 1670 打怪獸

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1670?打怪獸
lyk在玩一個叫做“打怪獸”的游戲。
游戲的規則是這樣的。
lyk一開始會有一個初始的能量值。每次遇到一個怪獸,若lyk的能量值>=怪獸的能量值,那么怪獸將會被打敗,lyk的能量值增加1,否則lyk死亡,游戲結束。
若怪獸全部打完,游戲也將會結束。
共有n個怪獸,由于lyk比較弱,它一開始只有0點能量值。
n個怪獸排列隨機,也就是說共有n!種可能,lyk想知道結束時它能量值的期望。
由于小數點比較麻煩,所以你只需要輸出期望*n!關于1000000007取模后的值就可以了!
?
例如有兩個怪獸,能量值分別為{0,1},那么答案為2,因為游戲結束時有兩種可能,lyk的能量值分別為0和2。期望為1,1*2!=2,所以答案為2。
Input
第一行一個數n(1<=n<=100000)。
接下來一行n個數ai表示怪獸的能量(0<=ai<n)。
Output
一行表示答案
Input示例
2
0?1
Output示例
2

思路: 每輪打敗怪獸后 lyk的能量值加一
    所以 我們可以看出來 如果lyk在第i輪 打敗一個怪獸 那么在第i+1輪也一定可以打敗這個怪獸
    我們設 dp[i] 表示 lyk活到第 i 輪的概率 這時候lyk的能量 必然為i
    顯然 第 i 輪 lyk一定存活 所以 dp[0] = N! %Mod
    假設 我們已知 dp[i] 看一下怎么表示第 i+1輪的概率
    x 表示 有多少怪獸的能量小于等于 i+1
    到了 第 i+1 輪 只剩 (x-(i+1)+1) 只怪獸可以打 總的怪獸還剩 (n-(i+1)+1) 只
    第i+1輪存活的概率記為 (x-(i+1)+1)/(n-(i+1)+1)
    那么到第 i+1 輪仍然存活的概率為 dp[i] *
(x-(i+1)+1)/(n-(i+1)+1)
    除法用逆元來計算即可
 
 1 #include<cstdio>
 2 #include<vector>
 3 #include<cstring>
 4 #include<iostream>
 5 #include<algorithm>
 6 
 7 #define MAXN 50005
 8 
 9 #define Mod 1000000007
10 
11 using namespace std;
12 
13 typedef long long LL;
14 
15 LL num[100005],dp[100005];
16 
17 LL Fast_Pow(LL a) {
18     LL ret = 1, b = Mod - 2;
19     while(b) {
20         if (b & 1) ret = ( ret * a ) % Mod;
21         a = ( a * a ) % Mod, b >>= 1;
22     }
23     return ret;
24 }
25 
26 int main(int argc,char *argv[]) {
27     int n; scanf("%d",&n);
28     for(int i=0; i<n; ++i) scanf("%lld",num + i);
29     
30     sort(num,num + n);
31     dp[0] = 1;
32     for(int i=2; i<=n; ++i) dp[0] = (dp[0] * i) % Mod;
33     
34     int j = 0;
35     for(int i=1; i<=n; ++i) {
36         for(; i-1>=num[j] && j<n; ++j);
37         dp[i] = dp[i-1] * (j - i + 1) % Mod * Fast_Pow((LL)n - i + 1) % Mod;
38     }
39     LL Ans = 0;
40     for(int i=2; i<=n; ++i)
41         Ans += (dp[i-1] - dp[i] + Mod) % Mod * ( i - 1 )% Mod;
42     Ans = (Ans + dp[n] * n % Mod ) % Mod;
43     printf("%lld\n",Ans);
44     return 0;
45 }
代碼

   


轉載于:https://www.cnblogs.com/whistle13326/p/7739636.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281991.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

QQ協議調試器 QQDebugger

QQ協議老變&#xff0c;為了分析協議&#xff0c;單用抓包工具還是不夠的&#xff0c;還是得需要很好的調試工具。在網上找了幾個調試工具&#xff0c;易用性均欠佳&#xff0c;不得已自己開發了一個 QQDebugger&#xff0c;不敢專美&#xff0c;特意發布出來。QQDebugger 在功…

PostgreSQL 10.1 手冊_部分 II. SQL 語言_第 5 章 數據定義_5.5. 修改表

5.5. 修改表 5.5.1. 增加列5.5.2. 移除列5.5.3. 增加約束5.5.4. 移除約束5.5.5. 更改列的默認值5.5.6. 修改列的數據類型5.5.7. 重命名列5.5.8. 重命名表當我們已經創建了一個表并意識到犯了一個錯誤或者應用需求發生改變時&#xff0c;我們可以移除表并重新創建它。但如果表中…

Uptime-Kuma 一個輕量的開源監控工具

點擊藍字 關注我們你好&#xff0c;這里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;有用的工具&#xff0c;不要忘記關注。今天給大家介紹一個開源的監控工具 Uptime Kuma, 主要用來監控 Web 以及網絡, 和 Prometheus 相比, 它是輕量的, Uptime Kuma 是基于…

怎么查看mysql正在運行的語句_MySQL如何查詢當前正在運行的SQL語句

通過status命令&#xff0c;查看Slow queries這一項&#xff0c;如果值長時間>0,說明有查詢執行時間過長以下為引用的內容&#xff1a;mysql> status;--------------mysql Ver 11.18 Distrib 3.23.58, for redhat-linux-gnu (i386)Connection id: 53Current database: (n…

SpringBoot實戰之SpringBoot自動配置原理

SpringBoot 自動配置主要通過 EnableAutoConfiguration, Conditional, EnableConfigurationProperties 或者 ConfigurationProperties 等幾個注解來進行自動配置完成的。EnableAutoConfiguration 開啟自動配置&#xff0c;主要作用就是調用 Spring-Core 包里的 loadFactoryName…

Install OpenCV-Python in Ubuntu

之前安裝python版opencv&#xff0c;需要下載whl文件&#xff0c;進行安裝&#xff0c;這是在window環境下的&#xff1a;安裝opencv_python,下載whl包安裝系統python下的opencv 今天發現一個簡單的方法。Install OpenCV-Python in UbuntuInstall package python-opencv with f…

如何健康地跑步?

最近某司高管跑步 28 公里后猝死&#xff0c;被各大媒體報道&#xff0c;每次這種悲劇發生&#xff0c;而且還跟跑步扯上關系&#xff0c;總是讓人心痛。通過報道了解到&#xff0c;這位高管酷愛跑馬拉松&#xff0c;身體素質和運動能力肯定是強于普通人的&#xff0c;但還是遭…

項目共享協調機制

API&#xff0c;協調前端與后端開發的連接點。 面臨幾個問題 1. API更新不及時&#xff0c;導致前端開發的接口沒有及時更新而出現各種問題。 2. 文檔描述得不準確 3. 沒有統一的標準。 我們可以使用swagger editor&#xff0c; swagger ui。第一是編輯器&#xff0c;第二個是展…

vs2008C1902程序數據庫管理不匹配

大清早打開vs2008,出現這么詭異的錯&#xff0c; 刪了一個dll的就好了。如圖

mysql user表 空_mysql 忘記密碼,重置密碼,mysql.user表為空的解決辦法

一、用戶表有用戶&#xff0c;直接修改密碼ERROR 1045 (28000): Access denied for user rootlocalhost (using password: YES)修改mysql配置文件my.cnf&#xff1a;vim /etc/my.cnf在[mysqld]中添加skip-grant-tables重啟mysql服務&#xff0c;用空密碼直接登錄&#xff0c;查…

鏈式封裝與調用

var CheckObject function(){}; CheckObject.prototype function(){checkName:function(){// codereturn this;},checkEmail:function(){// code return this;},checkPassword:function(){// codereturn this;} } //使用 var Check new CheckObject() Check.checkName().che…

全新升級的AOP框架Dora.Interception[3]: 基于特性標注的攔截器注冊方式

在Dora.Interception中按照約定方式定義的攔截器可以采用多種方式注冊到目標方法上。本篇文章介紹最常用的基于“特性標注”的攔截器注冊方式&#xff0c;下一篇會介紹另一種基于&#xff08;Lambda&#xff09;表達式的注冊方式&#xff1a;全新升級的AOP框架Dora.Interceptio…

在慘遭勒索病毒攻擊之后,微軟呼吁重新制定“數字日內瓦公約”

基于美國安全局泄露文檔開發的病毒程序成為上周的主要新聞&#xff0c;該病毒導致全世界大量的Windows電腦癱瘓。WannaCry勒索病毒在150個國家有20萬個受害者&#xff0c;包括英國的醫院、西班牙的基礎設施部門和俄羅斯的內政部。Renault在受到攻擊之后關閉了幾家在法國境內的工…

【代碼審計】PHP代碼審計---基礎記錄

PHP偽協議 PHP偽協議事實上是其支持的協議與封裝協議&#xff0c;支持的種類有以下12種。 * file:// — 訪問本地文件系統 * http:// — 訪問 HTTP(s) 網址 * ftp:// — 訪問 FTP(s) URLs * php:// — 訪問各個輸入/輸出流&#xff08;I/O streams&#xff09; * zlib:// — 壓…

全新升級的AOP框架Dora.Interception[4]: 基于表達式的攔截器注冊

基于特性標注的攔截器注冊方式僅限于將攔截器應用到自己定義的類型上&#xff0c;對于第三方提供的類型就無能為力了。對于Dora.Interception來說&#xff0c;攔截器注冊本質上建立攔截器與一個或者多個目標方法之間的映射&#xff0c;所以最笨的方式就是利用反射的方式得到表示…

mysql8.0.12插件_MySQL8.0.12 安裝及配置

MySQL8.0.12 安裝及配置發布時間&#xff1a;2018-08-07 10:39,瀏覽次數&#xff1a;274, 標簽&#xff1a;MySQL一.安裝1.從網上下載MySQL8.0.12版本&#xff0c;下載地址&#xff1a;https://dev.mysql.com/downloads/mysql/2. 下載完成后解壓我解壓的路徑是&#xff1a;D:\J…

python模塊之hashlib

hashlib模塊實現了多種安全哈希和信息摘要算法的通用接口&#xff0c;包括FIPS中定義的SHA1, SHA224, SHA256, SHA384, SHA512以及RFC 1321中定義的MD5 注意點&#xff1a;1. adler32及crc32哈希由zlib模塊提供2. 某些算法已知存在哈希碰撞弱點 哈希算法 每個hash算法都有一個同…

記一次阿里電面經歷

昨天下午&#xff08;3/19&#xff09;三點多鐘&#xff0c;接到了一個杭州的電話&#xff0c;是阿里的。問我是否方便聊聊。我說我在上課&#xff0c;四點下課。然后他就四點多鐘的時候又打了一次過來。項目經歷上來就問我有無大型項目的經歷。不好意思&#xff0c;我說無。。…

C語言程序設計第三次作業

&#xff08;一&#xff09;改錯題 計算f(x)的值&#xff1a;輸入實數x&#xff0c;計算并輸出下列分段函數f(x)的值&#xff0c;輸出時保留1位小數。 輸入輸出樣例1&#xff1a;   Enterr x: 10.0   f(10.0) 0.1 輸入輸出樣例2&#xff1a;   Enter x: 234   f(234.0…

mysql數據庫項目化教程鄭小蓉_MySQL數據庫項目化教程(高等職業教育“十三五”規劃教材(軟件技術專業))...

《MySQL數據庫項目化教程/高等職業教育十三五規劃教材(軟件技術專業)》是一本介紹MySQL數據庫基礎知識的入門教材&#xff0c;采用項目驅動方式循序漸進地介紹MySQL各個模塊的知識。主要內容包括&#xff1a;Windows下MySQL的安裝&#xff0c;MySQL服務的啟動與停止&#xff0c…