Codeforces Round 1042 (Div. 3) G Wafu! 題解

Codeforces Round 1042 (Div. 3) G Wafu! 題解

題意:每一次操作刪除集合中最小的元素 x,并產生新的 x - 1 個元素值分別為 1 2 3 … x - 1 放入集合之中。 每次操作一個數 x 可以使得最終答案乘上 x,問我們操作 k 次在模 1e9 + 7 的基礎上最終得到的答案是多少,每個詢問獨立。


思路:我們不妨先觀察一個數 x 最終需要操作的次數以及能給我們帶來的貢獻。

首先看操作次數:1 : 1次 、 2 : 2 次、 3 : 4 次、 4 : 8 次 (2^(x - 1)次)

其次看貢獻:1 : f(1) = 1 、 2 : f(2) = 2 * f(1) = 2 、 3 : f(3) = 3 * f(2) * f(1) 、4 : f(4) = 4 * f(3) * f(2) * f(1) 我們會發現我們后面的 f(1) * f(2) * f(3) … 可以用一個前綴乘來維護。因此我們可以寫一個預處理

dp[0] = 1;
int res = 1; // 統計前綴成
for(int i = 1; i <= 30; i ++){dp[i] = i * res % mod;res = res * dp[i] % mod;
}

那么我們可以針對每個測試中的所有元素進行一次排序,因為我們每次必須選取最小的元素刪除。然后模擬即可。

參考代碼:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 10;
const int mod = 1e9 + 7;
int dp[N];
int a[N];
void solve(){int n, k;cin >> n >> k;for(int i = 1; i <= n; i ++){cin >> a[i];}sort(a + 1, a + 1 + n);int ans = 1;for(int i = 1; i <= n && k; i ++){if(a[i] < 31 && (1 << (a[i] - 1)) <= k){ans = ans * dp[a[i]] % mod;k -= (1 << (a[i] - 1));}else{int x = 1; // a[i] 拆成 1 ~ i - 1ans = ans * a[i] % mod;k --;while(k){if(1 << (x - 1) <= k){k -= 1 << (x - 1);ans = ans * dp[x] % mod;x ++;}else{ans = ans * x % mod;x = 1;k --;}}break;}	}cout << ans << endl;
}
signed main(){// 1 : f(1) = 1 * 1// 2 : f(2) = 2 * f(1)// 3 : f(3) = 3 * f(2) * f(1)// 4 : f(4) = 4 * f(3) * f(2) * f(1)dp[0] = 1;int res = 1;for(int i = 1; i <= 30; i ++){dp[i] = i * res % mod;res = res * dp[i] % mod;}int T;cin >> T;while(T --){solve();}return 0;
}

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

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

相關文章

APP與WEB測試的區別?

web與app核心區別&#xff1a;一個基于瀏覽器 &#xff0c;一個基于操作系統這是所有區別的根源&#xff1a;Web測試&#xff1a;測試對象是網站&#xff0c;通過瀏覽器(Chrome,Firefox等)訪問&#xff0c;運行環境核心是瀏覽器引擎&#xff1b;App測試&#xff1a;測試對象是應…

2.滲透-.WEB運行原理-ZBlog安裝(進一步理解數據庫)

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a;微塵網校 上一個內容&#xff1a;1.滲透-.WEB運行原理&#xff08;搭建一個WEB程序&#xff09; 首先把服務運行起來 然后訪問下圖紅框…

MapBox GL地圖上繪制圓形區域,在區域中心點添加標記點及文本提示的實現方法

MapBox GL地圖上繪制圓形區域&#xff0c;在區域中心點添加標記點及文本提示的實現方法&#xff1a;// 繪制影響區域 const addArea (circle) > {if (!map.current || !circle) return;const areaId circle-area;const epicenterId circle-epicenter;const radiusKm cir…

基于 Docker Compose 的若依多服務一鍵部署java項目實踐

基于Docker Compose的若依多服務一鍵部署實踐 在項目開發中&#xff0c;多服務部署常常讓人頭疼。環境配置復雜、操作步驟繁瑣&#xff0c;稍不注意就容易出錯。不過&#xff0c;有了 Docker Compose &#xff0c;這些問題就簡單多啦&#xff01;它能幫我們高效編排多個容器&am…

MyBatis-Plus 使用 Wrapper 自定義 SQL 查詢

目錄 1. 注意事項 2. 示例代碼 2.1 實體類 2.2 Mapper 接口 2.3 測試類 3. 運行效果 4. 總結 在實際項目中&#xff0c;雖然 MyBatis-Plus 提供了豐富的內置方法和 QueryWrapper 條件構造器&#xff0c;但有時我們需要 自定義 SQL 來實現更復雜的查詢邏輯。 MyBatis-Plu…

NumPy/PyTorch/C char數組內存排布

1. 關于 np.random.randn(2, 3) 的數據存儲數據類型 (Data Type)&#xff1a;np.random.randn 默認生成的是 64位&#xff08;8字節&#xff09;雙精度浮點數 (numpy.float64)。所以每個數字占 8個字節&#xff0c;而不是8位&#xff08;1字節&#xff09;。這是一個關鍵區別。…

Elasticsearch精準匹配與全文檢索對比

在 Elasticsearch 中&#xff0c;精準匹配檢索和全文檢索匹配檢索是兩種核心查詢方式&#xff0c;主要區別在于匹配規則、分詞處理、適用場景和底層實現邏輯。以下是詳細對比&#xff1a;一、核心區別總結特性精準匹配&#xff08;Term Query&#xff09;全文檢索&#xff08;M…

【鴻蒙開發001】上下翻頁-翻書效果實現【可復用】

先看效果&#xff1a;一、設計思路&#xff1a;根據所需要的最終效果&#xff0c;最終設計如下&#xff1a;&#xff08;1&#xff09;整體設計了4個模塊&#xff0c;這里分別標記為&#xff1a;A1&#xff0c;A2&#xff0c;B1&#xff0c;B2。具體說明如下&#xff1a;A模塊&…

H20 性能表現之 Qwen3-235B

上期為大家分享了H20性能表現之Qwen3-Coder-480B&#xff08;以下稱480B&#xff09;&#xff0c;今天&#xff0c;我為大家繼續帶來新的評測&#xff0c;這次&#xff0c;介紹的是 Qwen3-235B-A22B-Instruct-2507&#xff08;以下稱235B&#xff09;&#xff0c;這也是阿里這陣…

Diagnosing bias and variance|診斷偏差和方差

----------------------------------------------------------------------------------------------- 這是我在我的網站中截取的文章&#xff0c;有更多的文章歡迎來訪問我自己的博客網站rn.berlinlian.cn&#xff0c;這里還有很多有關計算機的知識&#xff0c;歡迎進行留言或…

前端性能優化:從指標監控到全鏈路落地(2024最新實戰指南)

前端性能優化&#xff1a;從指標監控到全鏈路落地&#xff08;2024最新實戰指南&#xff09; 引言&#xff1a;性能不是“可選項”&#xff0c;而是“生存線” 在前端開發中&#xff0c;“性能優化”常被視為“錦上添花”的工作——但數據告訴我們&#xff0c;它早已成為決定…

Kafka面試精講 Day 1:Kafka核心概念與分布式架構

【Kafka面試精講 Day 1】Kafka核心概念與分布式架構 在“Kafka面試精講”系列的第1天&#xff0c;我們將深入解析Apache Kafka最根本的基石——核心概念與分布式架構。作為大數據和后端開發領域面試中的“必考題”&#xff0c;諸如“Kafka是如何實現高吞吐量的&#xff1f;”、…

github copilot學生認證教程,免費使用兩年Copilot Pro!!(避免踩坑版)

先放結果&#xff0c;本人是先后申請了三次&#xff1a; 1、第一次直接用的學生證&#xff0c;打開對著電腦攝像頭直接拍了一張&#xff0c;失敗了&#xff0c;如下&#xff0c;理由是沒有開啟雙重認證&#xff01;&#xff01;&#xff0c;并且學生證內頁沒有學校名稱&#x…

Shiro介紹以及一個原始例子

目錄基本功能核心組件應用場景優勢Shiro 核心工作流程&#xff08;以 Web 應用登錄為例&#xff09;一個例子【驗證&#xff0c;授權]:Shiro 是一個強大且易用的 Java 安全框架&#xff0c;提供了 身份驗證、授權、加密和會話管理等功能&#xff0c;可幫助開發人員輕松確保應用…

AI-調查研究-59-機器人 行業職業地圖:發展路徑、技能要求與薪資全解讀

點一下關注吧&#xff01;&#xff01;&#xff01;非常感謝&#xff01;&#xff01;持續更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持續更新中&#xff01;&#xff08;長期更新&#xff09; AI煉丹日志-31- 千呼萬喚始出來 GPT-5 發布&#xff01;“快的…

LeetCode算法日記 - Day 22: 提莫攻擊、Z字形變換

目錄 1. 提莫攻擊 1.1 題目解析 1.2 解法 1.3 代碼實現 2. Z字形變換 2.1 題目解析 2.2 解法 2.3 代碼實現 1. 提莫攻擊 495. 提莫攻擊 - 力扣&#xff08;LeetCode&#xff09; 在《英雄聯盟》的世界中&#xff0c;有一個叫 “提莫” 的英雄。他的攻擊可以讓敵方英…

Unity筆記(七)——四元數、延遲函數、協同程序

寫在前面&#xff1a;寫本系列(自用)的目的是回顧已經學過的知識、記錄新學習的知識或是記錄心得理解&#xff0c;方便自己以后快速復習&#xff0c;減少遺忘。主要是C#代碼部分。六、四元數歐拉角具有旋轉約定&#xff0c;也就是說&#xff0c;無論你調整角度的順序是什么&…

用大語言模型提升語音翻譯:一種全新的端到端方法

用大語言模型提升語音翻譯:一種全新的端到端方法 在語音翻譯領域,如何將說話內容快速準確地轉化為另一種語言,一直是研究者們關注的焦點。隨著大語言模型(LLM)的興起,我們迎來了一個全新的機遇:利用LLM的強大能力,來提升語音翻譯系統的性能。最近,一項名為“End-to-E…

freeModbus TCP收發數據一段時間后,出現掉線情況(time out問題)

話說這個是真難找啊。我僅僅發表我找到的問題。我在接收幾十到幾百次數據的時候&#xff0c;會出現連接超時&#xff0c;也就是time out。而且ping也ping不通。也就是說明lwip出了問題。首先我先介紹modbus的這個流程。首先是函數eMBTCPInit( MB_TCP_PORT_USE_DEFAULT )我們進入…

Linux Web環境一鍵安裝腳本集合(非docker)

?重磅&#xff01;盹貓的個人小站正式上線啦&#xff5e;誠邀各位技術大佬前來探秘&#xff01;? —— 專為開發者打造的寶藏基地&#xff0c;等你來探索&#xff01; 這里有&#xff1a; &#x1f525; 硬核技術干貨&#xff1a;編程技巧、開發經驗、踩坑指南&#xff0c;帶…