正题


大意

先给出n个句子,然后给出一个最终句子。最终句子由多个句子加密后组成(可能重复)。加密方法就是将字母调换位置,加密代价就是该位置与原来的字母不同的数量。求达到最终句子的最小加密代价


解题思路

用f[i]f[i]f[i]表示最终句子已经完成了前i个单词的最小代价,枚举加密用的句子,然后列出动态转移方程:

f[i]=f[i−len[j]]+wf[i]=f[i−len[j]]+w

f[i]=f[i-len[j]]+w
w为该段支付的加密代价。


代码

#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int n,al,l[51],t[26],w,f[101];
string s[51],ans;
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++){cin>>s[i];l[i]=s[i].size();}cin>>ans;al=ans.size();for (int i=1;i<=al;i++){f[i]=214748364;for (int j=1;j<=n;j++){if (i<l[j]) continue;for (int k=0;k<26;k++) t[k]=0;//桶w=0;for (int k=0;k<l[j];k++){if (ans[i-l[j]+k]!=s[j][k]) w++;//代价t[int(ans[i-l[j]+k])-97]++;t[int(s[j][k])-97]--;}for (int k=0;k<26;k++)if (t[k]) {w=214748364;break;//无法连接}f[i]=min(f[i],f[i-l[j]]+w);//动态转移}}if (f[al]==214748364) printf("-1");//无解else printf("%d",f[al]);//输出
}

【2018.3.31】模拟赛之四-ssl2408 句子【dp,字符串】相关推荐

  1. 2018.10.31模拟赛

    T1 lgg L 君和 G 君在玩一个游戏.G 君写下一个字符串 A,L 君将其复制一遍连接到 A 串后面得 到字符串 B, G 君又在 B 的任意位置(包括首尾)插入一个字符得到字符串 C.现在你得 ...

  2. 2018.10.9模拟赛

    2018.10.9模拟赛 T1 trade 正解:贪心 据说lyd讲过但并没有印象QAQ,考场上现推浪费了不少时间 其实就开个小根堆,每次把堆顶取出来看它是不是比当前的 a[i]a[i]a[i] 小, ...

  3. 2020/10/31模拟赛

    CSP第二轮前模拟赛 我太菜了 T1 题目描述 奶牛们对围栏的高度非常敏感.奶牛希望围栏高度既不太矮以至于他们没有安全感,也不太高以至于她们看不见围栏外的天地.所以每头奶牛都有自己喜欢的高度.奶牛有N ...

  4. 【2018.3.31】模拟赛之三-ssl2408 比萨【搜索,dfs】

    正题 大意 有t种配料,有n种限制.限制就是几种配料不能同时使用(可能有多种).求方案数 解题思路 暴力搜索能过 代码 #include<cstdio> using namespace s ...

  5. 【2018.3.24】模拟赛之四-ssl2548 旋转【暴力模拟】

    正题 大意 给出一块黑块和白块组成的版,将其旋转90°后和之前的黑块叠加,求最初始和每次旋转后的黑块数. 解题思路 暴力模拟不解释 代码 #include<cstdio> #include ...

  6. 【2018.5.19】模拟赛之四-ssl2435 航空公司【并查集,二分】

    正题 题目大意 有n个点,给出坐标,选择所有距离在k之内的边要求联通所有点,求最小的k. 解题思路 垃圾解法 用二分答案然后加并查集求是否联通. 时间复杂度:O(mlogn)O(mlogn)O(mlo ...

  7. 【2018.5.12】模拟赛之四-ssl2416 条形图【高精度,dp】

    正题 题目大意 第iii行有n−i+1" role="presentation" style="position: relative;">n−i ...

  8. 【2018.4.21】模拟赛之四-ssl2405 巧克力【实际上是模拟】

    正题 大意 有n块巧克力,一个a*b的网格,如果网格可以完全包括一块巧克力就可以获得这块巧克力,求最多能获得的巧克力数量 解题思路 枚举点(在巧克力上的)和各种情况,然后判断这种情况包括多少个巧克力, ...

  9. 【2018.4.14】模拟赛之四-ssl2394 剪草【dp】

    正题 大意 有n株草,没个时间单位开始时会增长不同的长度.每个时间单位可以将一株草剪成高度为0,求多少时间单位后能够将草的总高度减低为h以下,或用远不能. 解题思路 首先需要一段玄学推理: 可以等草长 ...

最新文章

  1. Java第一个程序(CMD环境)
  2. mac怎么配置php开发环境变量,Mac M1安装mnmp(Mac+Nginx+MySQL+PHP)开发环境
  3. php ajax加载,php – 什么更快? Ajax加载JSON或Ajax加载完整输出
  4. css3 Gradient 背景渐变
  5. mysql 常用日期,时间函数
  6. 今天开通android博客 该认真学习了
  7. ServletContextListener作用(转)
  8. 多目标优化算法(一)NSGA-Ⅱ(NSGA2)
  9. ce标志cad_CAD自定义快捷键+常用符号
  10. Uniapp微信雪糕刺客单页小程序源码
  11. excel表格打印每页都有表头_EXCEL打印小技巧:如何打印出每张纸上都有表头标题的表格?...
  12. 解决关于腾讯会议黑屏问题(ThinkpadE420型号)
  13. matlab中除号的有效字符,乘号(x)、除号(÷)、双引号()等字符实体的HTML代码...
  14. 手机怎么实现图片转文字操作?学会这三招就够了
  15. 苹果屏和android屏哪个更真实,同是LCD屏,为什么iPhone的实际体验比安卓好许多...
  16. C#从字节数组截取片段(转载)
  17. Matlab中rgb2ind函数用法
  18. Http是传输层吗?TCP是个么层?IP/TCP与HTTP的关系?
  19. Xshell 使用技巧
  20. 物理学十大实验(6-10)

热门文章

  1. c语言基类型,C语言基本类型边界值
  2. 10kv电压互感器型号_电压互感器型号大全
  3. linux 核显驱动程序,支持下代核显 Intel放出Linux图形驱动
  4. python反射、闭包、装饰器_python之闭包、装饰器、生成器、反射
  5. php中请写出定义变量的两种方法,php定义变量几种
  6. 无法初始化java类_myeclip运行java程序不能初始化类 NoClassDefFoundError
  7. qt 从文件中读出数据显示在表格中_QT中有什么控件可以实现向excel的表格显示,qt数据存储到Excel表格...
  8. [mybatis]缓存_缓存有关的设置以及属性
  9. [Java基础]标准输入输出流
  10. AcWing 703. 数独检查