题目大意

给定一个包含n(n<=100)个点的无向连通图和一个长度为L的序列A(L<=200),你的任务是修改尽量少的数,使得序列中的任意两个相邻的数或者相同,或者对应图中两个相邻结点

题解

妈蛋,这么水的题目想不出来,然后搜了下解题报告,瞬间觉得巨水啊。。。。智商拙计啊

用dp[i][j]表示前i个数并且以数字j结尾的序列需要修改的最少次数,那么如果j等于a[i]那么dp[i][j]=min(dp[i-1][k]),否则的话dp[i][j]=min(dp[i-1][k]+1)(j==k或者j和k连通)

代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
#define MAXN 105
#define INF 0x7fffffff
int dp[MAXN*2][MAXN];
bool grah[MAXN][MAXN];
int a[MAXN*2];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n1,n2,n;
scanf("%d%d",&n1,&n2);
memset(grah,false,sizeof(grah));
while(n2--)
{
int x,y;
scanf("%d%d",&x,&y);
grah[x][y]=grah[y][x]=true;
}
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n1;i++)
dp[0][i]=0;
dp[0][a[1]]=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=n1;j++)
{
dp[i][j]=INF;
for(int k=1;k<=n1;k++)
if(j==k||grah[j][k])
{
if(j==a[i]) dp[i][j]=min(dp[i][j],dp[i-1][k]) ;
else
dp[i][j]=min(dp[i][j],dp[i-1][k]+1) ;
}
}
int ans=INF;
for(int i=1;i<=n1;i++)
ans=min(ans,dp[n][i]);
printf("%d\n",ans);
}
return 0;
}

UVa1424–Salesmen(DP)的更多相关文章

  1. 递推DP UVA 1424 Salesmen

    题目传送门 /* 题意:给定包含n个点的无向图和一个长度为L的序列,修改尽量少的点使得相邻的数字相同或连通 DP:状态转移方程:dp[i][j] = min (dp[i][j], dp[i-1][k] ...

  2. UVaLive 4256 Salesmen (简单DP)

    题意:给一个无向连通图,和一个序列,修改尽量少的数,使得相邻两个数要么相等,要么相邻. 析:dp[i][j] 表示第 i 个数改成 j 时满足条件.然后就很容易了. 代码如下: #pragma com ...

  3. 【UVa】Salesmen(dp)

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  4. LA 4256 DP Salesmen

    d(i, j)表示使前i个数满足要求,而且第i个数值为j的最小改动次数. d(i, j) = min{ d(i-1, k) | k == j | G[j][k] } #include <cstd ...

  5. UVA 1424 二 Salesmen

    Salesmen Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Pr ...

  6. HDU 6447 - YJJ's Salesman - [树状数组优化DP][2018CCPC网络选拔赛第10题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6447 Problem DescriptionYJJ is a salesman who has tra ...

  7. uva1424

    Traveling salesmen of nhn. (the prestigious Korean internet company) report their current location t ...

  8. BIT+DP

    2018CCPC网络赛 J - YJJ's Salesman HDU - 6447 YJJ is a salesman who has traveled through western country ...

  9. UVALIVE 4256 Salesmen

    Salesmen Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVALive. Original ...

随机推荐

  1. hdu 2594 Simpsons’ Hidden Talents KMP应用

    Simpsons’ Hidden Talents Problem Description Write a program that, when given strings s1 and s2, fin ...

  2. 【配置文件节点】java世界配置文件节点

    Spring <context:property-placeholder/> 期望:能不能有一种解决方案可以方便我们在一个阶段内不需要频繁书写一个参数的值,而在不同阶段间又可以方便的切换参 ...

  3. UIWebView 加载网页、文件、 html-b

    UIWebView  是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽 2.通过al ...

  4. Java连接MySQl数据库实现代码

    1. 获取数据库连接和查询代码 package connectionmysql; import java.sql.Connection; import java.sql.DriverManager; ...

  5. about js

    function: javascript jquery modernizr yepnope code organization requirejs backbonejs http://blog.csd ...

  6. cxf2.4.3中jaxb-api.jar、jaxws-api.jar与jdk1.6.0_02不兼容问题

    http://chxiaowu.iteye.com/blog/1243475 Exception in thread "main" java.lang.NoClassDefFoun ...

  7. Tomcat HTTP/1.1 Connector 参数整理

    HTTP/1.1 Connector 概述 Coyote HTTP/1.1 Connector元素是一个支持HTTP/1.1协议的Connector组件.它使Catalina除了能够执行servlet ...

  8. 汇编语言中,SP,BP ,SI,DI作用?

    这个很简单: sp:表示栈顶指针,指向栈顶地址.与SS相配合使用.ss为栈段. bp:是基址指针,段地址默认在SS中.可以定位物理地址,比如:"mov ax,[bp+si+6]/mov ax ...

  9. CC_UNUSED_PARAM 宏含义的解释

    #define CC_UNUSED_PARAM(unusedparam) (void)unusedparam 这个宏完全没有执行任何命令,这样写的原因主要是历史遗留原因,ojb-c不存在纯虚函数并且传 ...

  10. *[topcoder]LittleElephantAndString

    http://community.topcoder.com/stat?c=problem_statement&pm=12854&rd=15709 这道题DIV1 250的,还有点意思. ...