POJ1700(过河问题)】的更多相关文章

POJ1700 题目链接:http://poj.org/problem?id=1700 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u   Description A group of N people wishes to go across a river with only one boat, which can at most carry two persons. Therefore…
#include<iostream> #include<algorithm> using namespace std; ]; int main() { int t,i; cin>>t; while(t--) { ; //每次f归0 cin>>n; ;i<=n;i++) cin>>a[i]; sort(a,a+n+); while(n) { ) { f+=a[]; break; } ) { f+=a[]; break; } ) { f+=a[…
题目链接:http://poj.org/problem?id=1700 解题报告: 1.贪心算法,每次过两个速度最慢的人,抵消那个较慢的人的时间. #include <stdio.h> #include <algorithm> using namespace std; ]; int main() { int t; scanf("%d",&t); while(t--) { int i; ; int n; scanf("%d",&…
题意: n个人过河, 船每次只能坐两个人, 然后船载每个人过河的所需时间不同, 问最快的过河时间. 思路: 仅仅启发一下思维: 我相信很多人一下子的想法就会有,每次最快和那些慢的过去,然后让最快一直来回,最后全部到对岸. 但是还有一种情况,我说说看,弱仅仅是想给大家一点思考,毕竟有意思. 你先让两个快的人从A过去至B,然后挑一个人回来至A,留下一个快的在B.OK,回来以后我让两个最慢的过去至B,然后让B那边的快的过来接A这边的快的.这样会不会节约一点啊. OK. 我们假设只有四个人,tf(the…
题目链接: https://vjudge.net/problem/POJ-1700 题目大意: 有N个人要渡河,但是只有一艘船,船上每次最多只能载两个人,渡河的速度由两个人中较慢的那个决定,小船来回载人直到所有人都渡河,求最短的渡河时间. 思路: 假设有速度最快的人a.速度次快的人b,速度最慢的人c,速度次慢的人d,把c和d送到终点考虑两种策略: 1. a和b出发,a回来,c和d出发,b回来 2. a和c出发,a回来,a和d出发,a回来 只需要比较这两种策略的快慢,每次选择较快的策略,当起点的人…
过桥问题: 黑夜,只有一只手电筒 A过桥需要1s B过桥需要3s C过桥需要5s D过桥需要8s E过桥需要12s 求最小过桥时间 贪心算法: 从最大的开始过去,最小的两个做为辅助. 假如左岸人数为2:两个人直接过去,不需要回来,代价 假如左岸人数为3:由辅助,代价 假如左岸人数大于3:将左岸最大两个人送到右岸,可以有两种方案:   image.png 综上,此时 tips: 记得每次j-2. 代码如下: package my; import java.util.Arrays; import j…
A frog is crossing a river. The river is divided into x units and at each unit there may or may not exist a stone. The frog can jump on a stone, but it must not jump into the water. Given a list of stones' positions (in units) in sorted ascending ord…
[codevs1105][COJ0183][NOIP2005]过河 试题描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,--,L(其中L是桥的长度).坐标为0的点表示桥的起点,坐标为L的点表示桥的终点.青蛙从桥的起点开始,不停的向终点方向跳跃.一次跳跃的距离是S到T之间的任意正整数(包括S,T).当青蛙跳到或跳过坐标为L的点时…
前段时间人工智能的课介绍到A*算法,于是便去了解了一下,然后试着用这个算法去解决经典的八数码问题,一开始写用了挺久时间的,后来试着把算法的框架抽离出来,编写成一个通用的算法模板,这样子如果以后需要用到A*算法的话就可以利用这个模板进行快速开发了(对于刷OJ的题当然不适合,不过可以适用于平时写一些小游戏之类的东西). A*算法的原理就不过多介绍了,网上能找到一大堆,核心就是估价函数 g() 的定义,这个会直接影响搜索的速度,我在代码里使用 C++/Java 的多态性来编写业务无关的算法模板,用一个…
题目:一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远,每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米,如果为0,就会陷进去无法继续跳跃,河流一共N米宽,袋鼠初始位置就在第一个弹簧上面,要跳到最后一个弹簧之后就算过河了,给定每个弹簧的力量,求袋鼠最少需要多少跳能够到达对岸.如果无法到达输出-1: 输入:输入分两行,第一行是数组长度N,第二行是每一项的值,用空格分隔: 输…