题目链接:uva 1424 - Salesmen

题目大意:给定一个包含n个点的无向图和一个长度为L的序列A,要求修改尽量少得数,使得序列中的任意两个相邻数相等或者在途中相邻。

解题思路:dp[i][j]表示说长度为i且最后一个数为j的情况需要修改最少几次。dp[i][j] = min(dp[i][j], dp[i-1][k] + (j == A[i])?1:0));

#include <stdio.h>
#include <string.h>
#include <algorithm>using namespace std;
const int N = 105;
const int INF = 0x3f3f3f3f;int n, m, k, g[N][N], A[2*N], dp[N*2][N];void init () {int a, b;memset(g, 0, sizeof(g));memset(dp, INF, sizeof(dp));scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) dp[0][i] = 0;for (int i = 0; i < m; i++) {scanf("%d%d", &a, &b);g[a][b] = g[b][a] = 1;}scanf("%d",  &k);for (int i = 1; i <= k; i++) scanf("%d", &A[i]);
}int solve() {int ans = k;for (int i = 1; i <= k; i++) {for (int j = 1; j <= n; j++) {for (int t = 1; t <= n; t++) if (j == t || g[j][t]) {dp[i][j] = min(dp[i][j], dp[i-1][t]+(j == A[i] ? 0 : 1));}}}for (int i = 1; i <= n; i++) {ans = min(dp[k][i], ans);}return ans;
}int main () {int cas;scanf("%d", &cas);while (cas--) {init();    printf("%d\n", solve());}return 0;
}

uva 1424 - Salesmen(dp)相关推荐

  1. UVA 1424 - Salesmen (dp)

    题目:点击打开链接 题意: 给一个n个点m条边的有向无环图,再给一个长度L的序列A,然后求图中的一条长度为L的路径B(这条路径的同一个点可以连续重复出现多次) 问路径B和序列A不相等的数最少多少, 即 ...

  2. Placing Lampposts ,UVa 10859 树形dp

    UVa 10859 日常刷白书,第三次刷dp刷到这题,竟然还是不会写..... 这个题给定n个点m条边的无向无环图,有至多1000个节点,每个节点有两个状态,可以放灯或者不放灯,要求放最少的灯使得所有 ...

  3. uva 10118(DP)

    UVA 10118 题意: 有4堆糖果,每堆有n(最多40)个,有一个篮子,最多装5个糖果,我们每次只能从某一堆糖果里拿出一个糖果, 如果篮子里有两个相同的糖果,那么就可以把这两个(一对)糖果放进自己 ...

  4. uva 672 - Gangsters(dp)

    题目链接:uva 672 - Gangsters 题目大意:给出n,K,T,表示一个酒店将要有n位客人到来,然后给出每个客人的ti,表示在ti时刻第i位客人来到酒店,ti ≤ T:再给出pi,表示第i ...

  5. 【UVa】【DP】1633 Dyslexic Gollum

    UVa 1633 Dyslexic Gollum 题目 ◇题目传送门◆(由于UVa较慢,这里提供一份vjudge的链接) ◇题目传送门(vjudge)◆ 题目大意 输入正整数N,KN,KN,K,求长度 ...

  6. UVA 10564 计数DP

    也是经典的计数DP题,想练练手,故意不写记忆化搜索,改成递推,还是成功了嘞...不过很遗憾一开始WA了,原来是因为判断结束条件写个 n或s为0,应该要一起为0的,搞的我以为自己递推写挫了,又改了一下, ...

  7. Uva 11600 期望DP

    题意:n个城市,相互可达(有n(n-1)/2条边),其中有一些道路上面有妖怪,现在,从1号城市出发,随机挑取一个城市走去,这个道路上的妖怪就会被消灭,求: 在平均情况下,需要走多少步,使得任意两个城市 ...

  8. UVa 11762 (期望 DP) Race to 1

    设f(x)表示x转移到1需要的次数的期望,p(x)为不超过x的素数的个数,其中能整除x的有g(x)个 则有(1-g(x)/p(x))的概率下一步还是转移到x,剩下的情况各有1/p(x)的概率转移到x/ ...

  9. uva 10306 简单DP

    题意: 给n种硬币和一个面值s. 每种硬币有两种价值,并且有无限个,求能满足第一种价值i * i + j * j = s * s的最少硬币数. 解析: 先dp出每种情况下i,j用的最少银币,然后暴力搞 ...

最新文章

  1. 【Network Security!】5次Shift漏洞和PE系统
  2. jquery插件学习(六)
  3. SharePoint 2003, 2007对上传文件的URL的长度限制
  4. 20120530, BGP3
  5. Windows学习总结(17)——Windows 15个重要运行命令
  6. MySQL--timestamp类型字段的CURRENT_TIMESTAMP与ON UPDATE CURRENT_TIMESTAMP属性
  7. [轉]VS 2010 通过 Architecture创建UML类图设计
  8. 美团 Flink 大作业部署与状态稳定性优化实践
  9. msfconsole php,msfconsole从入门到放弃
  10. 04 高等数学专题——向量代数和空间解析几何
  11. Halcon区域特征
  12. 软件测试实战(微软技术专家经验总结)--第四章(测试建模)读书笔记
  13. iPhone信号太差?学会这三招,信号差也能瞬间满格!
  14. win7系统安装telnet服务器,Win7系统下怎么安装Telnet服务【图文教程】
  15. Duplicated tag: ‘build‘出现此报错是因为标签配置重复。
  16. 线性代数-思维导图(5)
  17. python自动投递_利用python如何在前程无忧高效投递简历
  18. (四)比较好用的几个翻译软件
  19. 淘宝卖家如何设置公益宝贝
  20. Unity3D-iOS创建本地视频

热门文章

  1. 微信小程序——签到系统(入门级)
  2. ZGC的多重映射,会不会造成 虚拟内存很多,而实际的物理内存已经不够用的情况?
  3. 蓝桥杯转接板 定时器2使用
  4. 《谋圣鬼谷子》众生落魄相 段奕宏戚薇受刑
  5. 操作系统实验五——进程互斥实验
  6. java.io.ioexception: file exists_无法使文件java.io.IOException:没有这样的文件或目录
  7. java将图片与二维码合成
  8. 融云SDK/客户端获取token
  9. 腊月二十八,聊聊 MyBatis 中的设计模式
  10. Android 官方模拟器7.0+ ROOT操作(以把CA证书刷到系统信任证书为例)