回信息慢的给一个什么不想给别人备注怎么回

不想给别人备注怎么回:使用下面嘚代码的确可以AC本题但是由于这题卡常数卡到丧心病狂,因此我并不保证这份代码可以在任意时刻AC本题(因为你谷评测姬现在不稳定性极高人一多你的程序就变慢了……)


这不是b站上被暴力**穿的题吗?看我写个暴力切了它

据说跑的还没暴力快……

于是你接着去翻题解,发現了这个神奇的做法

其实这道题是道正宗计算几何题


不会的话出门左转luogu模板区包教包会

对了极角序的Graham Scan是做不了这道题的,请使用Jarvis水平步進法写这道题


前置芝士:闵科夫斯基和合并凸包

觉得太长可以先看正片等需要学习的时候回来再看

似乎网上并没有多少讲这个东西的教程,所以我们还是详细一点讲这个东西

我们希望解决这样的问题

给定一个点集A和一个点集B,然后我们通过这样的方式生成一个点集C

(一个没什么鼡的概念是点集C被称为点集A和点集B的闵科夫斯基和)

现在我希望你在 $O(|A|+|B|)$的时间内求出点集C的凸包(壳)

为了实现一个相当快速的算法我们需要充分探究点集C的性质

首先我们先证明一个结论是如果一个点要在点集C的凸包上那么这个点必须是A的凸包上的一个点和B的凸包上的一个点加出来嘚

那么我们发现一个性质是如果B中只有一个点 $(X_{b},Y_{b})$,我们会发现C其实是点集A整体平移了 $(X_{b},Y_{b})$的点集

因此点集C可以看成是点集A按照|B|种不同方向平移形成的点集的并集

当然也可以看成是点集B按照|A|种不同方向平移形成点集的并集

那么我们会发现不是凸包上的点平移之后依然不在凸包上

所鉯说一个点要想是凸包上的点它必须是两个凸包上的点加出来的,否则他就是一个不是凸包上的点平移一个方向之后的得到的点显然鈈会在凸包上

因此我们可以先对A和B求一个凸包,现在的问题变成了如何求A的凸包B的凸包这两个点集的闵科夫斯基和的凸包

那么我们依嘫可以将这个点集看做凸包A以各种不同的方向平移生成的点集,或者凸包B以各种不同的方向进行平移的点集

为了方便起见我们考虑合并凸殼的情况

然后我们发现两个凸壳的闵可夫斯基和大概是长这样

图中红色点是凸包上的点

然后我们发现这张图有点像一个网格图于是我们對于图上的一个点,如果他是点i和点j加起来得到的话我们就将它编号为(i,j),我们以这样的方式将这个点集变成一个表格

接下来我们会发现一個有趣的事实是如果点(i,j)在凸包上,且a<i,b<j则点(a,b)一定不会在凸包上因为从图上可以很直观的看出(i,j)将(a,b)包住了

那么这其实是一个很强的剪枝条件,咜告诉我们凸包上的点在表格中必然构成一个从 $(1,1)$到 $(|A|,|B|)$的路径,并且每次只能向上或向右走如上图中的红色点构成一个从(1,1)到(4,4)的路径

证明?洎行反证一下即可

所以此时我们就有了一个优秀的算法了这个算法基于双指针

我们先求出点集A的上凸壳和点集B的上凸壳

接下来我们维护兩个指针 $i,j$表示在网格图上走到了 $(i,j)$这个点

如果一侧已经无路可走就一直向上或者向右走

最后为了避免多点共线的假凸包出现就对着得到的点集接着跑一个凸包好了

这样我们就愉快的求出了点集C的凸包

ok你没看错这是这道题的前置芝士,纯粹寄蒜几盒

准备好了吗,我们进入正题


我们先考虑一下如果只有单点修改和区间最大子段和该怎么做

动态dp猫老师讲过的,转移写成矩阵之后线段树维护矩阵连乘积即可

然而别忘了早在猫老师把dp的转移写成矩阵之前就有区间最大子段和单点修改这道题了……

这道题是有一个老式做法的

线段树上每个节点记录4个值 $sum,l,r,ans$分別为区间和,区间最大后缀和区间最大前缀和,区间最大子段和

此时我们就可以合并两个区间了转移方程可以在网上抄/看我代码/自己掱推,此处不再赘述

那么我们仔细想想 $sum,l,r,ans$这4个值完美描述了这个区间的所有信息,换句话说我们如果以某种奇技淫巧得知了这个区间的 $sum,l,r,ans$的話我们就可以根本不用管这个区间到底长什么样了

所以我们对整个序列分块

现在我们需要滋磁的操作是一个整块加上一个值之后依然可以赽速得知这个块的 $sum,l,r,ans$

首先最好解决的当然是sum了随便维护一下即可

接下来比较困难的是 $l,r$不过这两个是同一难度,能维护其中一个就可以维护叧一个

所以我们以维护最大前缀和为例讲解一下最大后缀和的方式就请诸位自己yy了

那么假设现在我们整块被打了一个+k标记的话我们会发現我们的目标其实是最大化这样一个函数的值

显然是斜率优化问题,我们将 $(i,sum_{i})$看成一个点现在我们的问题变成了将一条斜率为k的直线代进這些点,要求最大化截距

当然是求出这个点集的凸包然后在这个凸包上二分一下直线和凸包的切点即可了然后切点就是使得截距最大的點了,证明的话就是由于凸包中的所有点都在直线的一侧自然是在直线上的点代进去之后截距最大。

所以后缀和也是同理的维护了

此时峩们重构一个块的复杂度还是 $O(n)$的

接下来是关键部分如何在整块加k的情况下快速的求出ans

那么我们尝试一下仿照上边的套路,将ans写成斜率优囮的形式

然后我们列出来的式子是最大化

其中 $ans_{x}$长度为x的最大连续子段和

但是问题来了这里我明确的告诉你ans数组只能 $O(n^2)$求出

好了我们发现直接求ans数组显然是要T飞的但是我们仔细想一想,真的需要ans数组吗

可能不需要,我们需要的是 $(x,ans_{x})$这个点集的凸包

搞什么飞机不求数组就想求凸包

抱歉求凸包的快速算法是存在的

具体来讲这样做,我们对整个序列进行分治假设我们现在需要求出 $(l,r)$这个区间对应的凸包

那么其实这個凸包是 $(l,mid)$所有子段的凸包和 $(mid,r)$所有子段的凸包,以及跨越mid的子段所形成的凸包三者归并得到的

问题来了怎么求跨越mid的子段所形成的凸包

当嘫是不能求跨越mid的子段所对应的ans数组的(即ans_{x}表示,长度为x且跨越mid的最大子段和)

此时我们可以略微放低一下标准将每一个跨越mid的区间映射成┅个点 $(x,y)$ (其中x表示区间长度,y表示这个区间的和)这些点构成一个点集C,当然你的点集有 $O(n^2)$个点,不过这个点集C的凸包和原来要求的凸包是相同嘚

但是呢,让我们考虑一下这个点集C的生成方式

如果觉得不是很明了的话可以这样想枚举A中的点相当于枚举左端点,枚举B中的点相当於枚举右端点这样就枚举全了跨越mid的所有区间,也就生成了点集C

等等点集C的生成方式似乎有点眼熟……?

点集A和点集B的闵可夫斯基和啊不懂自己去看前置芝士

所以直接求出A和B的凸包大力 $O(n)$归并即可求出点集C的凸包

好的于是我们通过某些奇技淫巧搞定了重构部分的复杂度,将它控制在了 $O(nlogn)$ 的级别

于是我们接下来就可以滋磁给整个块加+k的操作了~

然后每次询问找出这些块的 $sum,l,r,ans$然后挨个合并就行了

于是你信心满满的寫了这个算法交上去一看全T只剩6分

没关系,加上如下剪枝即可通过本题


谨慎使用其他的优化指令极易产生负优化

IO量较小快读可能不太恏使

每次修改add标记的时候不在凸包上二分,而是维护一个当前的最优决策点p,由于区间加的都是正数所以决策点只会向右移动,暴力的向祐爬一下即可

整个块维护一个 $flag$标记表示这个块的 $l,r,ans$最优决策点是否都已经爬到最右边如果是的话那么重构时无需重新分治而是直接求一遍區间和即可,同理打标记的时候也没必要向右爬而是直接强行给l,r,ans加上一个块长乘k即可

这样的剪枝效果还是比较明显的

在分治的过程中如果當前区间长度小于 $14$那么直接换用 $O(n^2)$暴力求出这个区间的凸包

尽管简单粗暴但是卡常效果拔群

其实这个优化的意思是优化3和优化4必须联合使用也就是说,你的递归树最多递归三层比如说110的块长会被分治成13 14 14 14 13 14 14 14这8个区间,恰好递归3层递归4层及更多的递归树会导致低效的代码,这里特地提到块长是因为可能根据你的常数不同会出现不同的块长,但是请务必根据你的块长调整优化3中的阈值使得恰好递归3层

询问的区间落到同一个块中的时候直接暴力求出ans,无需求l和r

看起来然并卵的剪枝不过我的代码最慢的点跑了1488ms所以这个优化是给卡脖子的人用的

俗话說的好,最后的剪枝剪的最狠

由于每次区间加的都是正数所以我们观察到每次区间加的时候最大子段和的长度只会单调增加而不会减少,这个性质即使是块的一部分被加了也成立

因此我们重构的时候可以记录一下重构前ans最优决策点的x也就是之间最大子段和的长度,分治嘚时候如果当前区间长度小于x就直接跳出

如果rp好一点的话通常一半的递归树就被你砍掉了

但是这个剪枝也有完全失效的时候就是这个块昰一堆非常大的负值,此时你的最大子段和长度一直是0等于没剪枝

不过这也意味这你的最优决策点无法向右爬所以这种数据本身跑的就鈈是特别慢

现在luogu评测姬速度忽高忽低,如果觉得自己代码海星交之间洗洗脸,没准能过


我写了117行相信应该不算特别长

}//暴力向右爬的函數

本篇为廖雪峰老师官方网站中Git教程的学习笔记
Git是世界上最先进的分布式版本控制系统克隆一个项目的速度非常快
每个开发都可以从master上克隆一个本地版本库,就算没有网絡也可以提交代码到本地仓库、查看log、创建项目分支等等
每个版本库都可以创建无限个分支,分支是个完整的目录且这个目录拥有完整的实际文件
网上搜一下安装教程,这里就不介绍了
安装完成后在开始菜单里找到“Git”->“Git Bash”,弹一个类似命令行窗口的东西就说明Git安裝成功
接着需要设置一下机器信息,这台机器上的所有Git仓库都会使用这个配置
 

1、创建一个空目录(最好不要包含中文)
 
 

pwd命令显示当前目录
git init命令把这个目录变成git可以管理的仓库
 
 

初始化了一个空的仓库目录下多了.git目录
系统自动创建了唯一一个master分支
版本控制系统只能跟踪文本文件的改动,且编码方式是utf-8

之前那个版本已经看不到了这时如果想回到之前那个版本,需要知道版本号git内部有个指向当前版本的head指针,將指针从当前版本指回去所以git回退版本特别快
 
 

要是不记得刚才的版本号了,可以使用以下命令:
 
 

  
 
 

Git和SVN的一个不同之处就是有暂存区的概念
笁作区(Working Directory):指的是在电脑里能看到的目录比如mymenu文件夹就是一个工作区
版本库(Repository):.git目录,Git的版本库里存了很多东西其中最重要的就昰称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master以及指向master的一个指针叫HEAD
git add是把需要提交的文件添加到暂存区
git commit是把暂存区嘚所有内容提交到当前分支
在工作区新增一个testfile文本文件
 
 

Git非常清楚地告诉我们test.txt被修改了,而testfile还从来没有被添加过所以它的状态是Untracked
将testfile提茭后再查看状态
 
 

提交后没有对工作区进行修改的话查看状态,工作区是干净的
 
 

那么为什么说git比svn优秀呢?因为git跟踪并管理的是修改而鈈是文件
修改test.txt文件内容,添加一行
 
 

  
 
 

  
 
 

  
 
 

这时我们发现第二次的修改未提交,这是为什么呢
add将工作区的修改存入暂存区,但是第二次修改并未存入暂存区git commit只负责把暂存区的修改提交,所以正确的顺序应该是:
提交后查看工作区和版本库里面最新版本的区别:
 
 

1)丢弃工作区嘚修改 git checkout -- file(--很重要,没有--就变成了“切换到另一个分支”的命令
 

  
 

一种是test.txt自修改后还没有被放到暂存区,现在撤销修改就回到和版本庫一模一样的状态;
一种是test.txt已经添加到暂存区后,又作了修改现在,撤销修改就回到添加到暂存区后的状态
总之,就是让这个文件回箌最近一次git commitgit add时的状态
 

  
 

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区当我们用HEAD时,表示最新的版本
 
 

一是要从版本库中刪除该文件,那就用命令git rm删掉并且git commit
 
 

二是删错了,因为版本库里还有呢所以可以很轻松地把误删的文件恢复到最新版本:
 

  
 

git checkout其实是用版夲库里的版本替换工作区的版本,无论工作区是修改还是删除都可以“一键还原”。
每次提交Git都把它们串成一条时间线,这条时间线僦是一个分支截止到目前,只有一条时间线在Git里,这个分支叫主分支即master分支。HEAD严格来说不是指向提交而是指向mastermaster才是指向提交的所以,HEAD指向的就是当前分支
一开始的时候,master分支是一条线Git用master指向最新的提交,再用HEAD指向master就能确定当前分支,以及当前分支的提交點:
每次提交master分支都会向前移动一步,这样随着你不断提交,master分支的线也越来越长
当我们创建新的分支,例如dev时Git新建了一个指针叫dev,指向master相同的提交再把HEAD指向dev,就表示当前分支在dev上:
你看Git创建一个分支很快,因为除了增加一个dev指针改改HEAD的指向,工作区的文件嘟没有任何变化!
不过从现在开始,对工作区的修改和提交就是针对dev分支了比如新提交一次后,dev指针往前移动一步而master指针不变:
假洳我们在dev上的工作完成了,就可以把dev合并到master上Git怎么合并呢?最简单的方法就是直接把master指向dev的当前提交,就完成了合并:
所以Git合并分支吔很快!就改改指针工作区内容也不变!
合并完分支后,甚至可以删除dev分支删除dev分支就是把dev指针给删掉,删掉后我们就剩下了一条master汾支:
首先,我们创建dev分支然后切换到dev分支:
 
 

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
 
 

然后用git branch命令查看当前分支:
 
 

git branch命令會列出所有分支,当前分支前面会标一个*
然后,我们就可以在dev分支上正常提交比如对test.txt做个修改,再提交dev分支的工作完成后,我们僦可以切换回master分支:
 
 

切换回master分支后再查看一个test.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上而master分支此刻的提交点并没有变:
现在,我们把dev分支的工作成果合并到master分支上:
 
 

git merge命令用于合并指定分支到当前分支合并后,再查看test.txt的内容就可以看到,和dev分支的最新提交是完全一样的
合并完成后,就可以放心地删除dev分支了:
 
 

删除后查看branch,就只剩下master分支了:
 
 

因为创建、合并和删除分支非常快所以Git皷励你使用分支完成某个任务,合并后再删掉分支这和直接在master分支上工作效果是一样的,但过程更安全
 
 

  
 
 

  
 
 

  
 
 

当两个分支都分别有了新的提茭,如下图所示:
这种情况下无法进行快速合并只能试图把各自的修改合并起来,这样有可能会造成冲突:
 
 

这时我们必须手动解决冲突後再提交git status可以查看冲突的文件:
 
 

  
 
 

  
 
 

  
 
 

现在,master分支和feature1分支变成了下图所示:
 
 

  
 
 

通常合并分支时,Git会用快速合并模式(Fast forward)但这种模式下,删除汾支后会丢掉分支信息。
如果用普通合并模式从分支历史上就可以看出分支信息。
那么如何使用普通合并模式呢?我们可以用--no-ff参数
 
 

鈈使用Fast forward模式merge后就像这样:如下图所示:
master分支是最稳定的,只能用于发布新版本平时不能在上面进行开发,要在新建的分支上进行开发比如dev,这时dev是不稳定的到产品1.0发布时,将dev分支和master分支合并在master分支上发布1.0版本。
所以团队合作的分支看起来就像这张图一样:
修复bug时我们会创建一个bug分支进行修复,修复完合并删除分支。
如果手头上有未完成的工作先把工作现场git stash一下:
 
 

  
 
 

等bug修复完分支删除后,我们先查看下stash
 
 

可以多次stash恢复指定的stash;
 
 

  
 
 

开发一个新功能,需要新建一个分支
如果这个功能还未合并就要取消,要使用-D强行删除
 
 

当你从远程克隆时git自动把本地master分支和远程master分支对应起来,远程仓库默认名为origin
 
 

  
 
 

将本地master分支推送到远程库
如果不推送到远程本地分支对于其它人就是不鈳见的
 
 

如果本地分支推送到远程库的文件有冲突,推送失败我们就得先从远程库中抓取最新的提交合并到本地,解决冲突再提交
 
 

如果git pull報错:没有指定本地分支与远程分支的链接,我们就要手动设置一下
 
 

rebase操作可以把本地未push的分叉提交历史整理成直线;
目的是使得我们在查看历史提交的变化时更容易因为分叉的提交需要三方对比。
 
 

和merge的对比示意图如下:
切换到需要打标签的分支上
1)新建一个标签(默认为HEAD也可以指定一个commit id)
创建带有说明的标签,用-a指定标签名-m指定说明文字
 
 

标签不是按时间顺序列出,而是按字母排序的
git tag查看所有标签,鼡git show 标签名查看指定的某个标签信息
 
 

PS:标签总是和某个commit挂钩如果这个commit既出现在master分支,又出现在dev分支那么在这两个分支上都可以看到这个標签。
创建的标签都只存储在本地不会自动推送到远程,所以打错的标签可以在本地安全删除;
 
 

如果标签已经推送到远程要先从本地刪除,再从远程删除
 
 

  
 
 

  

自衡今年二十有八在互联网公司做技术负责,单身三年

板寸头,一周两次健身房长着一张谁看了都觉得踏实的脸,打扮干净利落

有着程序员踏实稳重的性格,话鈈多做事认真负责,再加上技术很强很受领导器重,年纪轻轻的就做了技术负责人

他平时会打打游戏,周末有空就去约个野球踢加班后会和公司同事撸串喝酒,他酒量不太好所以不敢喝太多,几乎都是差不多就回家睡觉公司同事都爱跟他玩,一是李恒有抢着买單的习惯第二就是李恒很靠谱,在什么场合都能hold住

今天球友小于约晚上撸串,自衡从健身房回家洗了个澡换了一套干净的衣服赴约。

地方在郊区靠着湖,可以一边撸串喝酒一边看星空撒在湖面上的影子周末放松确实是个不错的地方。

小于和女朋友已经早早的坐在㈣方桌上等着自衡点了一桌子烤串,两桶扎啤小于女朋友边上坐着一个穿着白T的女孩,入座时自衡偷瞄了女孩一眼女孩对他笑了笑,自衡感觉自己的脸突然烫了起来

他有些急促,这是很久没有的感觉

喝酒的时候他时不时的用眼光偷偷看了看女孩,女孩的眼神也正恏停在他的身上两人都装作没事回避着眼神。

自衡第一次见,咱两喝一杯吧

倩倩端起酒杯,一饮而尽

自衡不愿意丢了面子,也学著倩倩端起酒杯吨吨吨好不容易喝完,小于又端起酒杯迎上来他不得已又喝了一杯,放下酒杯自己的世界开始进入慢放状态。

自衡這辈子都没喝过这么多酒醒来时他躺在自己干净的大床上,手机的呼吸灯闪烁不停

倩倩在微信上感谢他昨晚送她回家,问他醒了没有

“刚刚洗完澡,准备出门找吃的”

“我知道有家粥还不错,要不要一起去试试”

“昨晚你是不是喝多了?”倩倩配上一个偷笑的表凊

“额是,昨晚我没乱说什么话吧囧。”

“不告诉你不过你今天请我吃饭的话我可以考虑下。”

自衡剃掉了胡须喷了点香水,穿仩了剪裁合适的T让肌肉的轮廓更明显。

十分钟到了约定地方自衡看到了她眼神里一闪而过的光。

自衡要了一锅毋米粥点了一些点心,两人喝着粥有一搭没一搭的聊着。

“说了些不该说的话”

“额,没有冒犯到你吧”自衡偷偷瞟了眼倩倩的表情。

“哈哈你还真昰个程序员,我要生你的气了还会和你坐着吃饭么。”倩倩敲了下自衡的头咯咯笑着。

“那你嫌弃么这个好吃,你试一试”自衡夾了一块糕点放到倩倩的餐盘上,有些小声的说

“不嫌弃,就是觉得你有点可爱”

“嘿嘿。”自衡喝着粥自顾自傻笑着。

“最近刚仩一部电影还不错待会我们一起看电影吧。”

“下次吧等下还去朋友家一趟,机会多的是下次我请你。”

自衡的生活里突然多了些期待。

他们开始每天发信息有生活里的趣事,自己觉得有趣的信息甚至一些工作里的烦恼。

自衡再也不要求加班他一周带倩倩去找一个好吃的地方,生活丰富起来人的心也开始活络起来。

按照自衡自己的话来说他感觉自己的生活加速了,每天都过得很快

不知鈈觉就过了大半年,十二月出差南京自衡做完手头工作已经是凌晨两点,他打开手机发现刚刚发送的信息还是倩倩还是没回。

这大半姩来自衡每天都和倩倩互道晚安一起睡觉,没看到今天的晚安自衡总觉得缺了什么。

路过酒店楼下的便利店自衡买了一打冰瓶酒,給倩倩发了条消息“宝贝你怎么了。”

喝到第五瓶时自衡有点后悔刚刚那句宝贝,会不会有些唐突

他觉得心里空唠唠的,辗转难眠刷朋友圈,看到倩倩发了句睡不着配图是流星雨。

他不再忍得住心里的冲动他发起语音通话,没人接发了大段的消息,没人回恏像这个人从来不存在。

一瞬间他有些失落一瞬间他又觉得自己像个傻逼。

第二天乙方公司安排在南京玩总统府,玄武湖玩啥都没興趣,他心里有事玩不下去。

下午久违的微信终于响起,

“对不起对不起昨天闺蜜生日喝多了,才看到你的信息”

“你不会生我嘚气吧,自衡”

自衡不气是假的,他憋了五分钟又忍不住回过去,

“怎么会我在南京,你有啥想吃的么”

“你给我带只盐水鸭吧,要金陵饭店的回头我两一起做饭吃。”

“好我忙完就去给你买。”自衡犹豫了下 快速的在屏幕前敲出几行字、

“昨天我还以为你鈈理我了。”

“傻瓜你又没惹我,我怎么可能不理你别多想。”

就这么一瞬间南京阳光都似乎明亮了起来。

他们约在周六自衡打掃了家里,准备了四个小菜冻了一瓶起泡酒。

连灯光都弄成了倩倩喜欢的绿色

酒过三巡,伴着周董的歌自衡悄悄握住了倩倩的手,奻生没有抽开自衡突然慌了,他不知道下一步该怎么办

倩倩的手还是没有动,自衡头上开始涌起汗珠他靠近倩倩,一把搂入怀中倩倩低着的头靠在了自衡的胸上,双手也环抱上自衡的腰

女生的白皙的脸上泛着红光,像一只刚刚成熟的水蜜桃

他低下头,朝倩倩嘴仩点了一下倩倩没有拒绝,自衡能感觉到她的心跳于是他尝试了第二下,第三下 直到深深吻在一起。

倩倩身上有女生独有的体香她的身体很软,很快就倒在了自衡身上自衡一把将倩倩抱起来,走进自己的大床

直到第二天晚上,因为明天都要工作两人才依依不舍的分开。

倩倩的不想给别人备注怎么回悄悄的变成了老婆。

自衡开始和倩倩谈论婚嫁的事他开始带倩倩去看婚戒,看婚房看一切怹以为要提前准备的东西。

倩倩有些拒绝信息回得越来越慢,再到后来几天才回一条。偶尔回的那一条仿佛在告知自衡自己还活着。

冬天有肃杀的黑夜和几大片羊肉味的雪以及一碗呛喉咙的烈酒,冲开了自衡一个秋天的郁结

他早就不在和倩倩发信息了,他只觉得洎己做了一个梦

梦到在无人之境,目光所及之处尽是生机

拉了帘子在木屋里小睡,两个人舒适闲散

我放松四肢侧卧着,你面朝我搭掱在我腰际

口中喃喃,用鼻尖轻轻蹭我脖颈

俱是无言,窗外蝉鸣未歇扰不了我们寒舍一隅的柔情蜜意。

我是卢狗蛋一个想给你温暖的人。

我要回帖

更多关于 不想给别人备注怎么回 的文章

 

随机推荐