- 贪心算法(一)
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
- Nginx负载均衡
510888780
nginx应用服务器
Nginx负载均衡一些基础知识:
nginx 的 upstream目前支持 4 种方式的分配
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比
- RedHat 6.4 安装 rabbitmq
bylijinnan
erlangrabbitmqredhat
在 linux 下安装软件就是折腾,首先是测试机不能上外网要找运维开通,开通后发现测试机的 yum 不能使用于是又要配置 yum 源,最后安装 rabbitmq 时也尝试了两种方法最后才安装成功
机器版本:
[root@redhat1 rabbitmq]# lsb_release
LSB Version: :base-4.0-amd64:base-4.0-noarch:core
- FilenameUtils工具类
eksliang
FilenameUtilscommon-io
转载请出自出处:http://eksliang.iteye.com/blog/2217081 一、概述
这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。
- xml文件解析SAX
不懂事的小屁孩
xml
xml文件解析:xml文件解析有四种方式,
1.DOM生成和解析XML文档(SAX是基于事件流的解析)
2.SAX生成和解析XML文档(基于XML文档树结构的解析)
3.DOM4J生成和解析XML文档
4.JDOM生成和解析XML
本文章用第一种方法进行解析,使用android常用的DefaultHandler
import org.xml.sax.Attributes;
- 通过定时任务执行mysql的定期删除和新建分区,此处是按日分区
酷的飞上天空
mysql
使用python脚本作为命令脚本,linux的定时任务来每天定时执行
#!/usr/bin/python
# -*- coding: utf8 -*-
import pymysql
import datetime
import calendar
#要分区的表
table_name = 'my_table'
#连接数据库的信息
host,user,passwd,db =
- 如何搭建数据湖架构?听听专家的意见
蓝儿唯美
架构
Edo Interactive在几年前遇到一个大问题:公司使用交易数据来帮助零售商和餐馆进行个性化促销,但其数据仓库没有足够时间去处理所有的信用卡和借记卡交易数据
“我们要花费27小时来处理每日的数据量,”Edo主管基础设施和信息系统的高级副总裁Tim Garnto说道:“所以在2013年,我们放弃了现有的基于PostgreSQL的关系型数据库系统,使用了Hadoop集群作为公司的数
- spring学习——控制反转与依赖注入
a-john
spring
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。
- 用spool+unixshell生成文本文件的方法
aijuans
xshell
例如我们把scott.dept表生成文本文件的语句写成dept.sql,内容如下:
set pages 50000;
set lines 200;
set trims on;
set heading off;
spool /oracle_backup/log/test/dept.lst;
select deptno||','||dname||','||loc
- 1、基础--名词解析(OOA/OOD/OOP)
asia007
学习基础知识
OOA:Object-Oriented Analysis(面向对象分析方法)
是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)
- 浅谈java转成json编码格式技术
百合不是茶
json编码java转成json编码
json编码;是一个轻量级的数据存储和传输的语言
在java中需要引入json相关的包,引包方式在工程的lib下就可以了
JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非
常适合于服务器与 JavaScript 之间的数据的交
- web.xml之Spring配置(基于Spring+Struts+Ibatis)
bijian1013
javaweb.xmlSSIspring配置
指定Spring配置文件位置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-dao-bean.xml,/WEB-INF/spring-resources.xml,
/WEB-INF/
- Installing SonarQube(Fail to download libraries from server)
sunjing
InstallSonar
1. Download and unzip the SonarQube distribution
2. Starting the Web Server
The default port is "9000" and the context path is "/". These values can be changed in &l
- 【MongoDB学习笔记十一】Mongo副本集基本的增删查
bit1129
mongodb
一、创建复本集
假设mongod,mongo已经配置在系统路径变量上,启动三个命令行窗口,分别执行如下命令:
mongod --port 27017 --dbpath data1 --replSet rs0
mongod --port 27018 --dbpath data2 --replSet rs0
mongod --port 27019 -
- Anychart图表系列二之执行Flash和HTML5渲染
白糖_
Flash
今天介绍Anychart的Flash和HTML5渲染功能
HTML5
Anychart从6.0第一个版本起,已经逐渐开始支持各种图的HTML5渲染效果了,也就是说即使你没有安装Flash插件,只要浏览器支持HTML5,也能看到Anychart的图形(不过这些是需要做一些配置的)。
这里要提醒下大家,Anychart6.0版本对HTML5的支持还不算很成熟,目前还处于
- Laravel版本更新异常4.2.8-> 4.2.9 Declaration of ... CompilerEngine ... should be compa
bozch
laravel
昨天在为了把laravel升级到最新的版本,突然之间就出现了如下错误:
ErrorException thrown with message "Declaration of Illuminate\View\Engines\CompilerEngine::handleViewException() should be compatible with Illuminate\View\Eng
- 编程之美-NIM游戏分析-石头总数为奇数时如何保证先动手者必胜
bylijinnan
编程之美
import java.util.Arrays;
import java.util.Random;
public class Nim {
/**编程之美 NIM游戏分析
问题:
有N块石头和两个玩家A和B,玩家A先将石头随机分成若干堆,然后按照BABA...的顺序不断轮流取石头,
能将剩下的石头一次取光的玩家获胜,每次取石头时,每个玩家只能从若干堆石头中任选一堆,
- lunce创建索引及简单查询
chengxuyuancsdn
查询创建索引lunce
import java.io.File;
import java.io.IOException;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Docume
- [IT与投资]坚持独立自主的研究核心技术
comsci
it
和别人合作开发某项产品....如果互相之间的技术水平不同,那么这种合作很难进行,一般都会成为强者控制弱者的方法和手段.....
所以弱者,在遇到技术难题的时候,最好不要一开始就去寻求强者的帮助,因为在我们这颗星球上,生物都有一种控制其
- flashback transaction闪回事务查询
daizj
oraclesql闪回事务
闪回事务查询有别于闪回查询的特点有以下3个:
(1)其正常工作不但需要利用撤销数据,还需要事先启用最小补充日志。
(2)返回的结果不是以前的“旧”数据,而是能够将当前数据修改为以前的样子的撤销SQL(Undo SQL)语句。
(3)集中地在名为flashback_transaction_query表上查询,而不是在各个表上通过“as of”或“vers
- Java I/O之FilenameFilter类列举出指定路径下某个扩展名的文件
游其是你
FilenameFilter
这是一个FilenameFilter类用法的例子,实现的列举出“c:\\folder“路径下所有以“.jpg”扩展名的文件。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
- C语言学习五函数,函数的前置声明以及如何在软件开发中合理的设计函数来解决实际问题
dcj3sjt126com
c
# include <stdio.h>
int f(void) //括号中的void表示该函数不能接受数据,int表示返回的类型为int类型
{
return 10; //向主调函数返回10
}
void g(void) //函数名前面的void表示该函数没有返回值
{
//return 10; //error 与第8行行首的void相矛盾
}
in
- 今天在测试环境使用yum安装,遇到一个问题: Error: Cannot retrieve metalink for repository: epel. Pl
dcj3sjt126com
centos
今天在测试环境使用yum安装,遇到一个问题:
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
处理很简单,修改文件“/etc/yum.repos.d/epel.repo”, 将baseurl的注释取消, mirrorlist注释掉。即可。
&n
- 单例模式
shuizhaosi888
单例模式
单例模式 懒汉式
public class RunMain {
/**
* 私有构造
*/
private RunMain() {
}
/**
* 内部类,用于占位,只有
*/
private static class SingletonRunMain {
priv
- Spring Security(09)——Filter
234390216
Spring Security
Filter
目录
1.1 Filter顺序
1.2 添加Filter到FilterChain
1.3 DelegatingFilterProxy
1.4 FilterChainProxy
1.5
- 公司项目NODEJS实践0.1
逐行分析JS源代码
mongodbnginxubuntunodejs
一、前言
前端如何独立用nodeJs实现一个简单的注册、登录功能,是不是只用nodejs+sql就可以了?其实是可以实现,但离实际应用还有距离,那要怎么做才是实际可用的。
网上有很多nod
- java.lang.Math
liuhaibo_ljf
javaMathlang
System.out.println(Math.PI);
System.out.println(Math.abs(1.2));
System.out.println(Math.abs(1.2));
System.out.println(Math.abs(1));
System.out.println(Math.abs(111111111));
System.out.println(Mat
- linux下时间同步
nonobaba
ntp
今天在linux下做hbase集群的时候,发现hmaster启动成功了,但是用hbase命令进入shell的时候报了一个错误 PleaseHoldException: Master is initializing,查看了日志,大致意思是说master和slave时间不同步,没办法,只好找一种手动同步一下,后来发现一共部署了10来台机器,手动同步偏差又比较大,所以还是从网上找现成的解决方
- ZooKeeper3.4.6的集群部署
roadrunners
zookeeper集群部署
ZooKeeper是Apache的一个开源项目,在分布式服务中应用比较广泛。它主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步、集群管理、配置文件管理、同步锁、队列等。这里主要讲集群中ZooKeeper的部署。
1、准备工作
我们准备3台机器做ZooKeeper集群,分别在3台机器上创建ZooKeeper需要的目录。
数据存储目录
- Java高效读取大文件
tomcat_oracle
java
读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法: Files.readLines(new File(path), Charsets.UTF_8); FileUtils.readLines(new File(path)); 这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致
- 微信支付api返回的xml转换为Map的方法
xu3508620
xmlmap微信api
举例如下:
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<appid><