Problem Description
Before bridges
were common, ferries were used to transport cars across rivers.
River ferries, unlike their larger cousins, run on a guide line and
are powered by the river's current. Cars drive onto the ferry from
one end, the ferry crosses the river, and the cars exit from the
other end of the ferry.

There is a ferry across the river that can take n cars across the
river in t minutes and return in t minutes. m cars arrive at the
ferry terminal by a given schedule. What is the earliest time that
all the cars can be transported across the river? What is the
minimum number of trips that the operator must make to deliver all
cars by that time?
Input
The first line
of input contains c, the number of test cases. Each test case
begins with n, t, m. m lines follow, each giving the arrival time
for a car (in minutes since the beginning of the day). The operator
can run the ferry whenever he or she wishes, but can take only the
cars that have arrived up to that time.
Output
For each test
case, output a single line with two integers: the time, in minutes
since the beginning of the day, when the last car is delivered to
the other side of the river, and the minimum number of trips made
by the ferry to carry the cars within that time. < br><
br>You may assume that 0 < n, t, m < 1440. The arrival
times for each test case are in non-decreasing order.
Sample Input
2 2
10
10
0
10
20
30
40
50
60
70
80
90
2 10
3
10
30
40
Sample Output
100 5
50 2
题意:搬运车过河,但是并不是每一辆车都在一边等好的,每辆车到达岸边的时间有要求,一次最多搬运n辆车,需要时间t,并且回来也需要时间t,共有m辆车,求最少拌匀次数,且此时的用时。
解题思路:最少搬运次数不用想就是m%n?m/n+1:m/n;至于半时间如果m%n为零就就直接排好序之后每次搬n辆,要不的话就先把m%n搬走,让后面的车尽可能的少等;
感悟:做多了也没啥感悟了,最难的地方就是想贪心的条件;
代码(G++)
#include

#include

#define maxn 1444

using namespace std;

int main()

{

   
//freopen("in.txt", "r", stdin);

    int
c,t,n,m,wait_time[maxn],times=0,time=0,lost_car=0;

   
scanf("%d",&c);

    for(int
i=0;i

    {

       
time=times=0;

       
scanf("%d%d%d",&n,&t,&m);

       
//printf("n=%d t=%d m=%d\n",n,t,m);

       
for(int j=1;j<=m;j++)

           
scanf("%d",&wait_time[j]);

       
lost_car=m%n;

       
times=m%n?m/n+1:m/n;//最少运输的次数;

if(lost_car)

           
time=wait_time[lost_car]+t*2;

       
//printf("此时时间是%d\n",time);

       
for(int j=1;j<=m/n;j++)//总共运times次;

       
{

           
//printf("wait_time[j*n+lost_car]=%d\n",wait_time[j*n+lost_car]);

//printf("time=%d\n",time);

           
if(time

           
{

               
time+=2*t+(wait_time[j*n+lost_car]-time);

               
if(j==m/n)

                   
time-=t;//最后一次不用回去了

           
}

           
else//现在有车了

           
{

               
time+=2*t;

               
if(j==m/n)

               
time-=t;//最后一次不用回去了

           
}

           
//printf("此时时间是%d\n",time);

       
}


       
printf("%d %d\n",time,times);

    }

}

Problem O的更多相关文章

  1. 1199 Problem B: 大小关系

    求有限集传递闭包的 Floyd Warshall 算法(矩阵实现) 其实就三重循环.zzuoj 1199 题 链接 http://acm.zzu.edu.cn:8000/problem.php?id= ...

  2. No-args constructor for class X does not exist. Register an InstanceCreator with Gson for this type to fix this problem.

    Gson解析JSON字符串时出现了下面的错误: No-args constructor for class X does not exist. Register an InstanceCreator ...

  3. C - NP-Hard Problem(二分图判定-染色法)

    C - NP-Hard Problem Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:262144 ...

  4. Time Consume Problem

    I joined the NodeJS online Course three weeks ago, but now I'm late about 2 weeks. I pay the codesch ...

  5. Programming Contest Problem Types

        Programming Contest Problem Types Hal Burch conducted an analysis over spring break of 1999 and ...

  6. hdu1032 Train Problem II (卡特兰数)

    题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能.    (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...

  7. BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 4032  Solved: 1817[Submit] ...

  8. [LeetCode] Water and Jug Problem 水罐问题

    You are given two jugs with capacities x and y litres. There is an infinite amount of water supply a ...

  9. [LeetCode] The Skyline Problem 天际线问题

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...

  10. PHP curl报错“Problem (2) in the Chunked-Encoded data”解决方案

    $s = curl_init(); curl_setopt($s, CURLOPT_POST, true); curl_setopt($s, CURLOPT_POSTFIELDS, $queryStr ...

随机推荐

  1. MySQL_日期函数汇总

              如果转载,请注明博文来源: www.cnblogs.com/xinysu/   ,版权归 博客园 苏家小萝卜 所有.望各位支持!         关于MySQL日期时间函数,每回总 ...

  2. Happy 2006 poj2773

    Happy 2006 Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 9049   Accepted: 3031 Descri ...

  3. html基础知识笔记

    HTML基础 1.1HTML文件的基本结构和W3C标准 1.1.1HTML简介 HTML是一种描述网页的语言,一种超文本标记的语言! 1.1.2HTML文件的基本结构 头部(head) 头部是网页的标 ...

  4. Java公开课-01.类和对象

    一,类和对象的含义 1.类:类是具有相同属性(静态特征)和行为(功能 )的一系列事物的集合. eg:以下俩者是不是类 1)汽车  √ 2)小胖桌子上那个红色的杯子  × 2.对象:被精确限定到一个特殊 ...

  5. asp.net提高程序性能的技巧(一)

    [摘 要] 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多的信息请参考<Improving ASP.NET Pe ...

  6. [Unity]Unity3D编辑器插件扩展和组件扩展

    1. 插件扩展 1.1. 命名空间 using UnityEditor; using UnityEngine; //非必需,常用到 1.2. 使用语法 [MenuItem("Assets/M ...

  7. IDL 存储数组

    IDL中的数组在内存中是按行存储的,这是因为IDL最初设计的设计目的是用来处理行扫描卫星数据. 1.一维数组 m个元素的一维数组arr[m]的存储方式为 arr[0]→arr[1]→...→arr[m ...

  8. Dapper数据库相关操作

    using System; using System.Data; using System.Configuration; using System.Data.SqlClient; namespace ...

  9. MVVM -- CallMethodAction 和 InvokeCommandAction

    MVVM实践教程   算算,从事Silverlight和WPF的开发也有1年多的时间了,虽然时间不算长,虽然还没有突出的成就,但是感觉也还算一般. 但是,从头至今都没有去认真研究和使用过MVVM,虽然 ...

  10. OC实现同步访问属性

    有时候,我们在开发过程中需要对属性的访问进行同步操作,这种属性需要做成原子的,用atomic来修饰属性,即可实现这一点. 如果我们想自己实现,可以按照下面方式写代码: SFPerson.h #impo ...