Bride the Prisoners

题意:

 

有P个相邻的牢房(序号1,2,…,P),每个牢房中关押着犯人一名

现在要释放Q个牢房中的犯人(序号给出),释放后牢房为空

每次释放一名时需要依次向左向右给其他牢房犯人每人一枚金币直到遇到空牢房为止

 

可以按照任何顺序释放犯人,输出所需最小金币数。

 

思路:

为方便理解,预处理出序号为0和序号为P+1的空牢房。

可以想到,如若释放了序号i(0<i<P+1)号牢房的犯人,则对0到i牢房组和 i到P+1牢房组的讨论完全独立且其最优解可构成0到P+1的最优解(算导将其称作最优子结构)

 

故可以用动态规划的思想:

 

定义状态dp[i][j] (0<=i<=j<=P+1) 为释放从i到j之间(不包括i,j)的所有需释放的犯人所需最小金币数(i与j之间无空牢房)

 

则可得转移方程为

 

考虑递归树的底层,转移顺序应该从短区间开始转移(枚举区间长度即可)

 

d[i][j] = (j-i-1)+d[i][v]+d[v][j] (i<v<j)

 

d[0][P+1]即为所求最优解。

 

P.S. 此处的未释放但需释放的犯人可以理解成隐式的空牢房。

    #include <stdio.h>  
    #include <string.h>  
    #include <algorithm>  
    #define LL long long  
    #define MM 10010  
    #define MAX 1e16  
      
    LL dp[MM][MM];  
    int free_num[MM];  
      
    using namespace std;  
      
    int main()  
    {  
        int P, Q;  
        while(scanf("%d %d", &P, &Q)==2)  
        {  
            memset(dp, 0, sizeof(dp));  
      
            for (int i = 1; i <= Q; ++i)  
                scanf("%d", &free_num[i]);  
      
            free_num[0] = 0;  
            free_num[Q+1] = P+1;  
      
      
            for (int diff = 2; diff <= Q+1; ++diff)  
                for (int head = 0; head+diff <= Q+1; ++head)  
                            {  
                                LL temp = MAX;  
                                int tail = head + diff;  
      
                    for (int v = head+1; v < tail; ++v)  
                        temp = min(temp, dp[head][v] + dp[v][tail]);  
      
                                dp[head][tail] = temp + free_num[tail] - free_num[head] - 2;  
                            }  
      
            printf("%d\n", dp[0][Q+1]);  
        }  
    }  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿姆哈拉语中的“Here waits the bride”意味着女孩们被迫结婚的现象,在埃塞俄比亚普遍存在,对当地社会和儿童的影响极大。 埃塞俄比亚的儿童婚姻法从2004年开始实施,禁止18岁以下的婚姻。然而,在农村地区和贫困家庭中,儿童婚姻问题仍然很普遍,导致许多女孩无法完成教育,身心健康受到威胁。 首先,儿童婚姻剥夺了女孩的教育权利。婚姻通常意味着女孩必须放弃学业,照顾家庭和生育子女。缺乏教育限制了她们的机会和能力,可能导致贫困和就业机会的缺乏。 其次,儿童婚姻对女孩的身心健康产生严重影响。因为她们的身体尚未发育完全,早婚导致过早的怀孕和分娩,增加了产妇死亡和婴儿死亡的风险。心理上,儿童婚姻可能导致女孩感到孤独、焦虑和压力过大。 另外,儿童婚姻对社会也带来负面影响。早婚加剧了贫困的循环,因为这些女孩本身没有足够的教育和技能来独立生活。此外,由于早婚导致生育率提高,可能导致人口过快增长,给资源和社会服务带来压力。 因此,要改变埃塞俄比亚的儿童婚姻现象,需要采取综合政策和行动。首先,提高公众对儿童婚姻危害的意识,包括家庭、社区和学校。其次,加强执法力度,确保儿童婚姻法得到全面执行。同时,提供教育和经济支持,使贫困家庭能够继续子女的教育。最重要的是,培养女孩们的自主意识和能力,让她们能够为自己的未来做出决策,避免早婚陷阱。 只有通过全社会的共同努力和重视,埃塞俄比亚的儿童婚姻问题才能够得到解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值