1、n串最长公共子序列

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. using namespace std;
  5. const int MAXF=;
  6. const int MAXN=;
  7. int n;
  8. int base[MAXN],len[MAXN],pos[MAXN];
  9. char ans;
  10. char f[MAXF];
  11. char word[MAXN][MAXN];
  12. void solve()
  13. {
  14. int idx=;
  15. for(int i=;i<n;i++){
  16. idx+=(pos[i]-)*base[i];
  17. }
  18. bool same=true,has_one=false;
  19. for(int i=;i<n;i++){
  20. if(word[i][pos[i]-]!=word[][pos[]-]){
  21. same=false;
  22. break;
  23. }
  24. if(pos[i]==){
  25. has_one=true;
  26. }
  27. }
  28. if(same){
  29. if(has_one){
  30. f[idx]=;
  31. }else{
  32. int p_idx=idx;
  33. for(int i=;i<n;i++){
  34. p_idx-=base[i];
  35. }
  36. f[idx]=f[p_idx]+;
  37. }
  38. }else{
  39. for(int i=;i<n;i++){
  40. if(pos[i]==) continue;
  41. f[idx]=max(f[idx],f[idx-base[i]]);
  42. }
  43. }
  44. ans=max(ans,f[idx]);
  45. }
  46. void dp(int p)
  47. {
  48. if(p==n){
  49. return solve();
  50. }
  51. for(int i=;i<=len[p];i++){
  52. pos[p]=i;
  53. dp(p+);
  54. }
  55. }
  56. int main(void)
  57. {
  58. scanf("%d",&n);
  59. for(int i=;i<n;i++){
  60. scanf("%s",word[i]);
  61. len[i]=strlen(word[i]);
  62. }
  63. base[]=;
  64. for(int i=;i<n;i++){
  65. base[i]=base[i-]*len[i-];
  66. }
  67. dp();
  68. printf("%d\n",ans);
  69. }
  70. /*
  71.  
  72. 3
  73. Iloveyou
  74. Ihateyou
  75. Iwantyou
  76.  
  77. */

dp类模板的更多相关文章

  1. C++STL - 类模板

    类的成员变量,成员函数,成员类型,以及基类中如果包含参数化的类型,那么该类就是一个类模板   1.定义 template<typename 类型形参1, typename 类型形参2,...&g ...

  2. C++ 类模板的使用

    从事C++挺久了,在前段时看书时,发现高手,都是在写模板无,泛型编程,顿感差距.自己连模板都没有写,于是就小小的研究了下模板的用法. 模板简而言之就是对某此对象的相同方法,或处理方式,进行归纳,总结, ...

  3. Xcode6中如何使用自定义的类模板

    说到IOS类的模板,有些人感觉很陌生,但是只要有开发过IOS程序的人,其实都用过类的模板,只不过是用的系统自带的类的模板. 例如创建一个ClassTemplateVC继承于UIViewControll ...

  4. VS2013,VS2015设置类模板文件表头

    一般VS的类模板文件是放在C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplatesCache\CSha ...

  5. 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板

    [源码下载] 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板 作者:webabcd 介绍不可或缺 Window ...

  6. 类模板的static成员

    下列代码可以通过编译吗?如何修改使其通过编译? template <class T> struct sum {   static void foo(T op1 , T op2){    c ...

  7. 4.1 pair类模板

    在学习关联容器之前,首先先要了解一下STL中的pair类模板,因为关联容器的一些成员函数返回值都是pair对象,而且map 和multimap中的元素都是pair对象. 1)pair类模板定义 pai ...

  8. 3.2 STL中的函数对象类模板

    *: STL中有一些函数对象类模板,如下所示: 1)例如要求两个double类型的x 和y 的积,可以: multiplies<double>()(x,y); 该表达式的值就是x*y的值. ...

  9. C++类模板

    在上篇文章(C++函数模板)中,主要介绍了C++中函数模板,与函数相似,类也可以被一种或多种类型参数化.容器类就是一个具有这种特性的典型的例子, 本文地址:http://www.cnblogs.com ...

随机推荐

  1. jquery图片滚动jquery.scrlooAnimation.js

    ;(function ($, window, document, undefined) { var pluginName = "scrollAnimations", /** * T ...

  2. springmvc请求数据的流程。

    验证了我说的,从model层中拿来的数据,不管什么类型,都是通过隐含模型,中转,放入request中的.除非你特意把这些数据放到session域中 流程含义解释:(来自网友)(1)HTTP请求到达we ...

  3. Java写Excel(不生成实体文件,写为流的形式)

    java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...

  4. thinkphp5数据库导入Excel表格

    $data=$order_info; //$data 你要下载谁 就去查谁 // $data= Db::name('order_info') // ->field('consignee,tel, ...

  5. 第一个网页(仿照当当网,仅仅使用CSS)

    这个网页是在学过CSS之后,对当当网首页进行模仿的网页,没有看当当网的网页源码,纯按照自己之前学的写的,由于是刚学过HTML和CSS才一个星期,所以里面有许多地方写的非常没有水平,仅仅用来学习使用,欢 ...

  6. ruby File类

    类方法 路径相关: File.basename(filename <, suffix>) -> string返回给定文件名 filename 的最后一部分.如果有 suffix 参数 ...

  7. Oozie Coordinator job 之定时任务

    使用 Coordinator job 可以执行定时任务和时间触发执行 需要注意的是 Oozie 默认使用的时区与中国时区不是一致的,需要进行一点修改 1.关于时区 a.修改 core-site.xml ...

  8. 生成Excel.xlsx文件 iOS

    使用到的三方库 https://github.com/jmcnamara/libxlsxwriter cocoapods导入 pod 'libxlsxwriter', '~> 0.8.3' 1. ...

  9. jenkins安全内容配置策略

    有时我们使用HTML Publisher Plugin插件时,在jenkins点开html report,会发现没有带任何的css或js样式,这是因为Jenkins 1.641 / Jenkins 1 ...

  10. js学习日记-常用正则符号参考

    预定义类 量词 贪婪.惰性.支配性量词 前瞻 边界 RegExp是全局对象,RegExp.$1...$9是全局属性.当执行任意正则表达式匹配操作时,JavaScript会自动更新全局对象RegExp上 ...