poj1700

信息学奥赛第十节 —— 贪心算法(渡河问题POJ 1700 Crossing River + 拦截导弹的系统数量求解) 复习概念 贪心算法又叫贪婪算法,是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,贪心算法不从整体最优上加以考虑,它所做出的是在某种意义上的局部最优解。 无后效性:贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。 贪心算法使用的前提:局部最优解一定能导致全局最优解。 贪心算法的过程 建立数学模型来描述问题 把求解的问题分成若干个子问题 对每一子问题求解,得到子问题的局部最优解 把子问题的局 阅读详情
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>


using namespace std;


int main()
{
    int m;
    freopen("in.txt","r",stdin);
    cin>>m;
    while (m--)
    {
        int n,t[1005];
        cin>>n;
        memset(t,0,sizeof(t));
        for (int i=0;i<n;i++) cin>>t[i];
        sort(t,t+n);
        int i,sum=0;
        for (i=n-1;i>=3;i-=2)
        {
            int t1,t2;
            t1=t[1]+t[0]+t[i]+t[1];
            t2=t[i]+t[0]+t[i-1]+t[0];
            if (t1<t2) sum+=t1;else sum+=t2;
        }
        if (i==2) sum+=t[0]+t[1]+t[2];
        if (i==1) sum+=t[1];
        if (i==0) sum+=t[0];
        cout<<sum<<endl;
    }
    return 0;
}
/*题意:N个人过河,船每次只能坐两个人,船载每个人过河的所需时间不同,以最慢的为准,问最快的过河时间。


 解题思路:当n=1,2,3时所需要的最小时间很容易求得,
        现在由n>=4,假设n个人单独过河所需要的时间存储在数组t中,将数组t按升序排序,
        那么 这时将单独过河所需要时间最多的两个旅行者送到对岸去,有两种方式:
        1: 最快的(即所用时间t[0])和次快的过河,然后最快的将船划回来,再次慢的和最慢的过河,然后次快的将船划回来.
           即所需时间为:t[0]+2*t[1]+t[n-1]
        2:最快的和最慢的过河,然后最快的将船划回来,再最快的和次慢的过河,然后最快的将船划回来.
           即所需时间为:2*t[0]+t[n-2]+t[n-1]
        这样就将过河所需时间最大的两个人送过了河,而对于剩下的人,采用同样的处理方式,接下来做的就是判断怎样用的时间最少.*/
poj1700过河问题(贪心) Crossing RiverTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 10871 Accepted: 4097DescriptionA group of N people wishes to go across a river with only one boat, which can at most carry two p... 阅读详情

相关推荐

【Crossing River】

渡过问题,贪心算法,动态规划

优快云 2880

贪心问题(POJ1700/1017/1065)(C++)

本文主要就贪心问题给出了讲解和例题的讲述,使用C++语言,基于贪心问题(POJ1700/1017/1065)

CUGLin的博客 1285

poj1700题目

北京大学poj中的1700题目的源代码,具有完整的项目工程

贪心算法(一)

1、poj1700过河问题 先排序,然后假设数据为t1 t2 t3 t4 t5 t6 t7 t8,只会有两种方式: 方式一:最快的两个作为划回的船,两个来回运走两个最慢的,好处是最慢的和次慢的组合消除掉次慢的时间,坏处是往回划的有一半是次快的。时间:t1+2*t2+t8 方式二:只有最快的作为划回的船,两个来回运走两个最慢的,好处是往回划的时间是最优的,坏处是往对岸划的次慢的时间也走了。时间...

cjavacjavacjava的博客 262

POJ 部分题解 解题报告

PKU OJ上的部分解题报告和源程序 分享一下

POJ题目源代码

包含近1000道POJ题目源代码,文件名就是POJ中的题目号

POJ 1700 经典过河问题(贪心)

POJ题目链接:http://poj.org/problem?id=1700 N个人过河,船每次最多只能坐两个人,船载每个人过河的所需时间不同,问最快的过河时间。 思路: 当时所需要的最小时间很容易求得,现在由,假设n个人单独过河所需要的时间存储在数组 中,将数组 按升序排序,那么 这时将单独过河所需要时间最多的两个旅行者送到对岸去。 有两种方式: 1> 最快的(即所用...

不二的博客 998

北大POJ部分题目答案(一些基础题目)

很多的POJ题目答案!1000~1008,1011~1014,1016,1017,1019,1028,1032,1045,1046,1047,1050,1061,1067,1068,1088,1102,1159,1163,1183,1207,1218,1226,1247,1256,1258,1298,1316,1323,1326,1338,1363,1396,1401,1423,1455,1458,1468,1477,1488,1503,1504,1517,1519,1528,1543,1547,1552,1265,1579,1604,1629,1656,1657,1658,1663,1664,1665,1674,1799,1844,1862,1922,1953,1969,1979,2000,2013,2017,2027,2039,2070,2080,2105,2109,2136,2140,2141,2159,2190,2196,2242,2247,2249,2262,2301,2309,2328,2350,2386,2388,2389,2390,2403,2405,2453,2479,2487,2498,2509,2521,2533,2538,2551,2562,2575,2578,2583,2591,2593,2601,2602,2608,2636,2663,2707,2719,2739,2801,2840,2871,2909,2924,3006,3030,3062,3077,3085,3094,3100,3173,3176,3210,3224,3302,3325,3438,3673,3036,2503,1731,2503,1065,3636

poj 1700

#poj 1700 #include<iostream> #include<algorithm> #include<iomanip> #include<cmath> using namespace std; int t,n; int a[1005]; int sum; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); while(cin>&g...

ACGIRL45的博客 345

田忌赛马: POJ 2287(贪心解法)

NULL 博文链接:https://128kj.iteye.com/blog/1759266

PaddleOCR实战:从零开始打造专属OCR模型的完整指南

本文提供了一份从零开始使用PaddleOCR打造专属OCR模型的完整实战指南。内容涵盖环境搭建、数据标注与准备、模型训练与调优,以及最终的模型转换与部署。重点介绍了如何利用PaddleOCR进行模型训练,并整合PPOCRLabel等工具高效准备数据集,帮助开发者快速构建适用于特定场景的高精度OCR识别能力。

rl6adventurer的博客 733

poj1700过河问题(贪心)

题目链接:poj1700 /* 两种过河策略: 1、用速度最快的那个每次将人载过河,再回来载其他的人 2、用速度最快的和次快的循环载人,即最快的和次快的先过河,次快的留下,最快的回来,接着最慢和次慢的人过河,次快的回来 */ #include #include #include #include using namespace std; const int inf = 0xffffff

no pains,no gains 1709

一文说清Arduino如何实现舵机平滑转动(机器人场景)

深入讲解如何利用arduino控制舵机转动,实现机器人场景中的平稳运动。通过代码优化与脉冲宽度调节,让舵机动作更精准流畅,适用于各类自动化项目。

weixin_35706255的博客 899

POJ_1700(过河问题)

POJ_1700(过河问题) 题目大意 有N个人要渡河,但是只有一艘船,船上每次最多只能载两个人,渡河的速度由两个人中较慢的那个决定,小船来回载人直到所有人都渡河,求最短的渡河时间。 输入的第一行包含一个整数T(1<=T<=20),即测试用例的数量。接下来是T例。每种情况的第一行包含N,第二行包含N个整数,表示每个人过河的时间。每个案例前面都有一个空行。不会有超过1000人,没有人会...

sparky的博客 1678

硬件工程师的蜗牛成长路

1、《模拟电路课程》R/L/C/继电器/光耦/二极管/三极管/MOS管磁珠/ESD/TVS/肖特基二极管/稳压二极管/保险丝/GDT/TSS/光耦/MOS/运放/BJT比较器/面板开关/按键开关/拨码开关/BUCK/LDO/电源防护器件LM5069单输出PLL/多路输出PLL/单端晶振/差分晶振/晶体(这方面不熟悉,待以后补充)1)速度传感器2)温度传感器3)倾斜角传感器4)火焰传感器5)红外传感器6)呼吸心跳采集chaunganqi1)数字隔离 电平转换芯片/磁隔离/专用隔离芯片。

caozhaokun的博客 1979

最强AI插件Augment,适配idea、vscode,对标cursor!

Augment是一款新兴的AI辅助编码工具,能够无缝集成到IDEA和VS Code等主流IDE中,直接对标专业AI编码工具Cursor。其核心优势包括多IDE适配、无缝集成、代码理解与生成以及对话式编程体验。Augment通过插件形式保留原IDE功能和快捷键习惯,降低学习成本,同时提供深度理解项目上下文和生成高质量代码的能力。此外,Augment还具备审查变更、检查点、代理与代理自动等核心功能,支持从简单配置更改到复杂功能实现的各种开发任务。Augment代表了AI辅助编程工具的新方向,通过增强开发者熟悉的

todoitbo的博客 1万+

POJ1700 Crossing River DP

Problem Address:http://poj.org/problem?id=1700 【思路】 dp是O(n)的复杂度。 从后往前推,对于每一个人, 可以单独一个人过去(此时需要用耗时最小的那个人一起过去,之后那个人自己回来), 或者和前一个人一

Human_CK的专栏 672

【漏洞复现】永恒之蓝 MS17-010 远程溢出漏洞(CVE-2017-0143)

文章目录声明前言一、漏洞原理简述二、漏洞代码深层解析三、实验步骤四、漏洞补丁总结 声明 本篇文章仅用于技术研究与技术学习,切勿用于非授权下攻击行为,切记! 前言 Windows7 存在 MS17-010 永恒之蓝(远程溢出漏洞) ,该漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码 一、漏洞原理简述 MS17-010漏洞出现在Windows SMB v1中的内核态函数 srv!SrvOs2FeaListToNt 在处理FEA(File Ex

李同學AI安全 9627

POJ1700-Crossing River

链接:http://poj.org/problem?id=1700 代码: #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int main(){ int a[1005],t,n,sum; cin>>t; ...

qq_37618760的博客 180

XCP实战系列介绍07-使用ASAP2 Editor生成A2l文件详解

介绍通过ASAP2 Editor工具生成A2l文件步骤详解

initiallizer的博客 7297

RK3568笔记五十四:SORT实时目标追踪

YOLOv5具备目标检测的功能,把视频分解成多幅图像并逐帧执行时,如果视频帧中有多个目标,如何知道一帧中的目标和上一帧是同一个对象就是目标跟踪的工作。DeepSort是实现目标跟踪的算法,从sort(simple online and realtime tracking)演变而来,使用卡尔曼滤波器预测所检测对象的运动轨迹,匈牙利算法将它们与新的检测目标相匹配。结合YOLOv5和DeepSORT可以在实时场景中实现高效的目标检测和跟踪。

788

POJ1700 Crossing River

问题链接:POJ1700Crossing River。 问题描述:参见上文。 问题分析:这个问题适合于用贪心法来解决,所以需要对输入的数据事先进行排序。 同时还需要考虑特例情况,数据个数小于3的时候,需要特殊处理;数据个数大于3的时候,需要统一处理。 假设人数为n,总的过河时间为: n=1时,那个人的过河时间; n=2时,两人中最长的过河时间; n=3时,...

weixin_33984032的博客 156

如何使用VNC对openEuler系统进行远程图形化操作

本文详细介绍了在openEuler系统中配置VNC远程图形化操作的方法。主要内容包括:1)服务端配置:安装GNOME图形界面和TigerVNC服务,创建VNC用户并设置密码,配置VNC服务启动脚本;2)客户端连接:使用VNC Viewer等工具连接服务器;3)常见问题解决方法。通过5901端口建立连接后,用户可远程操作openEuler图形界面,适用于需要图形化管理的场景。

2501_93651177的博客 313
上一篇: HDU3308
下一篇: poj1323
Phoebe201421085
博客等级 码龄12年 3粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值