POJ 1699 Best Sequence(DFS)
題意 : 將幾個片段如圖所示方法縮成一個序列,求出最短這個序列。
思路 : 其實我也不知道怎麼做。。。。。看網上都用了DP。。。。。但是我不會。。。。。這個DP不錯,還有用KMP+状压DP做的
- //
- #include <iostream>
- #include <stdio.h>
- #include <string.h>
- #include <string>
- using namespace std;
- string str[] ;
- int dp[][],ans ,n,vis[];
- void f(int i,int j)
- {
- int len1 = str[i].size() ;
- int len2 = str[j].size() ;
- int s = ;
- for(int k = ; k <= len1 && k <= len2 ; k++)
- {
- bool flag = true ;
- for(int h = ; h < k ; h++)
- {
- if(str[i][len1-k+h] != str[j][h])
- {
- flag = false ;
- break ;
- }
- }
- if(flag == true)
- s = k ;
- }
- dp[i][j] = len2-s ;
- }
- void dfs(int now,int ceng,int len)
- {
- if(len >= ans) return ;
- if(ceng == n-) ans = min(ans,len) ;
- for(int i = ; i <= n ; i++)
- {
- if(!vis[i])
- {
- vis[i] = ;
- dfs(i,ceng+,len+dp[now][i]) ;
- vis[i] = ;
- }
- }
- }
- int main()
- {
- int T;
- scanf("%d",&T) ;
- while(T--)
- {
- scanf("%d",&n) ;
- for(int i = ; i <= n ; i++)
- cin>>str[i] ;
- for(int i = ; i <= n ; i++)
- for(int j = ; j <= n ; j++)
- if(i != j) f(i,j) ;
- memset(vis,,sizeof(vis)) ;
- ans = ;
- for(int i = ; i <= n ; i++)
- {
- vis[i] = ;
- dfs(i,,str[i].size()) ;
- vis[i] = ;
- }
- printf("%d\n",ans) ;
- }
- return ;
- }
POJ 1699 Best Sequence(DFS)的更多相关文章
- POJ 3009-Curling 2.0(DFS)
Curling 2.0 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12158 Accepted: 5125 Desc ...
- 题解报告:poj 1321 棋盘问题(dfs)
Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子 ...
- 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 ...
- POJ - 1019 Number Sequence (思维)
https://vjudge.net/problem/POJ-1019 题意 给一串1 12 123 1234 12345 123456 1234567 12345678 123456789 1234 ...
- [ACM] POJ 3740 Easy Finding (DFS)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16202 Accepted: 4349 Description Give ...
- POJ 2386——Lake Counting(DFS)
链接:http://poj.org/problem?id=2386 题解 #include<cstdio> #include<stack> using namespace st ...
- POJ 1321 棋盘问题(dfs)
传送门 棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 38297 Accepted: 18761 Descri ...
- POJ 1321 棋盘问题 (dfs)
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...
- POJ:2386 Lake Counting(dfs)
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40370 Accepted: 20015 D ...
随机推荐
- 【转】理解JavaScript之闭包
闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面写下我的学习笔记~ 闭包-无处不 ...
- 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 ...
- php进行多个数组合并zip
$a = array_zip(array("Dog","Cat","Horse"), array(1,2,3), array("l ...
- 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 ...
- javascript中的省市级联效果
学习javascript的时候都遇到过这样的需求,不仅是省市,还有其他的一些场景,看看关键的代码有哪些吧. <head runat="server"> <titl ...
- 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 ...
- 增强的PuTTY 以及 自定义主题
PuTTY很早之前就没有更新了(0.62),因为都是开源的所以有人branch出来做了增强,如这个PuTTY tray,增加了超链等功能: https://puttytray.goeswhere.co ...
- Nginx 老是抢先捕获了404 我想这个404我Yii项目来处理 要怎么配置?
配置Nginx vhost的时候别指定error_page 它就不会跟Yii抢生意了 or 你弄一个frontendController 然后再里面 加上 $user->loginRequi ...
- LintCode-Median II
Numbers keep coming, return the median of numbers at every time a new number added. Example For numb ...
- OpenWrt编译到底脚本
在办公室编译OpenWrt,费时很久,原因有两个. 一是办公室网络环境比较糟糕,经常断线不说,很多技术网站间歇性的连不上,不是撞到404就是DNS解析失败等. 二是初次编译OpenWrt时需要从网上下 ...