shiruku.第三方登陆

听说造了登陆之后就没人愿意来评论了. 于是窝决定去造个第三方登陆. 于是花了一晚上造出了oauth组件. (其实有sdk的啊摔) 于是有了github登陆. 其实还有企鹅啥的. 然而企鹅就是强行降低网站的逼格这怎么行呢. (其实是企鹅强行要求sdk懒得搞了) oauth的登陆简单过程是酱的(有点三次握手的感觉) 网站要去第三方申请一个application. 然后会得到client_id和client_secret. 然后把登陆的链接接到指定的页面去, 用get把client_id和泥要哪些数据传过去. 网站会和用户交流人生(登陆). 然后会用get方式调用callback, 这个是在注册application的时候指定的. callback的get参数里有一种东西叫code. 这东西要用. 用code来换access_token. 把code和client_id和client_secret一起当post参数传给第三方指定的第二个url. 如果没错会返回access_token, 这玩意是真正用来换数据的. 用access_token再去第三方提供的第三个url来get用户的数据, 比如avatar_url什么的. 那这和登陆有啥关系呢? 在第3步的时候如果泥得到了正确的access_token, 泥就可以认为用户正确登陆辣~ 然后就发生了一件鬼蓄的事情: 窝在去和github换数据的时候, 莫名其妙地就被403了. 大概就是酱(get为粟) function getData($url){ $opts = array(\'http\' => array( \'method\' => \'GET\' ) ); $context = stream_context_create($opts); $result = file_get_contents($url, false, $context); return $result; } 赶紧google了一下发现github会按照心情拒绝php发送的请求. 于是窝假装窝不是php而是善良可爱的少年就好了啊2333.于是强行骗人. function getData($url){ $opts = array(\'http\' => array( \'method\' => \'GET\', \"header\" => \"User-Agent: Mozilla\" ) ); $context = stream_context_create($opts); $result = file_get_contents($url, false, $context); return $result; } 假装窝叫Mozilla....

February 21, 2016 · 1 min · laekov

shiruku.缓存

之前版本找list都是去硬盘里枚举一遍文件. 本地我有ssd速度还行. 传到服务器上就慢暴了. 因为有导入之前的博文加起来也有几百篇. 枚举一遍就要开将近1k个文件. 这里O(1000)和oi里的概念完全不一样啊ovo几乎就是要几秒的意思了. 然后没有发现php怎么把东西常驻内存里. 于是灵机一动拿单个文件来存常用的数据. 然后就叫它伪缓存好了. 按照时间和需要对缓存进行更新, 每次查询所有东西的list只需要开一个文件. 果然就快多了好感动23333.

February 20, 2016 · 1 min · laekov

Initial Commit

努力淦了几个月php, 终于在寒假结束前搞上线了. 开心. 之前写的东西实在太丑不能忍了所以造了个新的. 但是又舍不得万网的免费空间. 其实还有很多东西没写. 页面底部有github链接跪求star. 第三方登陆还没时间做. 私戳laekov得邀请码. 以及laekov真的很认真的做了UI. 虽然最后的结局是laekov在报复社会. 事实上laekov不具有造出好看的页面的能力ovo 于是可以愉快地log down一些其它的东西了好开心w. 虽然适配服务器有些周折ovo 于是挺晚了呢…明天再接着写ovo 接着写 原来的博客主要是写题解啊. 构架的时候就没想过要搞其它飞机. 于是后来就啥都干不了了. 想加个版块都挺痛苦. 另外前端后端的代码夹杂在一起不开心. 要api化(向czr学习). 以及把事情扔给前端做. (于是现在加载速度感人) 强行把php当nodejs用是什么样一种体验? @我自己ovoovo 反正每月10G的流量总用不完…所以就加图好了. 然而丑哭了qwq怪我喽. (找一个做美工的妹子当女朋友是laekov的人生追求23333)

February 20, 2016 · 1 min · laekov

Proof for flag theory

手机写东西好蛋痛。补充一些flag学说的证据。 Yzy的物理考试 YZY:我半期物理连40分都考不到了。 结局:Yzy得到了足够高的分数于是年级排名20+。 星期三 卤素: niuzyi中午去打球! 结局:中午gorge过生日。niuzyi孤独地和学弟玩耍。 星期五 卤素:中午去打球! laekov:今天没人过生日吧。 结局:中午,下,雨,了。 (未完待续)

February 20, 2016 · 1 min · laekov

某奇怪科幻小说集的奇怪读后感

(三天看完一本大刘的科幻小说集系列 “上帝确实掷骰子.” 那些可能性都真实存在. 在另一根纤维,hja在2015年7月18号晚上复习了霍夫曼编码. 在又另一根纤维,hja于2015年7月19日晚上,喝光用身上所有现金买的几箱啤酒之后,纵身跃入滚滚钱塘江. 在又另一根纤维,hja在2013年初没有了解cdqz,果断留在jxfls,2013年11月再夺noip提高一等,功成身退,变身人赢. 在又另一根纤维,hja于2013年4月某天深夜,坐在jxfls3号公寓604寝室1号铺,用一把平常用来削苹果的瑞士折叠刀割断了左手桡动脉.室友次日醒来才发现红色的血液染红了寝室的墙壁和天花板. 在又另一根纤维,hja在2010年5月小升初考试时因为右手骨折未愈,用左手答题,未能考中.进入某街边初中.2016年1月13日晚上11点,hja亲手用手术刀切下了一手栽培自己的某黑老大的大腿,因失血过多,受害人准确地于3600秒后身亡.hja从此没有了人性,若干年后在外星人入侵时,果断摧毁了地球文明. … 从前只是存在于yy中的东西.突然想到其实它们都以某一种形式真实地存在.只是目前无法探测到. 我的世界只有3.5维呢. 也许哪一天就能摸到了呢. 真开心 Historical Comments Unknown friend at 2016-01-21T23:02:01 @20160113_sifi: 考前留名 —- Flaze Unknown friend at 2016-01-21T23:02:01 @20160113_sifi: 考前留名 —- Flaze

January 13, 2016 · 1 min · laekov

About the case of QVOD -- Law and politics

(Excuse my unreadable English, but I do not wanna my site to be shut down the next day for a sensitive word filter in Chinese About QVOD It took risk to make money. Now, it is time for it to pay its bills. Now that it benefitted from 18x videos which are forbidden by Chinese law, it is certainly to be punished one day. Nevertheless, as a veteran who has been using P2P to seek for some unsuitable videos for years, I am surely unhappy about this....

January 10, 2016 · 3 min · laekov

无向图定向计数最值脑洞

题:给一张无向连通图.给每条边定向.要求有且仅有1号点入度为0.没有环.求极长链条数的max,min. 做法:随便开个脑洞.已经不会想算法的我也不知道怎么解. ps,有人知道杂做麻烦和窝说一声qwq

December 22, 2015 · 1 min · laekov

俩无聊的图

无聊的匹配 有个二分图,边价值∈(0,+∞).求一个匹配使得∏边价值最大. 做法,把所有权值取个ln. 变式,好学的lyzy同学问,能不能把权值范围扩展到R呢? 窝怎么知道. 无聊的证明 高三有一些班,一些物理老师,一些化学老师.每个老师教一或两个班.一个老师一个晚自习只能给一个班上. 求证:对于两个晚自习,一定存在一种安排方案使得每个班恰好一样一节. 证法,窝怎么知道. 随便口糊一个,班当点,物理老师当蓝边,化学老师当红边.肯定没奇环?(雾 Historical Comments Unknown friend at 2015-11-26T22:43:53 @20151124_bhonbig: 2333 —- laekov Unknown friend at 2015-11-26T22:43:53 @20151124_bhonbig: 2333 —- laekov

December 21, 2015 · 1 min · laekov

ovoo solution

一点闲话 感觉这题好弱啊.应该有一堆神犇能秒吧. 取模是为了避免输出long long的问题.不知道有没有人中间就取模了2333. 这题的idea源于wc2015的k小割.考场上写了良久最后mle. 于是我决定这题既不卡空间也不卡时间. 是不是感觉我的题比ioi和zyf的题都良心啊hhh 测试点1-6 这六个点的权值和非常小.于是可以树形dp.用fi,j表示以i为根的子树中权值和为j的方案总数.于是可以dp一下就得到答案. 测试点7-8 接下来的点都是大数据了,然而还是有一些部分分. 比如这个. 没有题的一条链情况比这个题更简单了吧ovo 测试点9-10 这是最简单的菊花图ovo似乎就是k小割的弱化版啊.做法比较多喽. 介绍一个叫做学姐二分的方法.二分一个答案,然后强行dfs方案.如果总方案数大于k就直接结束.这样是可以保证复杂度的TAT 测试点11-12 一条链变成两条链了.一样的二分答案然后枚举一边二分另一边嘛. 剩下的测试点 这些点没办法用奇怪的方法了吧?有人用奇怪方法黑过去的和我说一声ovo 考虑当前如果已选的某个点集S,我们也把它叫做一个状态. S可以向S中任意点的没有在S中的儿子扩展.设扩展后的状态叫S’.(它可能有很多个) 不难想到,已知前k小的状态S1 .. Sk后,第k+1小的状态一定是S’1 .. S’k中权值和最小的一个. 于是我们就是要维护当前所有状态的可扩展的状态. 对于每一个状态,用一个可持久化堆来记录它能扩展到的所有点,然后取其中最小的一个加上它本身的权值和扔进外层的堆里. 那么每次外层堆里的最小值就是第k+1小的状态. 那么找到k+1小状态后,就要将这条边从原状态中删除.然后对于新扩展出来的状态,把新扩展出来的原树上的点的所有儿子也扔到这个状态的堆里就好了.注意有的点的度数会很大,所以每个点的儿子本身就要用可合并堆来存. 然后直接找下去直到扩展出第k小的状态就行了. 以上所有操作的时间复杂度都是O(log(n))的,所以总复杂度是O(k*log(n))的. 另一种思路 上面提到过的"学姐二分"也可以应用到这里.因为我也没写过所以不作重点介绍了.大家可以自行思考一下. 劼司机的思路 (苣蒻的出题人并不能理解这种做法,你可以去找劼司机本人讨论ovo) 就是把树画到平面上。。 然后建个对偶图 对偶图里每条边的边权为他子树里边权和 也就是。。 在对偶图里走过一条边,等于把这条边下面的子树砍掉。。 然后就没了。。。 吉利就是这么虐人的! 松爷好强!

December 21, 2015 · 1 min · laekov

期望题

上厕所的时候的脑洞. hja面前有一排无穷多个包间,门都是关的.每个门独立地以p的几率里面有人. hja挨个拉门直到拉开一个没人的包间. 求拉门次数的期望.(似乎还可以平方的期望,立方的期望,k次方的期望ovo) 做法:差比数列求和加极限.水. 如果出成oi题似乎很容易被卡精度水?那就剩余系吧.(剩余系似乎是解决有理数精度问题的神器) 唉已经弱到不行了. 然后吃晚饭的时候. oyrs表示,你拉上50个门,前50个门里的人还不出来? lyzy表示,cyl同学不是要把cs底坐穿么? hja表示,%_%今天作业好多啊. btw发现∑i*Cni可以除一个2n变成期望问题ovo也许有前途? 唉窝太弱辣.力学没救了.立几没救了.怎么办.

December 18, 2015 · 1 min · laekov