第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

藍(lán)橋杯2021國賽A組冰山問題:冰山模擬問題的映射統(tǒng)計解法

標(biāo)簽:
C++

https://img1.sycdn.imooc.com/6930be68086f743809430784.jpg

一、问题背景

题目模拟了冰山的每日变化过程:

  1. 初始有n座体积各异的冰山

  2. 每天环境温度变化x(影响所有冰山体积)

  3. 可能新增体积为y的冰山

  4. 需要计算每日冰山总体积(对998244353取模)

二、核心算法思路

  1. 映射统计法:使用map记录各体积冰山的数量

  2. 批量处理技巧:按体积分类处理避免逐个操作

  3. 边界处理:体积超过k时分裂处理

  4. 模运算优化:防止数值溢出

三、完整代码解析(带注释)

#include <iostream>#include <map>using namespACe std;const int MOD = 998244353;int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int n, m, k;
    cin >> n >> m >> k;
    
    map<int, long long> cnt; // 体积->数量映射
    
    // 初始化统计
    for (int i = 0; i < n; ++i) {
        int v;
        cin >> v;
        cnt[v]++;
    }
    
    for (int day = 0; day < m; ++day) {
        int x, y;
        cin >> x >> y;
        
        map<int, long long> new_cnt;
        long long sum = 0;
        
        // 处理现有冰山
        for (auto &[v, num] : cnt) {
            int new_v = v + x;
            if (new_v <= 0) continue;
            
            if (new_v > k) {
                new_cnt[k] = (new_cnt[k] + num) % MOD;
                new_cnt[1] = (new_cnt[1] + (new_v - k) * num) % MOD;
            } else {
                new_cnt[new_v] = (new_cnt[new_v] + num) % MOD;
            }
        }
        
        // 添加新冰山
        if (y > 0) {
            new_cnt[y] = (new_cnt[y] + 1) % MOD;
        }
        
        cnt = move(new_cnt);
        
        // 计算总和
        long long total = 0;
        for (auto &[v, num] : cnt) {
            total = (total + v * num) % MOD;
        }
        
        cout << total << "\n";
    }
    
    return 0;}

四、关键算法点详解

  1. 映射优化:使用map将相同体积的冰山合并处理,避免重复计算

  2. 分裂处理:当冰山体积超过k时,自动分裂为1体积的小冰山

  3. 每日更新:采用new_cnt临时map确保状态同步更新

  4. 模运算处理:在每次加法操作后立即取模,防止数值溢出

五、复杂度分析

  • 时间复杂度:O(m * S) S为每日不同体积的数量

  • 空间复杂度:O(S) 存储当前冰山状态

六、实际应用场景

这种映射统计方法广泛应用于:

  1. 游戏中的粒子系统模拟

  2. 物理仿真中的质量分布计算

  3. 资源管理中的分类统计

  4. 大数据中的分桶计数

来源:蓝桥杯2021国赛A组冰山问题:冰山模拟问题的映射统计解法

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消