首页 > codeJan与旅行
头像 ThinkofBlank
发表于 2020-05-07 12:19:22
一.闲话 qwq,太菜了有情况没考虑到,使用了出题人给的hack数据后才明白。 出题人给的hack数据:13 10 21 10 14 ans=42 二.题解 这题中,我们不难证明,那么最后我们一定会在两个点直接徘徊或者直达某个点。 证明如下: 若不在两点间徘徊有最短距离,设我们走的点的序列为: (对 展开全文
头像 Kur1su
发表于 2020-05-08 11:20:26
我哭了, 一大早起床本来想做个题后写作业, 结果被这道题搞了几个小时满脑子都是乱的还做不出来, 跑去看了题解 Solution 大致思想其实挺好想的(注意!是大致!) 因为题目保证不会存在 与城市节点重合的情况我们先处理出 左右两个城市的位置(注意一下边界的处理)然后很显然的, 我们可以找到从当 展开全文
头像 平凡的小白
发表于 2020-05-07 20:51:16
问题: 给定n个城市坐标,每个城市可以多次到达,但是只有离开再回来才算次数+1,问一共到m次,最短花费。给出起始位置,并且起始位置不在城市上。 解析: 通过观察法(观察大佬题解),发现这题是贪心,最优解一定是在 之间横跳或者直接一直朝前走到某个城市。具体方法:1.判断能否直接走到i城市,如果 展开全文
头像 heartのc
发表于 2020-05-08 16:17:02
传送门 题意描述 有n个城市在数轴上,当前的位置是,p不和任何的城市重合,你现在需要经过个城市,每过城市可以多次经过,求最小的总距离。 Tags 贪心 数学 分析 本题的巧妙之处在于,第一次看起来,有3种可行的方案: 从起点的 左/右 出发,一直到访问了个城市。 从如果到了 起点 或 终点 依 展开全文
头像 Eihuvita.
发表于 2020-05-08 12:41:06
题意 在一条线上有几个城市,有一个初始位置不和这些城市重复,问去到m个地方的最少花费 输入描述 第一行是一个T≤20代表测试组数。每组第一行是三个正整数n,m,p,分别代表城市数量、codeJan想要浏览的城市数量和codeJan当前的位置(单位为米)。第二行包含n个正整数pos[i]表示第i个 展开全文
头像 与人无语
发表于 2020-05-13 15:12:09
一开始看错了题目 以为一个城市只能算一次(瞎子视力然后得出一个结论最多折返一次 然后计算 然后wawa只会看样例才发现 一个城市能多次到达 那么m够大的话最后一定变成了在i到i+1之间来回 那么我们就枚举每个区间 是否正确?错了然后苦思 然后看题解(后面的情况没想到啊啊啊因为还有个问题没有考虑 展开全文
头像 sunrise__sunrise
发表于 2020-05-07 18:51:23
解题思路 给定n个城市坐标,每个城市可以多次到达,但是只有离开再回来才算次数+1,问一共到m次,最短花费。给出起始位置,并且起始位置不在城市上。首先通过强大的观察法我们得到最终一定是在两个城市之间反复横跳,或者一次向一个方向走到m个城市,这两种方案。具体如何得到的: 假设走到当前节点跳到后面节点后 展开全文
头像 HGDB
发表于 2020-05-07 19:34:45
题意 n个城市走m次,问走的路程最短 思路 看完题目还以为是找两个城市最短距离乘 m ,看到有初始位置我还是太年轻了。因为有初始位置,那在初始时可能有两种情况: 1.走到左边的城市 2.走到右边的城市。这两种情况要分别讨论。走到任意一个城市后有三种情况: 1.和左边的城市来回走完m次 2.和右边的城 展开全文
头像 shyyhs
发表于 2021-01-12 23:03:00
简单贪心题.但是我才知道lower_bound找不到就算返回n...第一次学到= - =好累好困,还有一个挺难的dp要学 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5 展开全文
头像 精神病科黄主任
发表于 2020-05-07 22:13:12
思路:最后的答案一定是再两点之间一直徘徊着走。所以直接枚举,起始点一直往左走,然后再任意两点间徘徊。枚举起点一直往右走然后再任意两点间徘徊。考虑一下一种特殊的情况,就是我先往左走一个城市,然后一直往右走,或者先往右走一个城市,然后一直左走。为什么会有这样的走法?比如先往左走一下,在一直往右走,那么容 展开全文

等你来战

查看全部