題目鏈接

題意 : 將幾個片段如圖所示方法縮成一個序列,求出最短這個序列。

思路 : 其實我也不知道怎麼做。。。。。看網上都用了DP。。。。。但是我不會。。。。。這個DP不錯,還有用KMP+状压DP做的

  1. //
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <string>
  6.  
  7. using namespace std;
  8.  
  9. string str[] ;
  10. int dp[][],ans ,n,vis[];
  11.  
  12. void f(int i,int j)
  13. {
  14. int len1 = str[i].size() ;
  15. int len2 = str[j].size() ;
  16. int s = ;
  17. for(int k = ; k <= len1 && k <= len2 ; k++)
  18. {
  19. bool flag = true ;
  20. for(int h = ; h < k ; h++)
  21. {
  22. if(str[i][len1-k+h] != str[j][h])
  23. {
  24. flag = false ;
  25. break ;
  26. }
  27. }
  28. if(flag == true)
  29. s = k ;
  30. }
  31. dp[i][j] = len2-s ;
  32. }
  33.  
  34. void dfs(int now,int ceng,int len)
  35. {
  36. if(len >= ans) return ;
  37. if(ceng == n-) ans = min(ans,len) ;
  38. for(int i = ; i <= n ; i++)
  39. {
  40. if(!vis[i])
  41. {
  42. vis[i] = ;
  43. dfs(i,ceng+,len+dp[now][i]) ;
  44. vis[i] = ;
  45. }
  46. }
  47. }
  48. int main()
  49. {
  50. int T;
  51. scanf("%d",&T) ;
  52. while(T--)
  53. {
  54. scanf("%d",&n) ;
  55. for(int i = ; i <= n ; i++)
  56. cin>>str[i] ;
  57. for(int i = ; i <= n ; i++)
  58. for(int j = ; j <= n ; j++)
  59. if(i != j) f(i,j) ;
  60. memset(vis,,sizeof(vis)) ;
  61. ans = ;
  62. for(int i = ; i <= n ; i++)
  63. {
  64. vis[i] = ;
  65. dfs(i,,str[i].size()) ;
  66. vis[i] = ;
  67. }
  68. printf("%d\n",ans) ;
  69. }
  70. return ;
  71. }

POJ 1699 Best Sequence(DFS)的更多相关文章

  1. POJ 3009-Curling 2.0(DFS)

    Curling 2.0 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12158   Accepted: 5125 Desc ...

  2. 题解报告:poj 1321 棋盘问题(dfs)

    Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子 ...

  3. POJ 2251 Dungeon Master(dfs)

    Description You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is co ...

  4. POJ - 1019 Number Sequence (思维)

    https://vjudge.net/problem/POJ-1019 题意 给一串1 12 123 1234 12345 123456 1234567 12345678 123456789 1234 ...

  5. [ACM] POJ 3740 Easy Finding (DFS)

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16202   Accepted: 4349 Description Give ...

  6. POJ 2386——Lake Counting(DFS)

    链接:http://poj.org/problem?id=2386 题解 #include<cstdio> #include<stack> using namespace st ...

  7. POJ 1321 棋盘问题(dfs)

    传送门 棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 38297   Accepted: 18761 Descri ...

  8. POJ 1321 棋盘问题 (dfs)

    在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...

  9. POJ:2386 Lake Counting(dfs)

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 40370   Accepted: 20015 D ...

随机推荐

  1. 【转】理解JavaScript之闭包

    闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面写下我的学习笔记~ 闭包-无处不 ...

  2. Docker无法启动 Could not find a free IP address range for interface 'docker0' 最方便的解决办法

    阿里云的CentOS 6.5上安装Docker会无法启动,如果直接运行docker -d会看到错误提示:Could not find a free IP address range for inter ...

  3. php进行多个数组合并zip

    $a = array_zip(array("Dog","Cat","Horse"), array(1,2,3), array("l ...

  4. WCF全面解析第二章 地址(Adress)

    2.1 统一资源标识(URL) 2.1.1 Http/Https 2.1.2 Net.TCP 2.1.3 Net.Pipe WCF只将命名管道专门用于同一台机器的跨进程通信. 2.1.4 Net.Ms ...

  5. javascript中的省市级联效果

    学习javascript的时候都遇到过这样的需求,不仅是省市,还有其他的一些场景,看看关键的代码有哪些吧. <head runat="server"> <titl ...

  6. COUNT(*),count(1),COUNT(ALL expression),COUNT(DISTINCT expression)

    创建一个测试表 IF OBJECT_ID( 'dbo.T1' , 'U' )IS NOT NULL BEGIN DROP TABLE dbo.T1; END; GO )); GO INSERT INT ...

  7. 增强的PuTTY 以及 自定义主题

    PuTTY很早之前就没有更新了(0.62),因为都是开源的所以有人branch出来做了增强,如这个PuTTY tray,增加了超链等功能: https://puttytray.goeswhere.co ...

  8. Nginx 老是抢先捕获了404 我想这个404我Yii项目来处理 要怎么配置?

    配置Nginx vhost的时候别指定error_page 它就不会跟Yii抢生意了 or 你弄一个frontendController   然后再里面 加上 $user->loginRequi ...

  9. LintCode-Median II

    Numbers keep coming, return the median of numbers at every time a new number added. Example For numb ...

  10. OpenWrt编译到底脚本

    在办公室编译OpenWrt,费时很久,原因有两个. 一是办公室网络环境比较糟糕,经常断线不说,很多技术网站间歇性的连不上,不是撞到404就是DNS解析失败等. 二是初次编译OpenWrt时需要从网上下 ...