| 法法's profile法线生长亿千万(原孙武松的斩魔刀)PhotosBlogLists | Help |
法线生长亿千万(原孙武松的斩魔刀)GOD'S IN HIS HEAVEN, ALL'S RIGHT WITH THE WORLD. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
友情链接
《武松之书》续
神句日记
与游戏有关
《忍》有关的链接
《怪物猎人》有关的链接
《大神》有关的链接
《新鬼武者》有关的链接
|
July 01 《青春梦工厂》《青春梦工厂》是一个叫“奸淫”的人推荐笔者(笔者即法法——法法注)看的一部电影。 一个有着如此低俗名字的人推荐了一部有着如此恶俗名字的电影,这本身就是一件非常靠谱的事。 但《青春梦工厂》只是大陆版的叫法,香港原版的名字就俩英文字母——《AV》。 一个叫“奸淫”的人推荐了一部叫《AV》的电影,这才是最靠谱的。 本着笔者一直以来的观影作风(即“不剧透,不分析,不解释,信春哥”——笔者注),剧透欠奉,分析欠奉,解释欠奉,原地复活。 只贴让笔者回味无穷的那段Uncle Rap,以激发同看此片者之共鸣。 You upset your Uncle! You upset the Hong Kong people! And all the Hong Kong Uncle! Where's your dignity, huh? Where's your dignity? All you want is nudity, sexuality, "Sex and the City"! You fucking fool generation! You don't know, you don't know what’s you are doing! 还有什么能比一个导演拿自己的片子做的MAD更神呢?
PS1:Too simple, too naive. ——该片导演彭浩翔的另一作品《大丈夫》中的台词。 PS2:信春哥,投稿过审核——《游戏人》第三十三辑:《EVA》中若干谜题的补完。作者:首斩婆娑罗,孙武松。已上市。 June 13 文盲软件绿坝今日笔者(笔者即法法——法法注)有幸拜读了绿坝屏蔽的色情关键词列表,大开眼界。 在这份列表中,笔者学到了海量的笔者平生从未听说过的新潮色情词汇。 这让之前一直以很黄很暴力自居的笔者深深的意识到,原来这个世界上真是黄外有黄,暴外有暴。 另外这份列表也让笔者不得不对笔者这几十年来的人生进行深刻反思。 笔者要反思,这几十年来,笔者的“爸爸”、“表弟”、“表哥”、“表姐”、“表妹”、“表嫂”、“表兄”、“表姊”都做过什么。 与之相对的,笔者也不得不面对笔者作为或将来可能作为别人的“爸爸”(一种未来极有可能的情况——笔者注)、“表弟”、“表哥”、“表姐”(一种未来极不可能的情况,女字边的下同——笔者注)、“表妹”、“表嫂”、“表兄”、“表姊”而被人反思的尴尬处境。 最后,笔者想说的是,为什么“肏”和“屄”不在列表? 原来比起流氓软件,绿坝更是一款文盲软件啊! May 16 谁盗了我哥的QQ下午,QQ上,跟我哥。 24k纯小伙 16:59:54 在吗 法法 17:00:13 恩 24k纯小伙 17:00:24 你能不能在淘宝上买东西、 法法 17:00:41 能 法法 17:00:49 你没信用卡? 24k纯小伙 17:00:53 恩 24k纯小伙 17:00:59 你帮我买点东西 我明天给你钱 法法 17:01:03 哦,那我帮你买,但是我卡里没钱了 24k纯小伙 17:01:13 还剩多钱 法法 17:01:29 还剩两三百吧 24k纯小伙 17:01:59 那你看看300能不能够 法法 17:02:15 你买的东西多少钱 24k纯小伙 17:02:45 300的 24k纯小伙 17:02:47 够吗 法法 17:02:53 不知道啊。。。 法法 17:02:56 我现在也没法查 24k纯小伙 17:03:06 哦 那你去帮我买吧 24k纯小伙 17:03:09 试试 法法 17:03:24 地址发过来 24k纯小伙 17:03:26 http://item.taobao.com/auction/item_detail.jhtml?item_id=342d6abf99ac1b4c1a6f88a5bf45bfbf&x_id=0db2 法法 17:03:57 你不先问问有没有货奥? 24k纯小伙 17:04:24 是自动发货的 24k纯小伙 17:04:32 你填信息 拍好付款 法法 17:04:35 好 24k纯小伙 17:04:44 他冲上了我告诉你 你再给他确认好评 到此为止,事情都显得很正常。 同时笔者(即法法——法法注)也来到了付款的最后一个页面,同时鼠标指向了“确认付款”那个按钮。 大概就因为在这段对话之前刚刚在震组看了一个帖子,说的是谁谁谁手机被偷了,偷的人给手机里的“老婆”发了条短信,问他们家银行卡密码多少,“老婆”就回了,然后钱就被人取走了。 于是我也不知道哪里突然多出来个心眼(防止弹刀——笔者注),就有了下面这段聊天记录。 法法 17:04:48 你妈叫什么名 24k纯小伙 17:04:59 什么? 法法 17:05:02 你妈叫什么名 24k纯小伙 17:05:05 你是不是东东 法法 17:05:06 你爸叫什么名 24k纯小伙 17:05:08 问这个干吗 法法 17:05:21 我小弟叫什么名 法法 17:05:26 你随便回答一个问题 24k纯小伙 17:05:45 问这个干吗 法法 17:05:49 废话 24k纯小伙 17:06:08 靠 24k纯小伙 17:06:17 那你问这么多废话干吗 你不知道吗 24k纯小伙 17:06:21 还用问我 法法 17:06:30 你不回答一个我不给你买 法法 17:07:39 赶紧滴 24k纯小伙 17:07:41 不买算了 24k纯小伙 17:07:43 我是王浩 法法 17:07:49 我当然是本人 法法 17:08:07 你不信你小弟有这心眼奥? 24k纯小伙 17:08:20 晕 法法 17:08:28 你就说我妈叫啥 法法 17:08:29 行了吧 法法 17:08:42 或者我爸叫啥 24k纯小伙 17:08:48 你妈叫啥不知道 法法 17:08:55 我爸 法法 17:10:47 你得证明一下你是王浩吧 然后就下线了,再没说话。 直到最后我也没觉得这人可能不是我哥,而且可能是我做的太过了,把我哥惹了? 毕竟他说自己叫王浩,毕竟他知道我小名东东(实际上是“冬冬”——笔者注)。 而且最重要的,还他妈的开始担心我是不是东东本人了! 但震组那个帖子依然历历在目,而且知道我小名也很有可能是因为我哥在QQ里改了我的名字,所以到最后我还是没给他买。 不过我还是立刻给我哥发了条短信求证,结果晚上我哥才回我,说那人不是他。 于是,笔者平生第一次被人骗走300块钱这件事胎死腹中。 虽然整个过程中充满了匪夷所思的误打误撞情况:可能我问我哥那些问题纯粹是出于好玩,可能没看到震组的那个帖子也不会想到问他问题。 无论如何,我把这个骗局识破了。 当然这是正面的说法,反面的说法是:无论如何,这个骗局骗过了我,却没骗走我的钱。 仔细回味一下,笔者觉得其中倒是有许多值得借鉴的地方。 比如笔者在巨乳狗子的群里贴出聊天记录前半段之后,我那个二二呼呼的碾黏就说:我觉得这人是你哥,你把你哥耍了。 当我那个傻逼呼呼的碾黏看到聊天记录后半段之后,就自重的睡觉去了。 最后笔者在此求人肉此人“区/服:125区江山美人 游戏角色名:小神仙”,虽然笔者也不知道是啥游戏。 PS:我哥就是公安局的,如人肉出了此人,笔者将向此人发去贺电,并预祝躲猫猫成功。
PS2:2008到09赛季英格兰足球超级联赛冠军——曼彻斯特联队(提前一轮夺冠——笔者注)。 May 12 同济嘉定四十大干过人工湖里撒过尿,路边花坛拔过草。 跨线车上挨过刀,女生浴室洗过澡。 寝室里头喂过猫,校区里头寻过宝。 储藏间里K过歌,大马路上赛过跑。 河边草地拥过抱,嘉实宾馆打过炮。 黄渡镇上买过车,嘉定镇上唱过歌。 黄渡镇上吃过鸡,安亭镇上洗过脚。 男生打过太极拳,女生练过健美操。 打过黑衣学姐主意,要过黑姐手机号。 八过人家小情侣,吃过蒸饺店的醋辣都要。 臭水沟里捞过鱼,青草地上抓过鸟。 寝室装过空调,魔兽干过通宵。 黄渡中学踢过球,黄渡小学踢过馆。 喝过聚友轩的酒,吃过王阿姨的饭。 王子发廊理过发,挨过黄渡黑帮砍。 十号楼前回过头,图书馆里搭过讪。 陆安线遇过土匪,北安线见过痴汉。 等车等过俩小时,上车站过二十站。 骂过同济大学,骂过嘉定校区。 骂过吴启迪,骂过裴钢万钢。 April 30 我的十六号我的楼我的寝室在十六号楼。十六号楼很和谐,很有爱。 首先,从结构上来讲,十六号楼采用了三单元式横向结构,也就是说整幢楼被水平划分成三单元,单元与单元之间互不联通,只能移动。 这就在很大程度上遏制了同一楼层间打架斗殴事件的发生,因为如果有一天你想和隔壁的人干一架,但考虑到你俩不在同一单元而且你住六楼,你爬下爬上两个六楼气喘吁吁来到对方房间的时候,对方却是以逸待劳,这就让自己处于了很大的劣势。当双方都这样考虑的时候,架便打不起来了。 然而另一方面,却是单元内的战乱不断。我一度怀疑十六号楼单元内部的镂空结构有两个作用:其一,方便同学进行不同楼层间的打架斗殴;其二,方便不明真相的群众进行围观。 我之所以这样说,是因为十六号楼里面经常可以看到有人在A楼纵身一跃来到A+B(B属于-3到+3半开半闭区间)楼,然后开始打架斗殴。这时闻讯而来的人民群众纷纷在自己的寝室门前开展大规模、超大规模、巨大规模的围观活动。这些不明真相的群众拿出了伪球迷看欧锦赛时的精神风貌,带着瓜子、啤酒、三聚氰胺和三聚氰胺,有说有笑有打有闹。打架斗殴的流程大概是这样的:其一,以一句“操”为开场白;其二,“PIA PIA”一顿打;其三,“刷”的一下血溅白墙;其四,“嗖”的一声横尸飞出;其五,“肉”的一声顺天井摔到楼底;其六,砸爆几个楼底乱堆乱放的暖水瓶,几声“BIANG BIANG BIANG”久久回荡在楼中;其七,“其六”处有一个“好”,围观群众心领神会开始鼓掌欢呼,高喊:好球,托雷斯! 以上内容也解答了我曾经百思不得其解的一个问题:为何十六号楼的人口流动特别频繁呢?而且经常有同学无缘无故人间蒸发(比如我去年的隔壁和隔壁的隔壁)。 原来都是因为结仇而被做掉了。 说到这里,我就要提一提我现在的隔壁和隔壁的隔壁。总的来讲我现在的隔壁和隔壁的隔壁比之其前任更加和谐更加有爱,故而我更愿意称呼其“骂了隔壁”和“骂了隔壁的骂了隔壁”。先说骂了隔壁,骂了隔壁是一个精壮的大龄男青年,看着就虎逼朝天外加火力壮,故而推测其对A片的需求量非常大。但是事实证明这个推测是不准确的,实际情况是其对A片的需求量——非常非常大。我和侯哥(我室友——笔者注(笔者即法法,下文同——法法注))跟骂了隔壁一起用的网,所以根据长年以来对端口映射状态的观察,掌握了大量的第一手数据,总结出骂了隔壁万年不关的软件Top 10:其一,迅雷.exe;其二,BT.exe;其三,电驴.exe;其四,快车.exe;其五,1G黄片任你下.exe;其六,10G黄片任你下.exe;其七;100G黄片任你下.exe;其八,1T黄片任你下.exe;其九,10T黄片任你下.exe;其十,反正就是任你下.exe。 每当看到骂了隔壁这么不自重的时候,我和侯哥就义无反顾的关闭UPNP,断线重启路由,可以换来短暂的一段时间内顺畅的网速。幸亏隔壁不知道有UPNP这东西,感觉下载速度慢了也只能硬挺着,不然这几个月的网费我和侯哥打死也不会给他。可见掌握一点网络技术的重要性有多么高。 接下来该说骂了隔壁的骂了隔壁了,骂了隔壁的骂了隔壁是一个大胖子,用侯哥的话讲,叫“大盼子”,因为温州普通话是我们寝室的官方用语,所以久而久之我也习惯说大盼子了(下文将统一称呼其为大盼子——笔者注)。大盼子是一位时代的弄潮儿,他引领了十六号楼一波又一波的时尚潮流——就是大小便不冲水。从那开始,仿佛一夜之间,十六号楼就成了屎的世界,尿的海洋。 有一次我在洗手间刷牙,大盼子踱了进来,对着小便池刺刺刺一顿尿,没冲水,然后朝着我甩了几下鸡吧以表明自己时代弄潮儿的身份后缓缓走开。 有一次我在洗手间洗脸,大盼子踱了进来,对着地上刺刺刺一顿尿(这次就更没必要冲水了),然后朝着我甩了几下鸡吧,缓缓走开。 有一次我在洗手间洗衣服,大盼子踱了进来,对着大便池扑哧扑哧一顿拉,没冲水,甩鸡吧,缓缓走开。 有一次我在洗手间不知道干啥(干啥已经不重要了——笔者注),大盼子踱了进来,对着小便池扑哧扑哧一顿拉,甩鸡吧,缓缓走开。 其实大盼子是个随意流。 就连骂了隔壁的外校某同学过来暂住几天的功夫,也对我十六号楼的潮流崇尚不已。那次我在洗手间刷牙,某同学踱了进来,那天小便池堵了(大盼子往里面拉屎能不堵么——笔者注),里面的盛满了屎和尿。某同学就对着那个满满登登的小便池刺刺刺一顿尿,甩鸡吧,缓缓走开。 十六号楼里另一道奇特的风景线就是“门”。这让我首先想到最近一部叫做《肛之恋茎束湿》的新番(《钢之炼金术师》的续作——笔者注)和一部叫做《黑之契约者》的旧番,里面也都不约而同的有“门”这样一个概念,搞的神神叨叨、傻逼呼呼、神神叨叨的。比之十六号楼的门,那可真是相形见绌太多了。 十六号楼的门是一个集合,集合中的元素就是每个寝室的门。按照寝室的编号,每一扇门表示一个音阶。这样,十六号楼的每个单元可以表示6*4*5=120个音阶。整个十六号楼就是一个有着360个音阶的气势恢弘的乐器。比如我们二单元,就负责C大调和D小调。我说过,十六号楼内部是一个镂空的结构,非常通风,故而空气流动非常剧烈。因此只要把门打开,门就可以利用风能做简谐振动。如果把阳台的门也打开,产生对流,那随之产生的是门的共振,此时门的能量级达到最大,音阶最准,音量最大。 虽然微观上每扇门的运动是无规则的,有时候还会发出“BIANG BIANG”的不和谐音符,听上去很像“逼样 逼样”,我可以负责任的告诉你,那是你的幻觉,其实人家发的音是“Beyond Beyond”,但宏观上仍不失为一首优美的旋律。更有细心的听众总结出演奏频率最高的曲目Top 3:其一,纤夫的爱;其二,走进新时代;其三,凤凰传奇。 总的来说,十六号楼作为一款梦幻级的乐器,不仅有演奏之功能,还有催人起床、防止懒觉、催人起床以及防止懒觉之功效,故而深受广大同学欢迎。 关于十六号楼、骂了隔壁、大盼子以及门,大概就是这样了。 这就是我的十六号我的楼,简称我的十六号楼。 住在这样一个和谐而有爱的十六号楼,我傲娇!
后记:至截稿时止,笔者又用笔者仅有的一扇门为广大同学人肉演奏了一曲《草泥马之歌》,催人奋进,催人向上,催人起床。起床看西班牙打欧冠!起床看好球托雷斯! April 22 阿尔沙文到此四球截止比赛上半场,利物浦0:1阿森纳。 截止比赛六十分钟,利物浦2:1阿森纳。 截止比赛七十分钟,利物浦2:3阿森纳。 截止比赛七十五分钟,利物浦3:3阿森纳。 截止比赛九十分钟,利物浦3:4阿森纳。 截止比赛结束,利物浦4:4阿森纳。 角球比,利物浦两位数,阿森纳零。 阿尔沙文独中四元。 利物浦主场仅收获一分,在曼联少赛两轮的情况下与曼联同分。 利物浦虽净胜球多于曼联,但在联赛剩余轮数已屈指可数的情况下,让曼联还有一负一平的优势,联赛冠军希望已越发渺小。 另外按照阿尔沙文本场比赛的表现来看,欧冠不能打对于曼联来说真是一大利好消息。 出于一个临时客串的阿森纳球迷立场来说,笔者对本场比赛感到欣慰。 出于一个临时客串阿森纳球迷的曼联球迷立场来说,笔者对本场比赛感到满足。 出于一个喜爱足球运动的球迷角度来说,笔者对本场比赛感到内牛满面。 就像转播解说在比赛结束时说的那样:实在太精彩了。 笔者在此还要加一句:利物浦实在太野了,沙皇陛下万岁万岁万万万岁。 接下来就看今晚曼联的了。
后记:阿尔沙文在离开安菲尔德之前,特地跑到球场的围墙边上,用小刀刻下八个字:阿尔沙文到此四球。 April 09 劳资不依USACO 3.1.3 Humble Numbers,写了两天的题目。 一开始就没去看网上的分析,闷头写了N久,写到曼联都二比二了,还是最后一组极限数据超时。 晚上绝望之下看了网上的分析,跟笔者(笔者即法法——笔者注)的方法同步率0,笔者心想:既然自己想出的方法都做到只差最后一组数据了,就算cheat也要把它过了! 当然这是积极的说法,消极的说法是:你给笔者两个胆也笔者不敢cheat啊! 不过笔者对于网上千篇一律的解法确实没什么兴趣(都他妈抄USACO的分析或者递归的抄那些抄了USACO的分析的人——笔者注)。 最后经过周密的分析与实验,得出结论是原来的方法对排序的调用太多导致时间复杂度较大,针对此进行优化,尽可能利用已有的顺序信息缩小排序规模,最后终于AC。 Executing... 具体思路笔者就欠奉了,有需要的可以小窗,仅附饱含血泪的代码如下: /* #include <iostream> using namespace std; #define PROBLEM_NAME string("humble") string file_in = PROBLEM_NAME + string(".in"); int K, N; unsigned long int humbles[100000]; int compare( const void *arg1, const void *arg2 ) void dp() int positions[32]; n = l; int k = 0; int c = 0; int start = 0, end = c; for (int k = start; k < end; k++) bool k_fin = false, m_fin = false; int main() fis>>K>>N; dp(); fos<<humbles[N - 1]<<endl; fis.close(); return 0; 这道不走寻常路的题目用二小姐的一句话说就是:劳资不依! 送晚上新做的二小姐肖像一张,以示敬意。
April 03 动态规划乱入今天开始了USACO第三章之旅。3.1一上来的TEXT是Minimum Spanning Tree,3.1的第一题也是标准的MST范儿,结果第二题就来了个背包问题。 不用我说你也知道,动态规划乱入了。 一开始没有对输入做优化,于是超时超的泪流满面。 后来对价值开销比排个序,把价值开销比低且开销更大的输入无视掉,效果明显。 但是却优化过度,下面这组测试数据的时候红了。 1000 2 再次对优化的条件做更强的约束:开销更大且价值更小。代码如下: /* #include <iostream> using namespace std; #define PROBLEM_NAME string("inflate") string file_in = PROBLEM_NAME + string(".in"); int M, N; bool PairGreater (pair<int, int> elem1, pair<int, int> elem2) int dp() for (int i = 0; i <= M; i++) for (int i = 1; i < N; i++) int main() fis>>M>>N; int max_point = dp(); fos<<max_point<<endl; fis.close(); return 0; 运行结果如下: Executing... All tests OK. 关于动态规划乱入一事,大概就是这样了。 March 27 动态规划的胜利USACO做到了2.3.3,做阶段性小结如下。 感觉第二章前面两小节的平均难度倒不如第一章后面几小节了,所以2.1我们直接跳过。 到了2.2便开始进入动态规划阶段,于是算法题终于有了那么点算法题的意思了。说到动态规划(以下时而简称“动规”——笔者注),Subset Sums首当其冲。对题目简单的分析一下,可以将问题简化为求数字1至i中能够累加出和为j的全部组合。笔者一开始又是二二呼呼的用递归,结果超时超的何等失态,被迫开始动规。公式倒是不难推,因为这题本身也算是动规里比较低端的了。设d(i, j)为1至i中能够累加出和为j的全部组合数,那么将这所有的组合划分为两部分:没有用到i的部分和用到了i的部分。前者实际上是1至i-1中能够累加出和为j的全部组合数,即子问题d(i–1, j),后者稍加思考可以发现实际上是用1至i-1中能够累加出和为j-i的全部组合数,即子问题d(i-1, j-i),于是有公式d(i, j)=d(i-1, j)+d(i-1, j-i)。有了这个公式,数组一开,先把边界填好,然后两重for循环随便写写么好来。这便是动态规划的第一次胜利。 /* #include <iostream> using namespace std; #define PROBLEM_NAME string("subset") string file_in = PROBLEM_NAME + string(".in"); int N; unsigned long data[40][410]; void dp() int main() fis>>N; fis.close(); return 0; Longest Prefix又是一次动态规划的胜利,同时也是一次独立思考的胜利。笔者的方法是,如果串S[1…i]是前缀,那么其必定有前缀S[1…j]且S[j+1…i]是集合P的元素。于是判断S[1…i]是否为前缀时,只要遍历一下i之前的全部前缀S[1…j],判断子串S[j+1…i]是否属于P即可,如果属于,遍历终止且S[1…i]为前缀,如果遍历下来没有上述情况发生,则S[1…i]非前缀。解题过程中还有些地方可以剪枝,比如获得集合P的时候记录下P中元素的最大长度,只要子串S[j+1…i]长度大于该最大长度,即可判断S[1…i]非前缀,或者距上次产生前缀已经走过大于该最大长度个字符时,亦可终止扫描,上一个前缀即为最大前缀。一开始前缀数组中置第一个前缀位置为-1,表示空串也是前缀。这是动态规划的第二次胜利。 /* #include <iostream> using namespace std; #define PROBLEM_NAME string("prefix") string file_in = PROBLEM_NAME + string(".in"); string S; int max_length = 0; void dp() int main() string s; dp(); fos<<prefixes[c] + 1<<endl; fis.close(); return 0; Cow Pedigrees则是刚刚取得的动态规划的第三次胜利,也是至今取得的最近一次的胜利。笔者的方法是,将节点1至N中每个节点分别作为二叉树根节点,用d(i, j, n)表示以n个节点中第i个节点做根节点组成高度为j的二叉树的数量,s(j, n)表示n个节点组成高度为j的二叉树的数量,则s(j, n)=Σd(i, j, n)(对i从2至n-1求和)。另外,如果将节点i作为根节点,那么先假设左边子树深度等于j-1,右边子树深度小于j-1的所有种情况,再假设左边子树深度小于j-1,右边子树深度等于j-1的所有种情况,再加上左右两边子树深度都等于j-1的所有种情况,即为d(i, j, n)的值,则d(i, j, n)=s(j-1, i-1)*(Σs(k, n-i)) + (Σs(k, i-1))*s(j-1, n-i)(对k从1至j-2求和)。公式有了,于是开数组,填边界,几个for循环一套,搞定收工。 /* #include <iostream> using namespace std; #define PROBLEM_NAME string("nocows") string file_in = PROBLEM_NAME + string(".in"); int N, K; unsigned long d[200][200]; void dp() for (int n = 2 * j - 1; n <= (N < powf(2, j) - 1 ? N : powf(2, j) - 1); n++) int main() fis>>N>>K; dp(); fos<<s[K][N]<<endl; fis.close(); return 0; 当然关于这段代码,又有需要补充的地方。数组d可以少开一半,有几处for循环也可以以2为步长递增,求和部分可以用空间换时间,这样下来应该还能快上2的常数次幂倍。但是因为笔者漏看了题目中“Output the remainder when the total number of different possible pedigrees is divided by 9901.”这一条,导致大半天都在对着本已正确的算法反复的debug,边debug还边用草稿纸画二叉树,笔者在画二叉树的过程中发现这种题目真他妈不是用手算的,所以优化的地方也懒得写了。最后极限数据的测试据用了0.2秒,说实话挺危险的,不过如果应用了上述优化,还是有希望降到0.1秒以内的。这是动态规划的第三次胜利。 经历了上述三次伟大胜利,笔者相信,动态规划还会继续胜利下去的。 另外,算上前两篇《梅丽尔·斯特里普的胜利》以及《新浪党的胜利》,“胜利三部曲”系列也至此终。 March 24 新浪党的胜利 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|