今天在叉姐的群里找点题目做,这题目还是很好的:提意思如下

【有M个可以提供计算机网络的端口和N台计算机(计算机数量少于端口数),每个端口和计算机有一个坐标(一维的)!其中端口与计算机链接的距离 |x - y|。所求用最少的网线使每台计算机都可以链接网络。】

很容易想到网线不会交叉!所以对于折中形式就会想到  这个方程     (dp[i][j]    代表   第 i 台电脑 链接 到 前  j  个接口的最少花费)。

dp[i][j] = min( dp[i][j-1] , dp[i-1][j-1] + abs(a[i]-b[j])  );

可是  会看到    『M (1 ≤ M ≤ 100000), N (1 ≤ N ≤ 2000, N ≤ M)』  纳尼  这怎么破!时间&&内存   QAQ

好好观察下你的  【状态转移方程】 一个状态 i,只与 状态 i-1  有关 所以 数组就不用开成  dp[N][M]   相对应的

dp[2][M]   就 可以了!

同学不要着急 啊 !  时间仔细 想想 时间也是可以优化的!!!

对于 M很大 而  N  却 不多的数据 上面的 会很 慢,毕竟 有点暴力! 怎们 优化 呢! 对于 这样的连线问题 当然 越近越好。如果你已经有了答案就不要看了取写吧 !   (自己想到的才是最好的)。

对于每一个电脑的位置最好用lower_bound() 找到那个位置 !一般这个位置对于 单个计算机而言 是最近的距离,

但是当计算多了起来时就不一定是我们要的那个端口了,但是在 【P-N,P+N】 区间内一个接口对于这太计算机是最优的选择!

好好想!只要处理出 这一部分的dp 值  就可以了!

只要记录下上一个状态的的起点和终点就可以了

主要的代码就是祥下面的一样(这里面的 m,n和题目意思里面的不一样)。

    p=lower_bound(a,a+n,b[0])-a;
int sta=0;
int s1=0,e1=m-1,s2,e2;
for(i=0; i<m; i++)
{
int tmp=sta^1;
for(; pp<n&&a[p]<b[i]; ++p);
s2=max(i,pp-m);
e2=min(n,pp+m);
dp[tmp][s2-1]=INF;
for(j=s2; j<=e2; ++j)
{
if( j<=e1 )
dp[tmp][j]=min(dp[tmp][j-1],dp[sta][j-1]+abs(a[j]-b[i]));
else
dp[tmp][j]=min(dp[tmp][j-1],dp[sta][e1]+ abs(a[j]-b[i]));
}
e1=e2;
s1=s2;
sta=tmp;
}

  

poj 3375 Network Connection的更多相关文章

  1. ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法

    题目连接:problemId=542" target="_blank">ZOJ 1542 POJ 1861 Network 网络 Network Time Limi ...

  2. POJ 1236 Network of Schools(强连通 Tarjan+缩点)

    POJ 1236 Network of Schools(强连通 Tarjan+缩点) ACM 题目地址:POJ 1236 题意:  给定一张有向图,问最少选择几个点能遍历全图,以及最少加入�几条边使得 ...

  3. POJ 1236 Network of Schools(强连通分量)

    POJ 1236 Network of Schools 题目链接 题意:题意本质上就是,给定一个有向图,问两个问题 1.从哪几个顶点出发,能走全全部点 2.最少连几条边,使得图强连通 思路: #inc ...

  4. RobotFramework自动化测试框架-移动手机自动化测试Get Network Connection Status和Set Network Connection Status关键字的使用

    Get Network Connection Status关键字用来获取手机的网络连接状态.在获取到连接状态后,会返回不同的数字. Set Network Connection Status关键字用来 ...

  5. This network connection does not exist

    This network connection does not exist 在windows server 2008上面map了一个磁盘,共享的folder被我停止共享后,点击该磁盘的disconn ...

  6. 初次使用git就遭遇不测,提示没有这个服务连接和需要配置git的一个http参数 NO network connection,SSl host could not be verified ...

    第一次使用git 拉取服务上的项目到本地,结果,在拿到访问的url地址后,输入用户名密码,失败了. --eclispe  4.5.3 继承了git客户端插件的版本 ------下一步后,报错 NO n ...

  7. Learning Experience of Big Data:The First Day-Try to set up a network connection on my virtural machine

    After we install our virtual machine,the first thing we should do is to set up a network connection ...

  8. Network Connection Lost When Windows 8 Goes To Sleep

    http://www.kapilarya.com/fix-network-connection-lost-when-windows-8-goes-to-sleep http://superuser.c ...

  9. The network connection was lost 文件下载错误提示

    假设出现这种错误,可能是模拟器断网,重新启动下模拟器就能够:The network connection was lost

随机推荐

  1. 简单的三方登录SDK示例,Android Activity之间数据的传递

    先建立Library工程,即普通工程然后在Android的属性勾选Library选项. 这里建立的工程为 mySdk ,Activity名为LoginActivity. LoginActivity代码 ...

  2. [Ext JS 4] Extjs 它 initComponent 和 constructor差分

    initComponent 和 constructor是什么 Extjs 提供的组件还是挺丰富的, 可是有时候需求更丰富. 当Extjs 原生的组件无法实现我们的要求的时候, 就须要扩展Extjs 的 ...

  3. 持续集成环境Jenkins的搭建和使用

    这几天试着搭了个持续集成环境,我使用的是Jenkins,它的前身是Hadson,由于被Oracle收购了,所以换个名字继续开源,这个有点像MySQL. 持续集成总是跟敏捷开发什么的搞在一起,显得非常高 ...

  4. Ajaxterm

    Index of /software/ajaxterm Ajaxterm Since Mon Feb 28 03:22:42 CET 2011, hosted here: github.com/ant ...

  5. ORA-12520错误解决一则

    问题描写叙述: 今天突然发现连接数据库时报错,用pl/sql dev连接数据时,有时能连接上,有时连接时报: ORA-12520: TNS: 监听程序无法找到须要的server类型的可用句柄 通过se ...

  6. Kubernetes初步

    Kubernetes是Google开源的容器集群管理系统.它构建于docker技术之上.为容器化的应用提供资源调度.部署执行.服务发现.扩容缩容等整一套功能.本质上可看作是基于容器技术的mini-Pa ...

  7. Java调用IIS发布的WebService

    之前的一篇博客说了一个实例,就是用VS2005在IIS上发布WebService.今天我们来实现在Eclipse上用Java来调用昨天发布的WebService. 首先咋在浏览器中输入http://1 ...

  8. 恢复gvim的ctl+v可视模式设置

    set nocompatiblesource $VIMRUNTIME/vimrc_example.vim"source $VIMRUNTIME/mswin.vim (注释此行)behave ...

  9. 本地或者服务器同时启动2个或多个tomcat

    一,修改配置文件server.xml的端口 C:\apache-tomcat-5.5.23-1\conf\server.xml用记事本什么的打开修改3个地方   第一: <Server port ...

  10. hdu 4472 Count (2012 ACM-ICPC 成都现场赛)

    递推,考虑到一n可以由i * j + 1组合出来,即第二层有j个含有i个元素的子树...然后就可以了.. #include<algorithm> #include<iostream& ...