当前位置: 首页 > news >正文

[题解]2024ICPC上海站-In Search of the Ultimate Artifact

  • 题源:I - In Search of the Ultimate Artifact
  • Abstract: n n n 个非负整数构成的数组 a a a,可任选 k k k 个融合为一个新数,新数为 ∏ i = 1 k a i \prod\limits_{i=1}^{k}a_i i=1kai。求进行若干次(可为0次)融合后的最大值。答案对 998244353 998244353 998244353 取模。
  • Keyword:贪心(签到题)
  • Solution:观察合并操作,发现本质上每次在减少 k − 1 k-1 k1 个元素。因此采用堆进行维护,贪心的先默认答案为堆顶,每次取出堆中 k − 1 k-1 k1 个元素对答案相乘即可。注意每次相乘都需要进行取模操作。
  • Code:
/*
 * Copyright (c) 2025 - Yerosius All Rights Reserved.
 * @Author: Yerosius
 * @Date: 2025-02-18 14:12:44
 * @FilePath: /VSCodeProject/I_In_Search_of_the_Ultimate_Artifact.cpp
 */
#include<bits/stdc++.h>

using namespace std;
using ll=long long;
#define int ll
#define endl "\n"
const int MOD=998244353;
void solve(){
    int n,k;cin>>n>>k;
    priority_queue<int>pq;
    while(n--){
        int _;cin>>_;
        if(_) pq.push(_);//0对答案极其不利,因此读入时直接忽略0
    }
    int ans=0;
    if(pq.size()){//先默认答案为堆顶
        ans=pq.top();
        ans%=MOD;
        pq.pop();
    }
    while(pq.size()>=k-1){
        for(int i=0;i<k-1;i++){//取堆中k-1个元素对答案相乘
            int _=pq.top();
            _%=MOD;
            ans*=_;
            ans%=MOD;
            pq.pop();
        }
    }
    cout<<ans%MOD<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t;cin>>t;
    while(t--) solve();
    return 0;
}
http://www.dtcms.com/a/24430.html

相关文章:

  • K8S之脚本管理(Script Management for k8s)
  • aistdio部署deepseek-r1纯教程
  • 地表放置机场和飞机(十)
  • 基于JavaScript的实时数据监控仪表盘开发实践
  • QT C++ modbus 两个字 合成 32位整数
  • DEX-EE三指灵巧手:扩展AI与机器人研究的边界
  • 力扣-二叉树-98 验证二叉搜索树
  • 七、敏捷开发工具:持续集成与部署工具
  • 竞彩数据怎么接入
  • OAI 平台 4G(LTE)基站 、终端、核心网 端到端部署实践(一)
  • . Spring MVC
  • 青少年编程与数学 02-009 Django 5 Web 编程 22课题、性能优化
  • WPF快速创建DeepSeek本地自己的客户端-基础思路版本
  • 用Prim算法求解最小生成树:代码实现与分析
  • AIGC(生成式AI)试用 21 -- Python调用deepseek API
  • 多线程之两阶段终止模式
  • 【DeepSeek】本地部署,保姆级教程
  • scala中为什么能用常量的地方就不用变量
  • Miniconda + VSCode 的Python环境搭建
  • 解锁观察者模式:Java编程中的高效事件管理之道
  • 【Windows软件 - HeidiSQL】导出数据库
  • golang常用库之-swaggo/swag根据注释生成接口文档
  • halcon 条形码、二维码识别、opencv识别
  • Java零基础入门笔记:(4)方法
  • 每日一题——将数字字符串转化为IP地址
  • 深入解析 iOS 视频录制(三):完整录制流程的实现与整合
  • 如何连接别人的redis服务器吗?
  • 嵌入式八股文(四)计算机网络篇
  • selenium环境搭建
  • 【故障处理】- 11G expdp导出缓慢 + Streams AQ: enqueue blocked on low memory等待事件