曾经遇到过类似的。纪念一下!这题同一时候也是  ZOJ1877。经典的过桥问题 是有个博客解说的非常好的

戳这里

挺久曾经。遇到过一个基本一样的,那个题目仅仅要求求出 最短时间就可以,如今还有过桥的过程 也要输出来,一样的

近期也遇到过一个 类似的过河的,只是题意类似,是DP的,  记得是 CF295C

还记得当初做那道题目 钻入牛角,首先1个人2个人3个人肯定不用说了,当人数大于4的时候,那时候 我想出的贪心策略是 最快的 带最慢的过去。然后回来。再带最慢的过去。当时WA到死。那题案例出的也好。后来发现 事实上另一种贪心策略在某种情况下 比这个好,就是 最快 次快的过去,然后最快的回来。然后最慢次慢的过去,然后次快的再回来。这两个情况没有绝对的谁优。所以 每次都比較一下。这样题目就简单多了,草稿纸一些 两种方法的计算方式就出来了

如果最快a,次快b。次慢c,最慢d

那么 第一种 d + a + c + a

另外一种 b + a + d + b

非常快就做出来了

int n;

int nnum[1000 + 55];

void init() {
memset(nnum,0,sizeof(nnum));
} bool input() {
while(cin>>n) {
for(int i=0;i<n;i++)cin>>nnum[i];
return false;
}
return true;
} void solve() { } void cal() {
sort(nnum,nnum + n);
if(n == 1) {
cout<<nnum[0]<<endl;
cout<<nnum[0]<<endl;
return ;
}
int pos = n - 1;
int ans = 0;
while(true) {
if(pos <= 2)break;
ans += min(nnum[0] * 2 + nnum[pos] + nnum[pos - 1],nnum[1] * 2 + nnum[0] + nnum[pos]);
pos -= 2;
}
if(pos == 2)ans += nnum[0] + nnum[1] + nnum[2];
else ans += nnum[1];
cout<<ans<<endl;
pos = n - 1;
while(true) {
if(pos <= 2)break;
if(nnum[0] * 2 + nnum[pos] + nnum[pos - 1] < nnum[1] * 2 + nnum[0] + nnum[pos]) {
cout<<nnum[0]<<" "<<nnum[pos]<<endl;
cout<<nnum[0]<<endl;
cout<<nnum[0]<<" "<<nnum[pos - 1]<<endl;
cout<<nnum[0]<<endl;
}
else {
cout<<nnum[0]<<" "<<nnum[1]<<endl;
cout<<nnum[0]<<endl;
cout<<nnum[pos - 1]<<" "<<nnum[pos]<<endl;
cout<<nnum[1]<<endl;
}
pos -= 2;
}
if(pos == 2) {
cout<<nnum[0]<<" "<<nnum[2]<<endl;
cout<<nnum[0]<<endl;
cout<<nnum[0]<<" "<<nnum[1]<<endl;
}
else cout<<nnum[0]<<" "<<nnum[1]<<endl;
} void output() { } int main() {
while(true) {
init();
if(input())return 0;
cal();
output();
}
return 0;
}

POJ2573 Bridge 经典的过桥问题的更多相关文章

  1. 140个google面试题

    某猎头收集了140多个Google的面试题,主要是下面这些职位的. Product Marketing Manager Product Manager Software Engineer Softwa ...

  2. (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

    http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...

  3. 算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  4. IDDD 实现领域驱动设计-架构之经典分层

    上一篇:<IDDD 实现领域驱动设计-上下文映射图及其相关概念> 在<实现领域驱动设计>书中,分层的概念作者讲述的很少,也就几页的内容,但对于我来说,有很多的感触需要诉说.之前 ...

  5. 【BZOJ-2095】Bridge 最大流 + 混合图欧拉回路 + 二分

    2095: [Poi2010]Bridges Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 604  Solved: 218[Submit][Stat ...

  6. Abstract Server模式,Adapter模式和Bridge模式

    简易的台灯 Abstract Server模式 谁拥有接口. 接口属于它的客户,而不是它的派生类. 接口和客户之间的逻辑关系,强于接口和其派生类的逻辑关系. 逻辑关系和实体关系的强度是不一致的.在实体 ...

  7. GoF的23个经典设计模式

    以文本和思维导图的方式简明扼要的介绍了GoF的23个经典设计模式,可当成学习设计模式的一个小手册,偶尔看一下,说不定会对大师的思想精髓有新的领悟. GoF(“四人帮”,又称Gang of Four,即 ...

  8. Bridge实现

    网桥原理: 传统的中继器,如HUB,是一个单纯的物理层设备,它将每一个收到的数据包,在其所有的端口上广播,由接收主机来判断这个数据包是否是给自己的. 这样,网络资源被极大的浪费掉了. 网桥之所以不同于 ...

  9. 23个经典JDK设计模式(转)

    下面是JDK中有关23个经典设计模式的示例: Structural(结构模式) Adapter: 把一个接口或是类变成另外一种. o    ● java.util.Arrays#asList() o  ...

随机推荐

  1. Bug的分类和管理流程

    1.按照严重程度划分 定义:是指Bug对软件质量的破坏程度,即BUG的存在将对软件的功能和性能产生怎样的影响 分类:系统崩溃.严重.一般.次要.建议 2.按优先级划分 定义:表示处理和修正软件缺陷的现 ...

  2. Vsphere中ESXi主机ssh开启的三种方法

    ESXi 5.5是直接安装在物理主机上的一个虚拟机系统,本质上是一个Linux系统. 平时可以通过VMware Client端或者VMware vCenter进行管理,但对于一些特殊的VMware命令 ...

  3. vue与node和npm关系

    (1)node功能 准确的说是使用vue-cli 脚手架搭建项目的时候需要nodejs.也可以用script标签引入vue.min.js这样的,在js里实例化vue也行. 使用node有几件事,打包部 ...

  4. Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线。

    Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线.

  5. JS模块之AMD, CMD, CommonJS、UMD和ES6模块

    CommonJS 传送门 同步加载,适合服务器开发,node实现了commonJS.module.exports和require 判断commonJS环境的方式是(参考jquery源码): if ( ...

  6. mysql 建表规范

    常用字段 CREATE TABLE `che`.`<table_name>` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '索引id', ...

  7. python基础知识09-继承,多继承和魔术方法

    1.继承 class Father: def init(self,age,sex): self.age = age self.sex = sex class Son(Father): 类名后面写括号, ...

  8. 【BZOJ 3289】 Mato的文件管理(离线算法莫队)

    Description Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一个编号.为了防止他人偷拷,这些资料都是加密过的,只能用Mato自己写的程序才能 ...

  9. 【HDU 6005】Pandaland(Dijkstra)

    Problem Description Mr. Panda lives in Pandaland. There are many cities in Pandaland. Each city can ...

  10. laravel(4.2) +Zizaco

    操作步骤:https://github.com/Zizaco/entrust/tree/1.0 这篇博客说的蛮详细的:http://blog.boolw.com/?p=241 简化后的步骤 1.在根项 ...