都2012了你还瞎晃悠啥呢

文章回顾了作者在2012年的生活经历,表达了对青春流逝的感慨,鼓励年轻人珍惜时间,积极面对生活。文中提到了过年、家庭聚会、美食等元素,以及对过去一年中遇到的好消息与坏消息的感受。
都2012了你还瞎晃悠啥呢
7小时前
   在空间日志里销声匿迹的有点久了,突然有点怀念了,或者说被遗忘了很久比较贴切
  大家都有各自的生活了,谁也没空搭理谁,即使有再便捷的联系方式那又怎么样,这一年,是很自由,自由的有点过头了。听到很多的好消息与坏消息,谁也帮上不上谁,可是心境却在一点一点发生变化,以为还是和以前一样,其实大不一样,青春在慢慢的苍老呐,孩子们别浪费时间了,好好的趁年轻收获些什么吧,至少要学会分清谁真心对你好。其实有很多期许,可是总是装作没事一样,甚至反其道而行,连我自己都搞不清楚为什么会这样,这么执拗的生活,累不累啊...哎...道理大家都懂,做起来却很难
  原本以为过年要在这里过了,觉得还挺凄凉的,没想到老天给了个撒泼rise,居然还能休息一个礼拜,过几天就能回家,想想真是兴奋,我实在是个很喜欢过年的人,能见到家人,见到好朋友的感觉还是挺美的,最重要的是能吃好多大餐...咂巴咂巴
  希望2011年经历了些不愉快的事情的朋友会好起来,不管怎样,生活都要继续,反正都是过,为何不开心点过呢,2012年,要加油了,还瞎晃悠啥呢,还搞不清楚状况呢,得做出点成绩才好,老天爷,给力点,至少让大家伙儿见识下世界末日长啥样
也许你从没听说过阿卑多,但你一定知道他爷爷的爷爷的爷爷,那就是聪明绝顶的阿凡提先生。是的,阿卑多也是个聪明的小孩。 一天,阿卑多骑着他的小毛驴,在小镇上晃悠,小镇上的路都是双向的。正好遇上了小巴依——那个自以为是的小财主。小巴依正在炫耀他的金币:“你们见过这样的金币么?这可不是一般的金币,你看它们多大多重啊!最主要的是,它们每个上面都刻有我的名字和一个编号,是独一无二的!看看,从我出生开始,每2个月,爸爸便给我1个特做的大金币,并从1开始编号,现在我已经有60枚了,哈哈……” 小巴依见了阿卑多,于是便想考一考他:“阿卑多,听说你是最聪明的。给你任意三个顶点 A A, B B, C C,问你从顶点 A A 走到顶点 B B 并且经过顶点 C C的 最短路径的条数有多少?如果你能算出,那么就奖你一枚金币;如果不能,就给我做三年长工好了。” 阿卑多想了一想,自己完成没有多大的问题,现在他想来考考学习信息学奥赛的你,请你编程帮助他来顺利的完成。 【输入格式】 输入的第一行为两个正整数 m m 、 n n , m m 表示顶点的个数, n n 表示边的条数 第二行为三个整数 A A , B B 和 C C, A A 表示起点, B B 表示终点, C C 表示要问你经过那个顶点; 接下来有 n n 行分别表示两条相临的边的编号及距离; 【输出格式】 输出从顶点 A A 到顶点 B B ,经过 C C 这个顶点的最短路径的条数。 【样例输入1】 4 5 1 4 2 1 2 2 1 3 1 2 4 2 2 3 1 3 4 3 【样例输出1】 2 【样例1解释】 无 【数据范围及约定】 0 < m ≤ 1000 , n ≤ 499500 0<m≤1000,n≤499500 ,所有数据计算过程中都不会超过 i n t int ;
最新发布
11-26
链接:https://ac.nowcoder.com/acm/contest/102333/1095 来源:牛客网 时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒 空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M 64bit IO Format: %lld 题目描述 伊娜小姐没有应声,宽大的画板遮住了她娇小的身躯,但是越过画架,我看见她的两只小脚前后晃悠着,仿佛小鹿轻快地越过春日的小溪。 过了会儿,伊娜又探出头来。 “……你真的这么想吗,我很可爱什么的。” 她的脸颊微微泛红。 “千真万确,我发誓。” 在一个二维世界中,小 L 和小 R 发现他们的腿变异了,只能使用特定的几种速度向量移动。 具体的,如果选择使用了速度向量 ( 𝑥 , 𝑦 ) (x,y),则在一秒过后,他会从 ( 𝑥 0 , 𝑦 0 ) (x 0 ​ ,y 0 ​ ) 位置移动到 ( 𝑥 0 + 𝑥 , 𝑦 0 + 𝑦 ) (x 0 ​ +x,y 0 ​ +y) 位置。 他们急着测试自己的移动能力,决定进行一场赛跑。但是由于小 L 和小 R 关系很好,不希望有竞争,所以他们要合作完成这一次赛跑。 现在,小 L 和小 R 都在二维世界中的 ( 0 , 0 ) (0,0) 位置,而他们所希望的是在一秒后他们之间距离的曼哈顿距离最大,请你计算最大的距离。 平面上两个点 ( 𝑥 1 , 𝑦 1 ) (x 1 ​ ,y 1 ​ ) 与 ( 𝑥 2 , 𝑦 2 ) (x 2 ​ ,y 2 ​ ) 的曼哈顿距离为 ∣ 𝑥 1 − 𝑥 2 ∣ + ∣ 𝑦 1 − 𝑦 2 ∣ ∣x 1 ​ −x 2 ​ ∣+∣y 1 ​ −y 2 ​ ∣。 输入描述: 第一行两个整数 𝑛 , 𝑚 n,m,分别表示小 L 可用的速度向量的种数以及小 R 可用的速度向量的种数。 接下来 𝑛 n 行,每行两个整数 𝑎 𝑖 , 𝑏 𝑖 a i ​ ,b i ​ 表示小 L 可用的第 𝑖 i 种速度向量。 接下来 𝑚 m 行,每行两个整数 𝑐 𝑖 , 𝑑 𝑖 c i ​ ,d i ​ 表示小 R 可用的第 𝑖 i 种速度向量。 数据保证: 1 ≤ 𝑛 , 𝑚 ≤ 1 0 5 1≤n,m≤10 5 , ∣ 𝑎 𝑖 ∣ , ∣ 𝑏 𝑖 ∣ , ∣ 𝑐 𝑖 ∣ , ∣ 𝑑 𝑖 ∣ ≤ 1 0 9 ∣a i ​ ∣,∣b i ​ ∣,∣c i ​ ∣,∣d i ​ ∣≤10 9 。 输出描述: 一行一个整数,表示答案。 示例1 输入 复制 2 2 1 3 -3 2 2 1 4 2 输出 复制 7 说明 小 L 选择速度向量 ( − 3 , 2 ) (−3,2),小 R 选择速度向量 ( 4 , 2 ) (4,2),一秒后两人的位置分别为 ( − 3 , 2 ) (−3,2) 与 ( 4 , 2 ) (4,2),此时的曼哈顿距离为 7 7。 容易发现不存在更大的曼哈顿距离。环境为python3,ACM模式
07-12
我们来解决这个问题: --- ## 📌 题意简述 小 L 和小 R 从原点 `(0, 0)` 出发,分别选择一个速度向量 `(a_i, b_i)` 和 `(c_j, d_j)`,一秒后他们分别移动到: - 小 L:`(a_i, b_i)` - 小 R:`(c_j, d_j)` 我们要最大化他们的**曼哈顿距离**: $$ |x_1 - x_2| + |y_1 - y_2| = |a_i - c_j| + |b_i - b_j| $$ 也就是求: $$ \max_{i,j} \left( |a_i - c_j| + |b_i - d_j| \right) $$ --- ## ✅ 解题思路 ### 🧠 曼哈顿距离的性质 我们可以利用曼哈顿距离的一个重要性质: $$ |x_1 - x_2| + |y_1 - y_2| = \max_{s_x, s_y \in \{-1, 1\}} (s_x \cdot x_1 + s_y \cdot y_1) - (s_x \cdot x_2 + s_y \cdot y_2) $$ 也就是说,曼哈顿距离可以转化为以下形式的最大值: $$ \max(|x1 - x2| + |y1 - y2|) = \max_{s_x, s_y \in \{-1, 1\}} \left[ \max_v (s_x \cdot x + s_y \cdot y) - \min_u (s_x \cdot x + s_y \cdot y) \right] $$ 我们可以对每个方向组合 `(s_x, s_y)` 计算: - 小 L 所有向量在该方向上的最大值和最小值 - 小 R 所有向量在该方向上的最大值和最小值 - 然后计算差值的最大值 最终取所有方向下的最大值即可。 --- ## ✅ Python 实现(ACM 模式) ```python import sys def main(): import sys input = sys.stdin.read data = list(map(int, input().split())) idx = 0 n = data[idx] m = data[idx + 1] idx += 2 l_vectors = [] for _ in range(n): a, b = data[idx], data[idx + 1] l_vectors.append((a, b)) idx += 2 r_vectors = [] for _ in range(m): c, d = data[idx], data[idx + 1] r_vectors.append((c, d)) idx += 2 # 四种符号组合 signs = [(1, 1), (1, -1), (-1, 1), (-1, -1)] max_dist = 0 for sx, sy in signs: # 小 L 的最大和最小投影 l_vals = [sx * x + sy * y for x, y in l_vectors] l_max = max(l_vals) l_min = min(l_vals) # 小 R 的最大和最小投影 r_vals = [sx * x + sy * y for x, y in r_vectors] r_max = max(r_vals) r_min = min(r_vals) # 取差值最大情况 candidate = max(abs(l_max - r_min), abs(l_min - r_max)) max_dist = max(max_dist, candidate) print(max_dist) if __name__ == "__main__": main() ``` --- ## 🔍 示例说明 输入: ``` 2 2 1 3 -3 2 2 1 4 2 ``` 小 L 可选向量为:(1,3), (-3,2) 小 R 可选向量为:(2,1), (4,2) 枚举所有组合,最优解是: - 小 L 选 (-3, 2) - 小 R 选 (4, 2) - 曼哈顿距离 = |-3 - 4| + |2 - 2| = 7 输出: ``` 7 ``` --- ## ❗注意事项 - 不要暴力枚举所有组合(复杂度 $ O(nm) $ 会超时) - 利用曼哈顿距离的数学性质优化到 $ O(n + m) $ - 注意处理负数和大整数 --- ##
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值