最长的时间就是两个士兵相遇,然后其中一个距离桥两端最远的那个人转身,然后另外一个跟着他走。 独木桥上或许有很多士兵,他们碰撞后可能会和另外碰撞的两个人相遇,但是他们最后都要往离独木桥两端最远的地方走,而转身不耗费时间,所以只要找所有士兵中离独木桥两端最远的距离就可以了。 至于有没有在最左端碰撞后,...
35. 洛谷P1007、独木桥 此题实际上是一道非常简单的题,但是笔者一开始将其想复杂了。。。看了他人的思路之后简直大呼过瘾。我先用自己的理解来讲一下此题的核心思路: 即,我们将每个士兵过河的步数看成一项任务,这样一来,完成所有的步数才是我们最终的任务,因此每个士兵都可以看成一个“工具人”,即他们是没有...
然后按题意转移就行。 代码: #include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e5+5;intn,dp[maxn][3];structtree{intx,h; }t[maxn];intmain(){scanf("%d",&n);for(inti=1;i<=n;i++)scanf("%d%d",&t[i].x,&t[i].h); dp[1][0]=1;if(t[2].x-t[1].x>t[1].h)...
一堆木头棍子共有n根,每根棍子的长度和宽度都是已知的。棍子可以被一台机器一个接一个地加工。机器处理一根棍子之前需要准备时间。准备时间是这样定义的: 第一根棍子的准备时间为1分钟; 如果刚处理完长度为L,宽度为W的棍子,那么如果下一个棍子长度为Li,宽度为Wi,并且满足L>=Li,W>=Wi,这个棍子就不需要准备时...
设有一个长度为NN的数字串,要求选手使用KK个乘号将它分成K+1K+1个部分,找出一种分法,使得这K+1K+1个部分的乘积能够为最大。 同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子: 有一个数字串:312312, 当N=3,K=1N=3,K=1时会有以下两种分法: ...