首页 > 其他分享 >元素共鸣:深层次的唤醒

元素共鸣:深层次的唤醒

时间:2024-04-09 12:59:41浏览次数:19  
标签:int 石柱 合并 深层次 共鸣 能量 唤醒 sum dp

描述

在提瓦特大陆上,有N座由原石构成的神秘石柱,它们依次排列,编号为1,2,3,…,N。

每座石柱都蕴含着不同程度的元素能量,这种能量的强度可以用一个整数来量化。冒险者们面临着一个更加艰巨的任务:为了唤醒深层次的神之眼,他们不仅需要将这些原石石柱合而为一,而且在这一过程中,每一次移动需要选择连续的k堆石柱进行合并,释放出强大的元素共鸣。

每次合并连续的k堆石柱的过程中会释放出一定量的元素能量,其值等于这k堆石柱能量值的总和。合并后,这些石柱就会形成一座新的更大的石柱,而与这些石柱原先相邻的石柱将与新形成的石柱相邻。选择不同的k值和合并顺序会导致不同的总能量释放量。

冒险者们如何选择合并的连续石柱数量k以及合并的顺序,才能使释放的元素能量总量最小,以尽可能节约能量唤醒深层次的神之眼。

输入

  • 第一行一个数N,表示原石石柱的数量N (1 ≤ N ≤ 30)。
  • 第二行N个数,表示每座石柱的元素能量值(每个值均不超过1000)。
  • 第三行一个数k,表示每次移动时,必须合并的连续石柱的数量 (2 ≤ k ≤ N)。

输出

输出一个整数,表示能量释放的最小总量。如果无法将石柱合而为一,则返回-1.

输入样例 1 

4
1 3 5 2
2

 输出样例1

22

思路:

dp[i][j][t] 存储将第i个到第j个石头合并为t堆所需的最少能量

dp[i][j][t]=min​(dp[i][m][1]+dp[m+1][j][t-1]+sum[j]−sum[i−1])

代码实现

#include<iostream>
#include<vector>
#include<climits>
using namespace std;
int stelae[35]={0};
int sum[35]={0};
int N,k;
//f[i][j][k]合并i到j个石柱并选择连续k个合并
class solution
{
public:
    solution(int N,int k)
    {
        if((N-1)%(k-1)!=0)
        {
            cout<<-1<<endl;return;
        }
        vector<vector<vector<int>>> dp(N+1,vector<vector<int>>(N+1,vector<int>(k+1,INT_MAX)));
        for(int len=1;len<=N;len++)
        {
            for(int l=1;l<=N-len+1;l++)
            {
                int r=l+len-1;
                if(len==1)
                {
                    dp[l][r][1]=0;continue;
                }
                for(int t=2;t<=k;t++)
                {
                    for(int p=l;p<r;p+=k-1)
                    {
                        dp[l][r][t]=min(dp[l][r][t],dp[l][p][1]+dp[p+1][r][t-1]);
                    }
                }
                dp[l][r][1]=min(dp[l][r][1],dp[l][r][k]+sum[r]-sum[l-1]);
            }
        }
        if (dp[1][N][1] == INT_MAX) {
            cout << -1 << endl;
        } else {
            cout << dp[1][N][1] << endl;
        }
    }
};
int main()
{
    cin>>N;
    for(int i=1;i<=N;i++)
    {
        cin>>stelae[i];
        sum[i]=sum[i-1]+stelae[i];
    }
    cin>>k;
    solution p(N,k);
    return 0;
}

标签:int,石柱,合并,深层次,共鸣,能量,唤醒,sum,dp
From: https://blog.csdn.net/Xm041206/article/details/137527009

相关文章

  • [RK3399-Android10] 关于USB触摸屏休眠状态无法唤醒设备的一种情况
    问题描述RK3399Android10平台上,USB触摸屏在系统按键休眠之后,无法触摸唤醒设备。查看内核日志,发现休眠之后,USB设备直接断开,lsusb发现不了设备。休眠之后host接口没有断开电源,使用USB鼠标插在同一个接口上,USB鼠标可以正常唤醒设备。问题描述之前遇到这样的问题一般是修改s......
  • 操作系统综合题之“请填写信号量值并说明操作结果(正常、阻塞或唤醒。如阻塞或者唤醒,需
    1.问题:题36表是两个同步进程的模拟执行,生产者将物品放入共享缓冲区供消费者使用,缓冲区可放2件物品,使用2个信号量,并置初值为S1=2,S2=0.现已知操作情况,请填写信号量值并说明操作结果(正常、阻塞或唤醒。如阻塞或者唤醒,需说明阻塞或者被唤醒的是P1还是P2)。(提示:缓冲区满,不许放物品;缓......
  • SIT3051-3.3V 供电、1Mbps、待机与远程唤醒、低电流 CAN 总线收发,兼容替代MAX051
    SIT3051是一款应用于CAN协议控制器和物理总线之间的接口芯片,与具有CAN控制器的3.3V微处理器、微控制器(MCU)和数字信号处理器(DSP)或者等效协议控制器结合使用,具有高速、斜率控制、待机、低电流关断四种工作模式,共模范围可达-7V~+12V,可应用于工业自动化......
  • 揭秘操作系统内核:深入浅出进程阻塞与唤醒
    一、进程与线程        操作系统要运行一个可执行的程序,首先要将程序文件加载到内存,然后CPU去读取和执行这些指令,而一个进程就是“一次程序执行的过程”,内核会给每一个进程创建一个名为task_struct的数据结构,而内核也是一段程序,系统启动时就被加载到了内存中。  ......
  • 关于自动唤醒(AWU)的使用介绍
    1、关于AWU的介绍AWU模块可以实现无需外部中断的情况下自动唤醒。通过对时间基数进行编程,可周期性地从停止或待机模式下唤醒。AWU是一个6位的自加型计数器,关于其时钟源的选择如下:CH32X035可选择内部高速时钟HSI的47KHz分频时钟作为AWU模块时钟源,可以在低功耗模式下运行......
  • 【WCH蓝牙系列芯片】-基于CH582开发板—蓝牙主机睡眠模式,串口唤醒收发数据
    -------------------------------------------------------------------------------------------------------------------------------------  在使用蓝牙主机的时候,有时需要通过宏定义开启睡眠模式,从而达到降低芯片的功耗。蓝牙的睡眠是由协议栈自行管理的,在芯片睡眠状态......
  • 神州笔记本(HASEE) win11 操作系统自动进入休眠状态,唤醒后自动关机
    前几日在某东上购入神州笔记本(HASEE),用着本来还好,但是最近只要用到电源模式的问题,这个笔记本就是会无端进入到自动关机的状态。前文中也讨论过类似的问题:神州笔记本win11节能模式供电不足自动关机不过这次又有了新的问题,那就是在操作系统的电源模式下设置”闲置进入睡眠“......
  • 低功耗休眠唤醒之三级环形架构
    前言   无线通信技术相关应用中,用户体验一直是用户关系的重点。无线通讯距离近一点,通讯速度慢一点,这都不是致命的问题,在某些场合下是完全可以接受的,甚至 本身就是项目的技术需求;但是有一些设计缺陷却会严重影响用户体验的,一旦大面积的出现,基本上可以判定为产品失败了;总结起......
  • 飞桨paddlespeech语音唤醒推理C INT8 定点实现
    前面的文章(飞桨paddlespeech语音唤醒推理C定点实现)讲了INT16的定点实现。因为目前商用的语音唤醒方案推理几乎都是INT8的定点实现,于是我又做了INT8的定点实现。 实现前做了一番调研。量化主要包括权重值量化和激活值量化。权重值由于较小且均匀,还是用最大值非饱和量化。最大值......
  • 其他设备唤醒Linux系统的S3或者S4
    如果你的键盘可以唤醒,但是鼠标去不能cat/proc/acpi/wakeup DeviceS-stateStatusSysfsnodeGP18 S4 *disabledSIO1 S3 *disabledpnp:00:03GPP0 S4 *enabledpci:0000:00:01.1GPP1 S4 *disabledGPP2 S4 *disabledGPP4 S4 *enabledpci:0000:00:02.2GPP5 ......