woc

不讲码德!坏味道偷袭我这个老码农

允我心安 提交于 2020-12-18 13:18:03
作者 | 雷架 来源 | 爱笑的架构师(ID:DancingOnYourCode) 大家闭上眼睛想一下什么是好代码?也许你的脑海中漂浮着一堆词:干净、整洁、命名规范、注释合理、高内聚低耦合…… 人人都想写好代码,因为看好的代码就如同看一位五官端正的女子,会心情愉悦、舒畅;而看糟糕的代码就如同看见腐烂的食物,闻起来也有一股坏味道。 大多数人写的代码不能被称为好代码有两个原因,一是由于自身技能限制,二是很可能他们根本就分不清好代码和坏代码的区别。 本文,笔者将结合日常编码实践,与大家分享一下 常见的代码坏味道。 Long Method(过长函数) 过长函数,简而言之就是函数长度超标了,包括横向和纵向。 为什么过长函数是一种坏味道? 横向过长会导致无法一眼就能看出这行代码的作用 ,需要用鼠标慢慢往后边拖,相信用小屏幕的小伙伴经常会遇到这个问题,拖动的过程会严重影响读代码的效率。 纵向过长其实就是出现了大函数,一个函数的行太多,使得函数难以读懂,代码修改难度大。 那么如何解决过长函数问题呢? 关于横向过长的问题, 一般会在 IDE 中提前配置好最大宽度 ,比如80字符或者120字符(具体根据公司内部规范设置),然后格式化代码即可解决。 比如我们在写 Java8 stream链式表达式的时候可以会很长: List<String> nodes = list.stream().filter()

NOIP 2018退役祭

随声附和 提交于 2020-12-16 23:45:19
Day 0 实在是没啥特别想干的。。。路上看了一下FE的小玉的第四周目的视频。。。然后到了之后整理了一下东西,然后被slr教着学了一下一个叫翻棋的东西,然后立刻就上瘾了。。。然后就听slr先生教我滑铁車。记录一下如何确定自己在本校考试,就是我的手根本伸不进去,结果就抓了最上面的一张。。然后,其实我不会说我是看准了抓的。 试机的时候发现win7,键盘还贼好使觉得很是得劲,然后先来个lca,然后来个dijkstra,然后来个KMP,嗯,没大有问题。看来我记性还不错。 晚上回去看了两集番就睡了。 Day1 早上复习了一下对拍。 然后没有吃饭,根本排不上队,喝了碗汤就走了。 考试发现解压缩密码飞雪连天,完了这不就凉了么。。 看第一题,发现这题我绝对在哪个地方做过(当时还没想起来是noip原题),然后咋做来着,用建文件夹剩的两分钟想出来,打了之后发现过了大样例,嗯,下一个。 看第二题,woc这咋和去年那题这么像啊。。。然后用各种数论方法调调调,发现过不了大样例,觉得要凉,一个小时过去了,cao,还是过不了大样例。怎么办,不过还是有一个小结论的,就是剩下的只能是数列里的。那打个爆搜吧,然后一个爆搜打上去。试试小样例,嗯,过了,试试大的,嗯,过??????了!!!这是咋过去的??试试造个最大的,好,果然T了,然后发现可以加个记忆化,又过了。。。。好,下一个,这题我先拍着。。 看第三题,部分分貌似

PKUWC2019 凉凉记

半世苍凉 提交于 2020-12-12 15:32:49
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=298 height=52 src="//music.163.com/outchain/player?type=0&id=2660317428&auto=1&height=32"></iframe> 请配合 BGM 食用。 菜就是菜,说什么都是借口。 Day 0 前一天先到纪中报道,高铁上打了一会单机膈膜,然后又打了一遍 $FFT$ 板子,就到了中山。 到了后,发现气温骤然升高,马上 脱 换裤子,舒服了一点。然后就被纪中的车直接接到了纪中。 一开始到宿舍。。发现连被子都没有,只有个木板。。。我们戏称比军训还恐怖的住宿环境。 还好后来屈哥联系了一波让老师送过来了qwq 晚上翻看原来写的博客,然后打了几个字符串的板子,就早早睡觉了。 Day 1 上午是喜闻乐见的开幕式,吹了一波纪中是全国最美的学校。(话说纪中是真的超级大) 然后 PKU 信科的几个教授来发言,实力吹了一波后就结束了。 中午回寝室,由于下午是第一场,还是好好躺着休息了一下。 $12:30$ 就去考场,结果等到 $12:50$ 老师才来开机房门放人进去,我就只能打简陋版的配置咯。 开场,先开 $T1$ 。 给你 $n$ 个点 $m$ 条边的有向图(无重边自环),定义一个边集

[BJWC2018]最长上升子序列

别说谁变了你拦得住时间么 提交于 2020-11-29 22:00:49
十分感谢GXZ大佬的讲解,此处致以敬意!emmmm在初学状压DP时就理解了如此精妙的一道题,感到很开森~ $Address$ ##$\color{red}{\mathcal{Description}}$ 现在有一个长度为n的随机排列,求它的最长上升子序列长度的期望。 为了避免精度误差,你只需要输出答案模998244353的余数。 ##$\color{red}{\mathcal{Solution}}$ 那么这道题,作为一道显然不是那么可做的题,我们首先来讲一下如何骗分:$next_permutation$枚举全排列,然后$nlogn$求一遍长度,最终复杂度大约维持在$O(n!\times nlogn)$的水平,看一眼数据规模,好像对于$n\leq 9$的数据,在你的常数小的情况下跑出来时没有什么问题的。 $emmmm$思考一下数据范围,能够用最暴力的方法骗到分的概率极其的低。 于是我们考虑$dp$是否可行。 因为事实上,我们可以看到从左向右推好像不是很可行,于是我们考虑,对于一个排列,我们把数从小到大插入到一个空的数列里面。 那么我们首先令一个$f_i$(放心跟程序没啥关系)表示,在当前已经确定的一个序列里面,从左至右第$i$个数的最长上升子序列长度。基于这个数组,我们再令$maxL_i$表示前缀最小值,即$$maxL_i = max{f_1,f_2...,f_i}$$那么对于这个

TAGNN论文解读——SRGNN的进阶版本

谁说我不能喝 提交于 2020-11-01 03:30:15
hi各位大佬好,我是菜鸟小明哥(其实我也是大佬,哈哈,都是大佬)。 SRGNN 已经 初步完成 实际应用, 效果还好 ,有用的 参考来这里 。据说原paper大佬已经 更新换代了GNN ,也就是TAGNN,望文生义就是“他的GNN”,我啥时候发个“WOGNN”,也就是“我的GNN”,hehe。本文依旧 粉丝可见 ,年底回馈粉丝福利。(不喜欢我翻译的就别看,看过了又瞎BB,你是闲的蛋疼吗?), 代码在此 , paper在此 。 真正意义上的 序列推荐 , SRGNN算上一个 ,从序列到序列,无需考虑用户的id,当然要记住是哪个用户的点击序列,不然怎么给他推(infer阶段)。 For Video Recommendation in Deep learning QQ Group 277356808 视频推荐深度学习加这个群 For Visual in deep learning QQ Group 629530787 视觉深度学习加这个,别加错 I'm here waiting for you 别加那么多,没必要,另外,不接受这个网页的私聊/私信!!! 1-抛出问题,提出解决方案 基于会话的推荐应用很广,但他们的那些方法将会话压缩为一个固定的向量表达,而没有考虑预测的目标item。这种固定的向量将会限制推荐模型的能力,也就是目标item的多样性和用户的兴趣

HNOI2020 自爆记

荒凉一梦 提交于 2020-10-03 16:13:23
序 一年前,我在 HNOI 2019 的赛场上,折戟沉沙 一年后,我从倒下的地方爪巴起 Day 1、Day 2 双双挂分,两天加起来挂了 120+,造就了史无前例的奇观 我成功了。我不再是以前的那个我了。 Day 0 ga**ic.** 用 Luogu 云剪贴板写了发 LCT,萎成了屑(flag。 下午运动了两下然后很早就睡了。 Day 1 看完了 T1 和 T2 的心理活动: 当年卡老师 30 分钟爆切白兔之舞,我 30 分钟把这个套路 T2 切了再随手切个 T1,不 是 问 题。 单走一个多项式?傻*,直接拆开走人。 这个组合数拿个吸收恒等式搞搞……阿姨你快点,这 30 分钟都过去 25 分钟了,阿姨你吸收恒等式都不会了吗。。。 柿子推出来直愣眼啊, \(\mathcal O(m^3)\) 是什么哈批玩意,出题人你 **,这 \(m\) 只有 \(5\) 和 \(1000\) 是几个意思 /baojin 忍住要 /px 的欲望,然后又倒腾了一个多小时才切。。。 T1 莽了个三分,结果不仅是两个 \(\log\) 而且样例没过。 仔细思考发现这玩意有平台,所以就考虑离散化之后三分下差值 (喂你都这么想了还不准备写个二分吗 。 然后过了大样例就没 管 了。。。 d1t1wdnmdg(考后爆 10 选手的悲愤 T3 瞎写了一通,过了样例就将近下考了,于是稍微检查了一下。

酱油 Noip2018颓废记

社会主义新天地 提交于 2020-08-19 23:00:27
也不知道写一些什么了 凑和着写写吧 最近十分的¥#&(^ ……#%!*%¥^#$# Day -1 上午考了一场试 就 \(TM\) 考了60分 好不容易积攒起来的信心啊~~~~~~ 就这么垮了~~~ 下午每一个人把考前注意事项好好的说了一下 大抵都是什么 1.不开 \(long\ \ long\) 见祖宗 2. \(memset\) 能不用就别用 3. \(freopen(".in","r",stdin)\) 一定要写对 4.一定好好读题 5.别太透彻(然而. . . . . .往下细说) 6.好好休息放平心态 . . . . . . 后来 学校一人发了一个大红兜子 里面有 四个面包 两瓶水 两根火腿肠 两个卤蛋 两盒奶 后来学校通知我们这是明天的午饭以及晚饭 然后也没有什么心思学习了 只有颓颓颓颓颓 晚四教练走了之后 跟 \(cdy\) 玩了会儿双人羽毛球(当然是游戏辣) (总之就是把可以掉人品的都干了) \(9:30\) 回去收拾东西 又聊了半天 (我军士气良好) 到了 \(11:00\) 还是睡不着 出去上了个厕所(逃~~~) \(Day\ 0\) 早上四点多就 \(TM\) 醒了 翻来覆去睡不着 \(5:40\) 集合完毕之后 上车 出狱 上了车之后 我又跟 \(cdy\) 坐一块儿$\ \ $(捂嘴偷笑~~~~) 由于我老是犇雷 所以 \(cdy\) 远走高飞了$\ \

NOI2020 划水记

允我心安 提交于 2020-08-18 11:48:44
Day -? - 2020.7.? 在hb的强烈建议下,没错,我买了D。 啊啊啊啊啊2wRMB啊!还不知道是线上线下……………… u1s1,我也不知道我这个初二狗买D有啥意义…… Day -26 - 2020.7.20 哇塞,发 公告 了!线下!hooray! 然后选择了住校。 Day -17 - 2020.7.29 ls开了个5min短会……听说D、E强制住校? Day -5 - 2020.8.10 今天是1919.8.10的101年后 去了明gay医院做了核酸检测。抽样两秒钟,难受一小时。 Day 1 - 2020.8.16 来长沙,报到。(所以有人把今天叫做Day 0,甚至有叫做Day -1的) 早上到机场刚过了安检就碰到了dy和spl。dy是本来就知道的,但是有spl!这下好了,中午咋吃饭不用愁了。坐着等了一会儿ls给spl打电话,说请我们吃老乡鸡! ls的饭好像有点问题,就每个人白得了一杯饮料,我的是可乐。 然后要扫苏康码和湘康码(不知道叫啥,我自己取的名字),我拿出来提前打印好的码,ls露出了/jk的表情: ls:你手机呢? 我:没带。 ls:你再说一遍? 哎无奈/wn,无手机党咋活啊。 下午飞到长沙一中之后签到,拿物资(结果ls听成了工资)等等,就进寝室了。我竟然跟djq和csy这两个神仙在一个寝室!我要被吊打了!寝室差评!只有床和厕所,连桌子都没有,洗澡也不方便

NOI2019 退役记

怎甘沉沦 提交于 2020-08-14 11:34:39
Day -1   颓。 Day 0   颓。热。 Day 1   颓。热。打蚊子。   笔试勉强阿克。试机写拙劣的拆分写了一小半弃了滚回去颓。然后就一直颓。不会交互打铁咯。 Day 2 2.5h写完t1敢信。t2吐槽了半天出题人放那个15分的部分分是干啥的出来发现会dp的都把这个分拿了。t3不会多项式做法退火一分没有敢信。 100+45+20=165提前退役。ctf队爷稳了。 Day 3 博物馆有啥好看的啊?途中被某神仙迫害两次公开处刑无比自闭。回来一直颓。 Day 4 这t1不是裸的kdt优化建图?woc跑的过吗?woc空间开不下?我不把边建出来不就完了。随机数据1.7s?剪剪枝卡卡常就1s以内了。40min写完结果改到2h。假装能过。t2只会暴力,滚去看t3,一眼也只会暴力。那就退役吧。t2写个40pts,t3写个20pts,想了半天终于会了一个无比麻烦的多16pts做法,于是100+40+36=176,算是把我能力范围内的分拿满了。 au线477,讲道理day1如果把我能力范围内的200pts拿满,我还真靠A类5分卡线进队了。当然对于一个只有ag实力的暴力选手,这也没什么好遗憾的。 Day 5 滚回去学文化课辣。 来源: oschina 链接: https://my.oschina.net/u/4338930/blog/4358895