题目大意

给定一个包含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. VSCode调试go

    VSCode调试go语言出现:exec: "gcc": executable file not found in %PATH%   1.问题描述 由于安装VS15 Preview ...

  2. input标签文字点击变颜色

    <input type="text" class="ser_input"value="从这里搜索(^_^)" onfocus=&quo ...

  3. 【弱省胡策】Round #7 Rectangle 解题报告

    orz PoPoQQQ 的神题. 我的想法是:给每一个高度都维护一个 $01$ 序列,大概就是维护一个 $Map[i][j]$ 的矩阵,然后 $Map[i][j]$ 表示第 $i$ 根柱子的高度是否 ...

  4. ExtJS 获取浏览器宽度

    JS中代码: Ext.onReady(function() { var width=window.screen.availWidth; var height=window.screen.availHe ...

  5. Cloud Test 单页面即时监测功能上线!

    什么是即时监测? 即时监测,顾名思义是指输入 URL 后能够立即进行监测并展示结果,无需注册. 如下图,在输入框内输入需要监测的 URL,点击免费监测,即可展示网页监测结果: 图中我们可以看到页面各个 ...

  6. Cannot generate SSPI context---MS SQL ERROR

    http://www.cnblogs.com/newr2006/archive/2011/08/25/2153253.html Additional error information from SQ ...

  7. [dp]Codeforces30C Shooting Gallery

    题目链接 题意: 给n个点 每个点的坐标 x y 出现的时间t 射中的概率 从i点到j点的时间为它们的距离. 求射中个数的最大期望 很水的dp  坑点就是要用LL #include <cstdi ...

  8. SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-006-处理表单数据(注册、显示用户资料)

    一.显示注册表单 1.访问资源 @Test public void shouldShowRegistration() throws Exception { SpitterRepository mock ...

  9. ANDROID_MARS学习笔记_S01原始版_011_XML

    一.代码 1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  10. QT4项目升级到QT5遇到的问题和解决方法

    QT4升级到QT5改动: PC部分: [改QTDIR变量] 在工程根目录下找到.user文件, 如InnoTabPlugin.vcxproj.user 修改指向你的QT5根目录: <Proper ...