题目:Moortal Cowmbat

题目链接:https://codeforces.ml/group/5yyKg9gx7m/contest/269717/problem/C

题目描述:
给出小写字母字符串和改变某个字母的代价表,求把字符串改位必须由不小于k个相同字母组成字符串组成的字符串。

题目分析;
步骤1:把代价表通过ploy更新为最小代价表。
步骤2:做一个把字符串全改为一个字母的前缀和表。
步骤3:利用前缀和表dp最佳答案。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
char ch[100005];
ll a[26][26],dp[100005][26],f[100005][26];
int main()
{int i,n,m,k,j,p;ll mi;scanf("%d%d%d",&n,&m,&k);getchar();for(i=1;i<=n;i++){scanf("%c",&ch[i]);ch[i]-='a';       //方便访问代价表}for(i=0;i<m;i++)for(j=0;j<m;j++)scanf("%lld",&a[i][j]);for(p=0;p<m;p++)       //更新代价表for(i=0;i<m;i++)for(j=0;j<m;j++)a[i][j]=min(a[i][j],a[i][p]+a[p][j]);for(i=1;i<=n;i++)       //做前缀和表for(j=0;j<m;j++)dp[i][j]=dp[i-1][j]+a[ch[i]][j];for(i=k;i-k<k&&i<=n;i++)  //前k个字母必定相同for(j=0;j<m;j++)      //2k前无法更新f[i][j]=dp[i][j];for(;i<=n;i++)for(j=0;j<m;j++){for(mi=f[i-k][0],p=1;p<m;p++)mi=min(mi,f[i-k][p]);   //先找出最佳更新前k位点f[i][j]=min(mi-dp[i-k][j]+dp[i][j],f[i-1][j]+a[ch[i]][j]);  //前一位和前k位跟新}for(i=1,mi=f[n][0];i<m;i++) mi=min(mi,f[n][i]);  //找最佳方案printf("%lld\n",mi);return 0;
}

GDUT 排位赛2.19 C相关推荐

  1. GDUT 排位赛2.19 D

    题目:Meetings 题目链接: https://codeforces.ml/group/5yyKg9gx7m/contest/269717/problem/D 题目描述: 在一条路上各不同点上有给 ...

  2. GDUT 排位赛2.19 E

    题目:Milk Visits 题目链接:https://codeforces.ml/group/5yyKg9gx7m/contest/269717/problem/E 题目描述: 给出树状图,每个点上 ...

  3. GDUT 排位赛2.19 G

    题目:Livestock Lineup 题目链接:https://codeforces.ml/group/5yyKg9gx7m/contest/269717/problem/G 题目描述: 给出一定要 ...

  4. GDUT 寒假排位赛三

    [题目链接:]http://codeforces.com/group/NVaJtLaLjS/contest/238202 感想 emmmm,这套题有个特点,代码量小的考思维,而那些一眼看过去思路就有了 ...

  5. 20.2.19排位赛G

    [题目大意] 有8只牛分别为Bessie, Buttercup, Belinda, Beatrice, Bella, Blue, Betsy, and Sue,有n(1<=n<=7)条信息 ...

  6. 团队程序设计天梯赛-3.19排位赛总结

    文章目录 7-1 冠军魔术 (10 分) 题目 知识点 代码 7-2 单词长度 (10 分) 题目 注意点 代码 7-3 组个最小数 (15 分) 题目 知识点 代码 7-4 检查密码 (15 分) ...

  7. GDUT 寒假排位赛二

    直接看题 [题目链接]: http://codeforces.com/group/NVaJtLaLjS/contest/238204 A. Taming the Herd(签到题) 题意: 有一张表, ...

  8. 神武3 服务器维护公告,2021年3月19日更新公告

    2021年3月19日更新公告 关键字: 发布时间:2021-03-19 本周重点更新内容: 1.半价转门派及重置属性预告 2.新增全明星名人堂 3.三界仙魔录 4.一键附魔功能限服开启 此外还对页签模 ...

  9. [又值奥运季] 2016年里约奥运会--8月19日赛事

    // 1.   20160819_0000_室内女子排球_半决赛 2.   20160819_0000_花游团体_技术自选 3.   20160819_0005_帆船帆板男子帆船49er级_奖牌轮 4 ...

最新文章

  1. Java计时器Timer和TimerTask用法总结(源码)
  2. 回头验卦,占IT公司例中淘宝案例之总结
  3. Linux C编程--进程介绍2--exec函数
  4. 采购订单更改日期的妙用
  5. 一步步编写操作系统 26 打开A20地址线
  6. linux首次安装mysql密码是多少,Linux小白,初次安装MySQL,大神请绕路
  7. unity三维向量变化为角度_三维旋转
  8. Mybatis-plus 将字段更新为null
  9. (1) 还原二叉树 (25 分)
  10. ActiveReports 9 新功能:创新的报表分层设计理念
  11. python3.6 编程技巧总结
  12. 如何快速成为数据分析师
  13. 在本地机上使用VNC远程连接CentOs7
  14. win10计算机磁盘图标,主编教你win10系统无法正常显示硬盘图标的方法
  15. 下一个韦神?广西桂林14岁初中生保送清华丘班,明年本硕博连读!
  16. 【音频编码】AAC编码之FDK AAC
  17. 信庭嵌入式工作室-嵌入式Linux漫谈之Linux系统
  18. 511遇见电脑PC任意多开绿色软件
  19. 把 14 亿中国人都拉到一个微信群,程序员在技术上能实现吗?
  20. bzoj 1171: 大sz的游戏, bzoj 2892: 强袭作战

热门文章

  1. acme证书的更新和安装
  2. 怎样有效降低测试的轮次?
  3. 支持Paypal支付返利的国外网站
  4. 1024分辨率《新少林寺》HD国语中字无水印
  5. 计算机一级公式average,计算机二级Office:Excel-sum、average、count函数
  6. JAVA:实现求Average平均数算法(附完整源码)
  7. c语言输出斐波那契数列pta,从斐波那契数列说起
  8. 红米airdots掉了怎么查找_戒网瘾神器红米路由器ac2100
  9. 利用tailscale进行个人远程办公和单机游戏开黑
  10. 整洁的代码 VS 肮脏的代码?