愿你走出愿你出走半生归来仍是少年出处少年出自哪儿

近些年网络成为人们必不可少的社交平台,人们通过上网来纾解工作的压力,有一些“段子手”大显身手,发布了一些幽默搞笑、有正能量又富有哲理、富有诗情画意的网络金句,极大地丰富了人们的文化生活。

如“春风十里不如你”、“陌上人如玉,公子世无双”等。这些金句有些出自经典古诗词,有些是不知名网友的所自创,虽然只有一两句话,语句又简单明了,但却总能在某一瞬间打动或走进我们的心。

本期要和大家说的,也是个网络金句:“愿你走出半生,归来仍是少年”,这是一篇散文集中的书名,人们看见这句话顿时触动了自己的心中的痛点。之所以成为网络金句,是因为我们曾经历经千辛万苦穿越“红尘”,抵达的不是远方,而是内心最初梦想的地方。

文学是慰藉心灵最好的形式,有的时候长篇大论的说教令人厌烦,往往只需要一两句话,就能触动心灵,禁不住让人潸然泪下。人们总爱说“不忘初心”,可是说起来容易做起来难,很多人在起跑线上向着目标奋勇向前,可是到了终点,自己的初心早已不见的踪影。特别是人到中年以后,经过岁月的磨练,一次次的挫折中,还能保持不变的初心是凤毛麟角。不信你=我们可以反省一下自己,现在你的初心还在吗?

美好的少年时光,心有天高,目标远大。这个年龄对未来充满好奇,容易被理想的事情所打动,有些事做得不一定理智,但他也不是麻木的,心中有一个动力在推动着他前进。然而过青年时期,人到中年以后,逐渐变得理智了,而心却越来越麻木了。

年轻时一无所有,凭着一股干劲,苦点累点,每天却很充实快乐,现在什么也不缺,论成绩也算是收获满满,可是我们却若有所失,脸上没有了当初天真的笑容,也没感觉到有多么的幸福。

当然我们不断成长后归来依旧是少年,是说人的心态要像当初年轻一样。因为少年的心是一团火,就像早晨八九点钟的太阳,充满了希望,所以“愿你走出半生,归来仍是少年”是对人们美好的一句祝愿。

其实这句话之所以这么流行,也是因为它的出处很特别。看过宋代大诗人苏轼写的《定风波·南海归赠王定国侍人寓娘》,人们才恍然大悟,现代人的灵感都来源于古诗词当中。能写出这么高水准的网络金句,不得不佩服作者的文学水平。那么能激发网友写出金句苏轼的原词,也值得我们好好欣赏一下,你读了之后又有什么感想呢?

《定风波·南海归赠王定国侍人寓娘》宋代 苏轼

常羡人间琢玉郎,天应乞与点酥娘。

尽道清歌传皓齿,风起,雪飞炎海变清凉。

万里归来颜愈少,微笑,笑时犹带岭梅香。

试问岭南应不好,却道:此心安处是吾乡

苏轼的一生也是曲折坎坷,年轻时才华出众,胸怀大志,但在官场屡遭陷害,仕途不顺。在公元1079年的乌台诗案中,被人弹劾讥讽朝廷,差点丢了性命,身边的好友王巩也受到牵连,官职遭贬。4年后,阔别多年的好友再次相逢,互相问候。苏轼问王巩这些年的状况,王巩说:“此心安处,便是吾乡”,于是苏轼听后感慨万千,便写出了这首词。

这首词里的“万里归来颜愈少”以及“此心安处是吾乡”,体现了苏轼和朋友积极乐观向上的精神,面对人生艰难的经历,让苏轼想到自己年少时的初心,两人再相见,还能看到年轻时积极向上的乐观心态,依然是当初那个充满阳光少年时的模样,充满了真诚和炙热之情。

网友受苏轼这首词的启发,加上自己的感悟,创造出现代感十足的金句:“愿你走出半生,归来仍是少年”,这是对所有网友的真诚祝福!

  • 今日话题:你觉得苏轼的这首词写得如何?欢迎在下方留言,我们一起交流和学习。

想了解更多精彩内容,快来关注国学大观园

声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。

前言:本次测试是在家通过网络提交进行的,不出所料,我又考得十分“爆炸”,炸到我怀疑人生。

另外,由于以前有一些题目迟迟没有改完,所以我打算改完哪场比赛的题目就先写那场比赛的总结,避免遗忘和拖沓,虽然可能会有些乱。。。


“回文分数”游戏并不简单。游戏的目标是修改最多maxChanges个字符使得一个字符串word的回文分数最高。只允许修改,不许增加或者删除字符。
一个字符串的回文分数定义如下:

1、如果字符串不是回文串,则分数为0。
2、如果字符串是回文串,且长度为奇数,则分数为1。
3、如果字符串是回文串,且长度为偶数,我们将它分为左右两半。计算它的一半子串的回文分数为K(两个一半子串得分一定相同),则原字符串的回文分数为K + 1。

给定一个字符串word和一个型整数maxChanges,返回最多修改maxChanges个字符后最大可能的回文分数。

回文串的定义是一个字符串从前向后读和从后向前读完全一样。





如果把x改成a,得到偶数长度的回文串”abcbaabcba”。它的一半子串是奇数长度的回文串”abcba”,所以子串分数为K = 1,因而最后得分是K + 1 = 2。

我们可以把c改成r,把e改成o,得到”rodor”。这是一个奇数长度的回文串,所以得分为1。


解题思路(模拟+贪心)

这题做得我十分痛苦,其实这是一道比较简单的贪心+模拟题。我一开始的做法就是照着题目要求模拟,在一次比较,两个字符不同时,关键就是如何替换才使答案最优。如果随便替换的话将对后面的答案有影响。所以我当时的做法是处理一层的替换的时候看看下一层,怎样替换对下一层更优我就怎样替换。本质就是看看字符的出现个数。

然而这样未必对,我们知道,如果当前层对下一层一样优的话,对下下层可能不一样。但是我这样做也有94分,好一段时间内我不知道该怎么改。其实必须边递归边展开所有层判断是否能继续,再统计答案。由于层数不超过6层,所以这样不会超时。但这样的方法其实并不直观们还有一种更易理解的方法。

直接枚举答案,假如长度为12,枚举的答案为2,则可以表示为1 2 3 3 2 1 1 2 3 3 2 1,然后将相同数字的位置改成相同字符即可。如何改就贪心,改成哪个字符修改次数少就那么改,再和maxChanges比较判断答案。



你有一台超小的电脑,内存只有两个寄存器:X和Y。寄存器只能存储正整数,一开始两个寄存器的值都是1,电脑操作系统只有两种指令:指令[X]和指令[Y]。
指令[X]的功能是:X ← X + Y,即把两寄存器目前的值累加到X寄存器;
指令[Y]的功能是:Y ← X + Y,即把两寄存器目前的值累加到Y寄存器。例如:指令序列”XXYYX”的执行过程如下:

可以发现,执行指令序列”XXYYX”后,X寄存器的值是10,Y寄存器的值是7。现在你的任务是:给你一个正整数R, 你要编写指令序列,使得最后X寄存器的值是R (此时Y寄存器可以是任意整数). 当然,我们希望你编写的指令序列的长度要尽量短,在此前提下,如果有多种方案,请输出字典序最小的一种方案。



一个字符串,代表生成R的长度最短的指令序列。




解题思路(更相减损术(迭代)+gcd)

如果直接宽搜,必定超时。
我们必须注意到一点,如果我们枚举一个Y,是可以直接根据最短步数得到方案的。
这个得到方案的方法就是在数学上有了解到的更相减损术。

容易证明,我们不断用大数减小数,得到的差和较小数再次重复做这个操作,不断迭代,步数一定是最短的。根据一些方法,我们可以知道可能的最少步数不会超过三十几步,这里我是用斐波那契数列去发现的(然后考试时我就想歪了。。)。

于是时间就是枚举Y(1e6)然后乘上个三十几。至于枚举的Y不一定是合法的,合法的前提是与给出的X互质,为什么呢?因为更相减损术就是在求gcd啊!于是不与X互质的Y必然不会产生合法答案。然后就写个欧几里德算法判断,时间照样不成问题。不过考试时我思维僵化,连方向都错了。

字典序就做完一次判断更新答案。如果算的过程中,答案长度已经超过可能的最优长度(三十几)或当前答案,就不用往下做了,直接跳过,这样可以节省很多时间。最后倒叙输出答案就行了。

坑点:第一是特判,然后不要用字符串,要用字符数组记录答案,否则超时。。



FJ最近得到了一份工作,那就是送肯德基外卖。FJ所在的小镇可以看作是R行C列矩形,被划分成R×C个单元格子,从上往下,行的编号是1至R;从左往右,列的编号是1至C。FJ一开始在第1行第1列的格子处,他收到D个顾客的订单,第i个顾客的位置在第Ri行第Ci列的格子。FJ一开始就把所有顾客的订餐一起装在背包里,这样在送餐过程中就没必要一定要返回出发点了,FJ必须严格按照次序给顾客送肯德基(即先送完第1个顾客,再送第2个顾客,…依次类推)。当送完所有的肯德基外卖后,FJ也没有必要返回出发处。FJ每一步的移动规则是这样的:FJ可以从当前格子移动一步,到达相邻的左格子或者相邻的右格子(两个格子相邻是指它们有公共边);此外,如果FJ当前所在格的列是第1列或者第C列,那么FJ还可以向上移动一格或者向下移动一格。任意时刻,FJ都不能走出矩形的边界。FJ每进入一个格子,都会在该格子停留一定的时间T,在不同的给子,FJ停留的时间可能不同。FJ送完所有订餐,至少需要多少时间?


第一行,两个整数,R和C。
接下来有R行C列,第i行第j列的整数表示FJ进入第i行第j列的格子,必须在那个格子停留的时间T
接下来一行,有一个整数D,表示有D个顾客订餐。
接下来有D行,每行两个整数,依次表示顾客的位置,即所在行和所在列。 顾客所在的位置没有重复。


一个整数,送完所有订餐的最少时间。




首先要吐槽一下题目的翻译,FJ送肯德基。。

本题多种做法,我在考试时没时间了(吃晚饭),于是写了一个狂暴的SPFA,地图上每个点都提出来做最短路,拿了50分。然而最短裤(路)能拿70分,dp是满分。

首先讲讲SPFA的方法求最短路。
我们发现由于只有第一列和最后一列是可以向下向上走的,其他的只能横着走,于是我们将那两列点单独拿出来做一遍SPFA,建图、做法就不用说了,维护行和列的前缀和,这样就得到了这两列点互相到达的最短路了。注意这里做2n次SPFA,时间复杂度的级别是 ,k是SPFA的常数,m是边数,与点数成正比,这样其实理论是n^2的,但是常数太大,所以很慢。但实测也是能过的(前提是加了玄学优化)。

算出那些点的最短路后,对于每组询问,我们分5种情况,设二点为A和B,第一列为1,最后一列为m,则

上面所有行的第三个箭头都是沿最短路走,其他的打横走就查询部分和。于是,通过SPFA求最短路,分类讨论取最小值,就可以解决此题了。不过SPFA部分我写的比较复杂,也不如下面的DP方法巧妙。

其实DP的做法也是在求最短路。
不过,计算最短路的时间是严格的 O(4n2) 。首先我们除了 dis[i][j] 表示点 ij的最短路外,我们要先预处理出一个 表示第i行的左边的点向右边的点走的最短路径。就是从第一列的某个点出发,通过各种“蛇皮走位”,到达同行的最后一列的最短路径。

为什么要先算这个呢?假设不是同一行的点,最短路径可能绕很多次。如下图

当行数变多,拐的弯可能越来越多,枚举拐点是不太可行的。而当同一行时,拐一次一定是最优的。如图

若红色的是最短路,由于T非负,毫无疑问黑色的路径更优。

那我们枚举拐点求出 cost[] ,然后用 cost 去更新 dis 数组。具体的更新就是按照如下次序:

如果当前最短路的源点在左边,更新次序就是第i行的右边,再到第i行的左边,反之就相反。更新的方法就是用部分和与 cost ,具体的公式参见代码,注意不要算重算漏。

预处理的时候我们知道每个点到自己的最短路和对面的最短路。然后n^2按行数向下更新就行了,只向下是为了避免重复计算。

最后一样的分类讨论算出答案。





考试时很不在状态,简单的题居然脑抽不会做,还有希望以后改题写总结能快点,不然很多事情都做不了,好好把握时间才行,争取多做有意义的事,提高水平。


愿你走出半生 归来仍是少年

我要回帖

更多关于 愿你出走半生归来仍是少年出处 的文章

 

随机推荐