- 贪心算法(一)
cjavacjavacjava
算法POJ贪心
1、poj1700过河问题先排序,然后假设数据为t1t2t3t4t5t6t7t8,只会有两种方式:方式一:最快的两个作为划回的船,两个来回运走两个最慢的,好处是最慢的和次慢的组合消除掉次慢的时间,坏处是往回划的有一半是次快的。时间:t1+2*t2+t8方式二:只有最快的作为划回的船,两个来回运走两个最慢的,好处是往回划的时间是最优的,坏处是往对岸划的次慢的时间也走了。时间:2*t1+t7+t8综合
- poj1700
吹进风里
编程题目
题目描述:一群人过河,过河时间由最慢的人决定,只有一艘船贪心+动态规划dp[i]=min(dp[i-1]+a[0]+a[i],dp[i-2]+a[0]+a[1]*2+a[i])#include#includeusingnamespacestd;inta[1005],dp[1005];intmain(intargc,char**argv){intt,n;cin>>t;while(t--){cin>>
- poj1700(贪心)
刘荣浩
贪心
题目:CrossingRiverTimeLimit:1000MSMemoryLimit:10000KTotalSubmissions:13429Accepted:5129DescriptionAgroupofNpeoplewishestogoacrossariverwithonlyoneboat,whichcanatmostcarrytwopersons.Thereforesomesortofsh
- 【POJ1700】Crossing River 贪心,附贪心问题的一系列详细解析
空灰冰魂
贪心
题意:一群人过河,船每次只能装两人,每次过河时间为两人权值较大的那个。题解:这种题的贪心策略往往不是很好想,这个时候我们就需要依照尽量逼近正解的思路,进行多种贪心,在每种贪心都保证正确的前提下,取多个答案的最值,这样往往就是正解,而即便可以卡,数据也很难出,并不是写个rand+debug拍上两个小时就能拍出来的。而这种多线程贪心可以有两种:一、单独做每种,然后取最优。二、每一步转移都用多种贪心取得
- POJ 1700
vanadia
POJ1700题意n个人要过河,一次只能同时两个人过河,两个人过河的时间取决于慢的一个。求最快的过河的时间思路先对过河速度进行升序排序。然后分两种情况:最快的和最慢的先过去,然后由最快的一个人划回来,再由最快的次慢的,再由最快的划回来.最快的和次快的先划过去,然后由最快的先划回来,再由最慢的和次慢的过去,最后由次快的划回来。通过两种情况把最慢的和次慢的都送过河里,最快的和次快的都没过河。然后开始下
- POJ 1700
vanadia
POJ1700题意n个人要过河,一次只能同时两个人过河,两个人过河的时间取决于慢的一个。求最快的过河的时间思路先对过河速度进行升序排序。然后分两种情况:最快的和最慢的先过去,然后由最快的一个人划回来,再由最快的次慢的,再由最快的划回来.最快的和次快的先划过去,然后由最快的先划回来,再由最慢的和次慢的过去,最后由次快的划回来。通过两种情况把最慢的和次慢的都送过河里,最快的和次快的都没过河。然后开始下
- poj1700过河问题(贪心)
keepcoral
贪心
CrossingRiverTimeLimit:1000MSMemoryLimit:10000KTotalSubmissions:10871Accepted:4097DescriptionAgroupofNpeoplewishestogoacrossariverwithonlyoneboat,whichcanatmostcarrytwopersons.Thereforesomesortofshutt
- 小船过河问题
鼬_神
/*小船过河问题POJ1700是一道经典的贪心算法例题。题目大意是只有一艘船,能乘2人,船的运行速度为2人中较慢一人的速度,过去后还需一个人把船划回来,问把n个人运到对岸,最少需要多久。先将所有人过河所需的时间按照升序排序,我们考虑把单独过河所需要时间最多的两个旅行者送到对岸去,有两种方式:1.最快的和次快的过河,然后最快的将船划回来;次慢的和最慢的过河,然后次快的将船划回来,所需时间为:t[0]
- POJ1700 Crossing River(贪心算法训练)
热爱改名阿呆呆
算法
TimeLimit:1000MSMemoryLimit:10000KTotalSubmissions:13301Accepted:5087DescriptionAgroupofNpeoplewishestogoacrossariverwithonlyoneboat,whichcanatmostcarrytwopersons.Thereforesomesortofshuttlearrangement
- POJ1700 Crossing River
tigerisland45
ICPCriver过河crossing
问题链接:POJ1700。这个问题适合于用贪心法来解决,所以需要对输入的数据事先进行排序。同时还需要考虑特例情况,数据个数小于3的时候,需要特殊处理;数据个数大于3的时候,需要统一处理。假设人数为n,总的过河时间为:n=1时,那个人的过河时间;n=2时,两人中最长的过河时间;n=3时,总时间是三人过河时间之和。过河时间最短的人,先送一个过河,再回去和另外一个一起过河。n>=4时,由过河时间最短的人
- poj1700 贪心算法
charles1e
算法poj
/*poj1700贪心算法问题描述:有n个人要过河,船每次只能两个人,问最短的过河时间。解题思路:======1======t[1]+t[0]+t[i]+t[1]1、让最快和次快先过去,最快的回来2、让最慢的和次慢的一起走,然后次快的回来3、下一次循序。=======2======t[i]+t[0]+t[i-1]+t[0]1、最快的和最慢先过,最快回2、最快和最先过,最快回。*/
#includ
- POJ1700
FlushHip
Problem:CrossingRiverDescription:N个人过河,只有一条船。船到了对岸得有人把船划回来。一条船最多坐两个人,过河的时间以慢的为准,问最少需要多少时间才能把所有的人都送到对岸。Solution:贪心,首先想到的贪心是,时间多的人要带时间次多的人过河,这个很简单想,于是我们要先对时间进行排序。然后就是痛苦的开始了。我开始想着划船肯定要用时间最少的人来划船,于是一直过不了样
- poj1700 poj2573 经典贪心
Summer__show_
412510答案:17 顺序是:1、2去,1回;5、10去;2回;1、2去。1)如果N=1、2,所有人直接过桥。2)如果N=3,由最快的人往返一次把其他两人送过河。3)如果N≥4,设A、B为走得最快和次快的旅行者,过桥所需时间分别为a、b;而Z、Y为走得最慢和次慢的旅行者,过桥所需时间分别为z、y。那么当2b>a+y时,使用模式一将Z和Y移动过桥;当2b<a+y时,使用模式二将Z和Y移动过桥;当2
- poj1700 Crossing River
d_x_d
水
CrossingRiverTimeLimit: 1000MSMemoryLimit: 10000KTotalSubmissions: 12585Accepted: 4787DescriptionAgroupofNpeoplewishestogoacrossariverwithonlyoneboat,whichcanatmostcarrytwopersons.Thereforesomesortofs
- poj1700
poj
此题讲的是N个人过河,每个人都有自己的过河时间,一条船只能承受2个人,所用时间为其中过河时间最多的,所以呢,想到有两种情况,第一种:过河时间最少的人来回接送其他人,第二种:过河时间最少和次少的人来回接送其他人,刚开始就觉得第一种时间必然是最少的,但是仔细想想,不然。因为第一种情况虽然单次过河时间少,但送人的次数要多,如第1个人(过河时间最少)接送第i人 dp[i]=dp[i-1]+time[0]+
- Crossing River poj1700贪心
poj
题目描述:N个人过河,只有一只船,最多只能有两人划船,每个人划船速度不同,船速为最慢的人的速度。输入T为case个数,每个case输入N为人数,接下来一行输入的是每个人过河的时间,都不相同。要求输出N个人全部过河的时间
算法思想:采用贪心的方法。有两种划船的方法,一种是最快+最慢,最快回,最快+次慢,最快回,循环下去;第二种是最快+次快,次快回,最慢+次慢,最快回,循环下去。那么当剩余人数N&g
- poj1700
poj
题意:只有一艘船,能乘2人,船的运行速度为2人中较慢一人的速度,过去后还需一个人把船划回来,问把n个人运到对岸,最少需要多久。
分析:我们设最快的为a,次快的为b,最慢的为z,次慢的为y。
我们先考虑如何将y,z运到对岸,可以ab,a,yz,b,也可以ay,a,az,a。
运送z不可能影响此4人之外的人,因为船只能乘2人,z要带也是带次慢的。
那如果是单运z,然后x和y一起运呢?这种情况是
- POJ1700 经典过河问题(贪心)
poj
题意是N个人过河,船每次只能坐两个人,船载每个人过河的所需时间不同,问最快的过河时间。
解题思路:当n=1,2,3时所需要的最小时间很容易求得,现在由n>=4,假设n个人单独过河所需要的时间存储在数组t中,将数组t按升序排序,那么 这时将单独过河所需要时间最多的两个旅行者送到对岸去,有两种方式: 1> 最快的(即
- poj1700(黑书第二道贪心例题)
poj
题意:有n个人想要过河,但是船只有一条,而且每次只能载两个人,给出n个人过河的时间,两个人一起过河的话,按照花时最多的计算,求所有人都过河所花的最少时间。
思路:一开始我是想,直接用过河时间最少的那个人每次载一个到对面,然后再回来载剩下的,仔细想想,这样不对。然后思考后发现有两种过河策略:
1、用过河时间最少的那个人每次载一个到对面,然后再回来载剩下的;2、用(花时)最少的和次少的循环载人,先
- POJ1700(过河问题)
poj
#include<iostream>
#include<algorithm>
using namespace std;
int n,a[1006];
int main()
{
int t,i;
cin>>t;
while(t--)
{
int f=0;
//每次f归0
- POJ1700:Crossing River(过河问题)
poj
POJ1700
题目链接:http://poj.org/problem?id=1700
Time Limit:1000MS
Memory Limit:10000KB
- poj1700
poj
题目大意: 过河 有N个人想要过河,但是只有一条船,它最多只能携带两个人,因此必须安排有人回来以便让所有的人都过河(要是有人不会来剩下的人就没有船可以过河了),每个人都有不同的划船速度,两个人的划船速度由慢的那个决定,你的工作就是安排怎么使用最少的时间过河。 题目分析: 可以看出来不可能每次都让速度最快的划船,那样太浪费时间,应该让两个速度差别不多的去划船,然后让速度比较快的
- POJ1700:Crossing River
libin56842
poj
DescriptionAgroupofNpeoplewishestogoacrossariverwithonlyoneboat,whichcanatmostcarrytwopersons.Thereforesomesortofshuttlearrangementmustbearrangedinordertorowtheboatbackandforthsothatallpeoplemaycross.
- poj1700
xuezhongfenfei
题意是让n个人过河然后通过的时间最短,而且只有一条船,所以过完河的人还要有一个人将船划会对岸,最开始想到的是让时间最短额人依次配每个人个过河,但是这不是最简单的,因为我们可以设想让时间最长的人和次长的人过河,而让时间最短和次短的人当作不断划船的人。但是,这里涉及了一个比较,就是是让时间最短的人依次配他们过的时间最短还是才用第二种方法,所以这里涉及到一个判断的,代码如下:#include#inclu
- POJ1700 Crossing River 过河问题
Sinchb
IntegerinputeachGooutput
一、题目信息CrossingRiverTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 8897 Accepted: 3323DescriptionAgroupofNpeoplewishestogoacrossariverwithonlyoneboat,whichcanatmostcarrytwopersons.Thereforesome
- poj1700
mtawaken
很自然想到贪心,一种思路是由于必须有人把船开回来,尽量把这个时间缩短,因此总是让最快的陪同最慢的过去,然后最快的驾船回来。但是这样每个比最快的慢的时间都要算进去。于是想到可以让最慢的和次慢的一起走,这样虽然消耗了最慢的时间,但是不用再消耗次慢的时间。这样必须有人把船开回来,而且绝不能是次慢的这个,因此可以先让最快次快的去一次,让最快的回来,次快的留下预备用。这样相当于每次运最慢的之前首先进行一次预
- Crossing River POJ1700
tiantangrenjian
IntegerinputeachGooutput
CrossingRiverTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 7873 Accepted: 2879DescriptionAgroupofNpeoplewishestogoacrossariverwithonlyoneboat,whichcanatmostcarrytwopersons.Thereforesomesortof
- POJ1700 Crossing River DP
Human_CK
ProblemAddress:http://poj.org/problem?id=1700【思路】dp是O(n)的复杂度。从后往前推,对于每一个人,可以单独一个人过去(此时需要用耗时最小的那个人一起过去,之后那个人自己回来),或者和前一个人一起过去(此时需要耗时最小的两个人一起过去,然后最小那个过来,然后预定好的两个人过去,之后第二小的那个人过来),取其小者。dp[i]=min(dp[i+1]+n
- 过河问题
东方快翔
职场休闲POJ1700过河问题
POJ1700 CrossRiver,一道贪心题,合理选择贪心策略:http://poj.org/problem?id=1700#include#include#include#includeusingnamespacestd;intmain(){ intiCase;cin>>iCase; while(iCase--){ intn;cin>>n; vectorst; for(in
- linux系统服务器下jsp传参数乱码
3213213333332132
javajsplinuxwindowsxml
在一次解决乱码问题中, 发现jsp在windows下用js原生的方法进行编码没有问题,但是到了linux下就有问题, escape,encodeURI,encodeURIComponent等都解决不了问题
但是我想了下既然原生的方法不行,我用el标签的方式对中文参数进行加密解密总该可以吧。于是用了java的java.net.URLDecoder,结果还是乱码,最后在绝望之际,用了下面的方法解决了
- Spring 注解区别以及应用
BlueSkator
spring
1. @Autowired
@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean,或者不存在UserDao类型的bean,会抛出 BeanCreationException异常,这时可以通过在该属性上再加一个@Qualifier注解来声明唯一的id解决问题。
2. @Qualifier
当spring中存在至少一个匹
- printf和sprintf的应用
dcj3sjt126com
PHPsprintfprintf
<?php
printf('b: %b <br>c: %c <br>d: %d <bf>f: %f', 80,80, 80, 80);
echo '<br />';
printf('%0.2f <br>%+d <br>%0.2f <br>', 8, 8, 1235.456);
printf('th
- config.getInitParameter
171815164
parameter
web.xml
<servlet>
<servlet-name>servlet1</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>str</param-name>
- Ant标签详解--基础操作
g21121
ant
Ant的一些核心概念:
build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml。 project:每个构建文
- [简单]代码片段_数据合并
53873039oycg
代码
合并规则:删除家长phone为空的记录,若一个家长对应多个孩子,保留一条家长记录,家长id修改为phone,对应关系也要修改。
代码如下:
- java 通信技术
云端月影
Java 远程通信技术
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来
- string与StringBuilder 性能差距到底有多大
aijuans
之前也看过一些对string与StringBuilder的性能分析,总感觉这个应该对整体性能不会产生多大的影响,所以就一直没有关注这块!
由于学程序初期最先接触的string拼接,所以就一直没改变过自己的习惯!
- 今天碰到 java.util.ConcurrentModificationException 异常
antonyup_2006
java多线程工作IBM
今天改bug,其中有个实现是要对map进行循环,然后有删除操作,代码如下:
Iterator<ListItem> iter = ItemMap.keySet.iterator();
while(iter.hasNext()){
ListItem it = iter.next();
//...一些逻辑操作
ItemMap.remove(it);
}
结果运行报Con
- PL/SQL的类型和JDBC操作数据库
百合不是茶
PL/SQL表标量类型游标PL/SQL记录
PL/SQL的标量类型:
字符,数字,时间,布尔,%type五中类型的
--标量:数据库中预定义类型的变量
--定义一个变长字符串
v_ename varchar2(10);
--定义一个小数,范围 -9999.99~9999.99
v_sal number(6,2);
--定义一个小数并给一个初始值为5.4 :=是pl/sql的赋值号
- Mockito:一个强大的用于 Java 开发的模拟测试框架实例
bijian1013
mockito单元测试
Mockito框架:
Mockito是一个基于MIT协议的开源java测试框架。 Mockito区别于其他模拟框架的地方主要是允许开发者在没有建立“预期”时验证被测系统的行为。对于mock对象的一个评价是测试系统的测
- 精通Oracle10编程SQL(10)处理例外
bijian1013
oracle数据库plsql
/*
*处理例外
*/
--例外简介
--处理例外-传递例外
declare
v_ename emp.ename%TYPE;
begin
SELECT ename INTO v_ename FROM emp
where empno=&no;
dbms_output.put_line('雇员名:'||v_ename);
exceptio
- 【Java】Java执行远程机器上Linux命令
bit1129
linux命令
Java使用ethz通过ssh2执行远程机器Linux上命令,
封装定义Linux机器的环境信息
package com.tom;
import java.io.File;
public class Env {
private String hostaddr; //Linux机器的IP地址
private Integer po
- java通信之Socket通信基础
白糖_
javasocket网络协议
正处于网络环境下的两个程序,它们之间通过一个交互的连接来实现数据通信。每一个连接的通信端叫做一个Socket。一个完整的Socket通信程序应该包含以下几个步骤:
①创建Socket;
②打开连接到Socket的输入输出流;
④按照一定的协议对Socket进行读写操作;
④关闭Socket。
Socket通信分两部分:服务器端和客户端。服务器端必须优先启动,然后等待soc
- angular.bind
boyitech
AngularJSangular.bindAngularJS APIbind
angular.bind 描述: 上下文,函数以及参数动态绑定,返回值为绑定之后的函数. 其中args是可选的动态参数,self在fn中使用this调用。 使用方法: angular.bind(se
- java-13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class KickOutBadGuys {
/**
* 题目:13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
* Maybe you can find out
- Redis.conf配置文件及相关项说明(自查备用)
Kai_Ge
redis
Redis.conf配置文件及相关项说明
# Redis configuration file example
# Note on units: when memory size is needed, it is possible to specifiy
# it in the usual form of 1k 5GB 4M and so forth:
#
- [强人工智能]实现大规模拓扑分析是实现强人工智能的前奏
comsci
人工智能
真不好意思,各位朋友...博客再次更新...
节点数量太少,网络的分析和处理能力肯定不足,在面对机器人控制的需求方面,显得力不从心....
但是,节点数太多,对拓扑数据处理的要求又很高,设计目标也很高,实现起来难度颇大...
- 记录一些常用的函数
dai_lm
java
public static String convertInputStreamToString(InputStream is) {
StringBuilder result = new StringBuilder();
if (is != null)
try {
InputStreamReader inputReader = new InputStreamRead
- Hadoop中小规模集群的并行计算缺陷
datamachine
mapreducehadoop并行计算
注:写这篇文章的初衷是因为Hadoop炒得有点太热,很多用户现有数据规模并不适用于Hadoop,但迫于扩容压力和去IOE(Hadoop的廉价扩展的确非常有吸引力)而尝试。尝试永远是件正确的事儿,但有时候不用太突进,可以调优或调需求,发挥现有系统的最大效用为上策。
-----------------------------------------------------------------
- 小学4年级英语单词背诵第二课
dcj3sjt126com
englishword
egg 蛋
twenty 二十
any 任何
well 健康的,好
twelve 十二
farm 农场
every 每一个
back 向后,回
fast 快速的
whose 谁的
much 许多
flower 花
watch 手表
very 非常,很
sport 运动
Chinese 中国的
- 自己实践了github的webhooks, linux上面的权限需要注意
dcj3sjt126com
githubwebhook
环境, 阿里云服务器
1. 本地创建项目, push到github服务器上面
2. 生成www用户的密钥
sudo -u www ssh-keygen -t rsa -C "
[email protected]"
3. 将密钥添加到github帐号的SSH_KEYS里面
3. 用www用户执行克隆, 源使
- Java冒泡排序
蕃薯耀
冒泡排序Java冒泡排序Java排序
冒泡排序
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月23日 10:40:14 星期二
http://fanshuyao.iteye.com/
- Excle读取数据转换为实体List【基于apache-poi】
hanqunfeng
apache
1.依赖apache-poi
2.支持xls和xlsx
3.支持按属性名称绑定数据值
4.支持从指定行、列开始读取
5.支持同时读取多个sheet
6.具体使用方式参见org.cpframework.utils.excelreader.CP_ExcelReaderUtilTest.java
比如:
Str
- 3个处于草稿阶段的Javascript API介绍
jackyrong
JavaScript
原文:
http://www.sitepoint.com/3-new-javascript-apis-may-want-follow/?utm_source=html5weekly&utm_medium=email
本文中,介绍3个仍然处于草稿阶段,但应该值得关注的Javascript API.
1) Web Alarm API
&
- 6个创建Web应用程序的高效PHP框架
lampcy
Web框架PHP
以下是创建Web应用程序的PHP框架,有coder bay网站整理推荐:
1. CakePHP
CakePHP是一个PHP快速开发框架,它提供了一个用于开发、维护和部署应用程序的可扩展体系。CakePHP使用了众所周知的设计模式,如MVC和ORM,降低了开发成本,并减少了开发人员写代码的工作量。
2. CodeIgniter
CodeIgniter是一个非常小且功能强大的PHP框架,适合需
- 评"救市后中国股市新乱象泛起"谣言
nannan408
首先来看百度百家一位易姓作者的新闻:
三个多星期来股市持续暴跌,跌得投资者及上市公司都处于极度的恐慌和焦虑中,都要寻找自保及规避风险的方式。面对股市之危机,政府突然进入市场救市,希望以此来重建市场信心,以此来扭转股市持续暴跌的预期。而政府进入市场后,由于市场运作方式发生了巨大变化,投资者及上市公司为了自保及为了应对这种变化,中国股市新的乱象也自然产生。
首先,中国股市这两天
- 页面全屏遮罩的实现 方式
Rainbow702
htmlcss遮罩mask
之前做了一个页面,在点击了某个按钮之后,要求页面出现一个全屏遮罩,一开始使用了position:absolute来实现的。当时因为画面大小是固定的,不可以resize的,所以,没有发现问题。
最近用了同样的做法做了一个遮罩,但是画面是可以进行resize的,所以就发现了一个问题,当画面被reisze到浏览器出现了滚动条的时候,就发现,用absolute 的做法是有问题的。后来改成fixed定位就
- 关于angularjs的点滴
tntxia
AngularJS
angular是一个新兴的JS框架,和以往的框架不同的事,Angularjs更注重于js的建模,管理,同时也提供大量的组件帮助用户组建商业化程序,是一种值得研究的JS框架。
Angularjs使我们可以使用MVC的模式来写JS。Angularjs现在由谷歌来维护。
这里我们来简单的探讨一下它的应用。
首先使用Angularjs我
- Nutz--->>反复新建ioc容器的后果
xiaoxiao1992428
DAOmvcIOCnutz
问题:
public class DaoZ {
public static Dao dao() { // 每当需要使用dao的时候就取一次
Ioc ioc = new NutIoc(new JsonLoader("dao.js"));
return ioc.get(