<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[夜鱼的专栏]]></title><description><![CDATA[全纯人群，留迹数域。]]></description><link>https://blog.youkuaiyun.com/linulysses</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; linulysses]]></copyright><item><title><![CDATA[有向图的汇点 -- 兼 ACM PKU POJ 2186 ( Popular Cows ) 解题报告]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/6369983</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/6369983</guid><author>linulysses</author><pubDate>Thu, 28 Apr 2011 16:25:00 +0800</pubDate><description><![CDATA[题目链接：http://poj.org/problem?id=2186题意：奶牛的梦想是成为牛群中最受欢迎的奶牛，即受其它所有牛的欢迎。“欢迎”是具有传递性，即如果牛A认为牛B受欢迎，牛B觉得牛C受欢迎，则牛A也隐含地认为牛C受欢迎。现在，给一组点对 (A,B) 表示 A 认为 B 受欢迎，找出有多少最受欢迎的奶牛。这是一个有向图上的问题。用图上的顶点表示奶牛，有向边 (A,B) 表示 A 变为 B 受欢迎，则最受欢迎的牛是那些能被其它顶点所到达的顶点。最暴力的解法是，对每一个顶点，判断是否能够为其它所有的]]></description><category></category></item><item><title><![CDATA[无偏博弈(Impartial Game) 及几道相关的 POJ 解题报告]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/6341984</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/6341984</guid><author>linulysses</author><pubDate>Fri, 22 Apr 2011 16:02:00 +0800</pubDate><description><![CDATA[在本文中，我们先介绍一些基础的无偏博弈理论和知识，包括什么是无偏博弈、无偏博弈游戏与有向无环图上游戏的对应关系、Nim 和，以及著名的 Sprague-Grundy 定理。然后，应用这些知识来解决几道简单的 POJ 题目。]]></description><category></category></item><item><title><![CDATA[ACM PKU POJ 1740 解题报告 -- 男人八题之四]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/6336336</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/6336336</guid><author>linulysses</author><pubDate>Wed, 20 Apr 2011 16:04:00 +0800</pubDate><description><![CDATA[<br />题目链接：http://poj.org/problem?id=1740<br />题意：小明和小红参加一种新的取石子游戏。游戏开始时有 n 堆石子，参与游戏的两个选手轮流取走和移动石子，游戏从小明开始。在每一轮中，选手选择一个至少有一颗石子的堆，从该堆石子中拿走至少一个石子。接着，该选手可以多次地从该堆中剩下的石子中把任意多的个石子移动到任意的堆中。当然，该选手也可以不移动任何石子。但是，必须注意，选手必须从该选中的堆中取起至少一块石子。因此，随着游戏的进行，石子越来越少。当轮到某选手时，已经没]]></description><category></category></item><item><title><![CDATA[整数分解和划分 - 兼 ACM PKU POJ 1221 解题报告]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5820916</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5820916</guid><author>linulysses</author><pubDate>Wed, 18 Aug 2010 14:24:00 +0800</pubDate><description><![CDATA[本文主要探讨了有多少种不同的划分，可以把一个整数 n 分成最大元素不大于 m 的多个整数之和。同时，分析了如何把 POJ 1221 化归至此整数的划分问题上来求解。]]></description><category></category></item><item><title><![CDATA[ACM PKU POJ 1112 解题报告]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5802934</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5802934</guid><author>linulysses</author><pubDate>Wed, 11 Aug 2010 06:48:00 +0800</pubDate><description><![CDATA[本文讨论了 POJ 1112 的求解。]]></description><category></category></item><item><title><![CDATA[数学界和计算机界千年难题 P vs NP 有望近期获证]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5797782</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5797782</guid><author>linulysses</author><pubDate>Mon, 09 Aug 2010 03:44:00 +0800</pubDate><description><![CDATA[P vs NP 问题，是世界七大数学难题之一，也是千年大奖问题之一。它是计算机理论中极其重要和基础的问题，从它被正式提出至今，关于它的研究和论文多如牛毛，也为所有计算机工作者、很多数学工作者熟知。因此，某就不在此浪费笔墨再行介绍了。对这个问题不了解的读者，可以参考上述的两个链接。它的重要程度，可以这么说吧，如果 P = NP，那么，有成千上万的论文的结论都将是错误的，因为这些论文的工作都建立在 P != NP 的假设上。还有，RSA 公钥加密系统的基础假设也是 P != NP ....这个问题其实没有这么古]]></description><category></category></item><item><title><![CDATA[单调队列 - 兼 ACM PKU POJ 3250 及 2823 解题报告]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5771084</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5771084</guid><author>linulysses</author><pubDate>Wed, 28 Jul 2010 13:51:00 +0800</pubDate><description><![CDATA[本文主要讨论单调队列及其应用：柱状图下的最大长方形，以及 POJ 2823 和 POJ 3250 的题解。]]></description><category></category></item><item><title><![CDATA[Sum - ACM PKU 1844 解题报告]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5744445</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5744445</guid><author>linulysses</author><pubDate>Sun, 18 Jul 2010 16:15:00 +0800</pubDate><description><![CDATA[对于 POJ 1844，本文给出了一个时间和空间复杂度都为 O(1) 的算法。同时，也分析了一个可能的动态规划思路。]]></description><category></category></item><item><title><![CDATA[聪明的打字员 -- ACM PKU 1184 解题报告]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5688248</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5688248</guid><author>linulysses</author><pubDate>Wed, 23 Jun 2010 08:43:00 +0800</pubDate><description><![CDATA[<br />问题描述： 阿兰是某机密部门的打字员，她现在接到一个任务：需要在一天之内输入几百个长度固定为6的密码。当然，她希望输入的过程中敲击键盘的总次数越少越好。
<br />
不幸的是，出于保密的需要，该部门用于输入密码的键盘是特殊设计的，键盘上没有数字键，而只有以下六个键：Swap0, Swap1, Up,
Down, Left,
Right，为了说明这6个键的作用，我们先定义录入区的6个位置的编号，从左至右依次为1，2，3，4，5，6。下面列出每个键的作用：
<br />
Swap0：按]]></description><category></category></item><item><title><![CDATA[最大正方形 (Largest Square)]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5635520</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5635520</guid><author>linulysses</author><pubDate>Mon, 31 May 2010 05:26:00 +0800</pubDate><description><![CDATA[在最大长方形问题中，我们探讨了如何寻找最大 1-聚类。因为正方形是长方形的一个特例，因此，前面讨论的算法也可以应用。然后，正方形在某种意义上是一维的，即，只要知道边的长，就可以确定一个正方形；而长方形是二维的，需要知道两个边长。这个不同，我们猜测，当我们依然采用动态规划来解决问题时，可以把时间复杂度降一维，即为O(mn)。为了完整性，在这里给出问题描述： 有一个 m x n 的矩阵，元素为]]></description><category></category></item><item><title><![CDATA[Longest Palindrome (最长回文子串)]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5634104</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5634104</guid><author>linulysses</author><pubDate>Sun, 30 May 2010 08:03:00 +0800</pubDate><description><![CDATA[一个序列（字符串）S=a1a2...an 的倒置 S 为 anan-1...a1。而 S 的子串定义为 S 中任何连续的一部分，如 aiai+1...aj 是 S 的一个子串，但aiai+2... 则不是 S 的子串。如果一个序列 S=S，则 S 称为回文序列。本文接下来将研究一个有趣的问题：给定一个序列 S，找出 S 中最长的回文子串。 在详细分析各个算法之前，先给出一个概览：简单的]]></description><category></category></item><item><title><![CDATA[Flip and Shift -- ACM PKU 1063 解题报告]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5625707</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5625707</guid><author>linulysses</author><pubDate>Wed, 26 May 2010 16:13:00 +0800</pubDate><description><![CDATA[问题描述：This puzzle consists of a random sequence of m black disks and n whitedisks on an oval-shaped track, with a turnstile capable of flipping(i.e., reversing) three consecutive disks or shifting ]]></description><category></category></item><item><title><![CDATA[约瑟夫 (Joseph) -- ACM PKU 1012 解题报告]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5622945</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5622945</guid><author>linulysses</author><pubDate>Tue, 25 May 2010 15:33:00 +0800</pubDate><description><![CDATA[问题描述：The Josephs problem is notoriously known. For those who are notfamiliar with the original problem: from among n people, numbered 1, 2,. . ., n, standing in circle every mth is going to be ex]]></description><category></category></item><item><title><![CDATA[名人 (Celebrity)]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5602679</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5602679</guid><author>linulysses</author><pubDate>Tue, 18 May 2010 08:56:00 +0800</pubDate><description><![CDATA[问题描述： 在一个聚会上有 n 个人，其中有一个名人，大家都认识他，但他却不认识所有其他人。现在请你只通过询问来宾 x 是不是认识来宾 y 的方式把这个名人找出来。最多只能使用 O(n) 次询问。当我第一次听到这个问题是，我觉得这题是反直觉的：O(n) 能够做到？随机找一个人，比如说 x，要确定是不是所有人都认识他，就要 O(n) 的时间，确定他是不是不认识所有其他人，也要O(n) 时间。问题]]></description><category></category></item><item><title><![CDATA[寻找遗失的整数 (Finding The Missing Integer)]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5598987</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5598987</guid><author>linulysses</author><pubDate>Mon, 17 May 2010 02:22:00 +0800</pubDate><description><![CDATA[问题描述： 大小为 n 的数组 A 中包含了 [0,n] 中的除了 x 的所有其它整数。找出 x。问题很简单，如果不加约束条件的话。约束一： (in place) 只用 O(1) 的额外空间，并要求 O(n) 时间。约束二： 假定A 的元素都用二进制表示。我们不能直接访问整个元素。允许的操作是 fetch(i,j)，它返回第 i 个元素的第 j 个 bit，所用时间为O(1)。用 O(]]></description><category></category></item><item><title><![CDATA[最大长方形 (Maximum Submatrix & Largest Rectangle)]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5594141</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5594141</guid><author>linulysses</author><pubDate>Sat, 15 May 2010 06:53:00 +0800</pubDate><description><![CDATA[在这篇文章里，我将探讨几个和求最大长方形相关的题目，并试图说明如何把一些相对复杂的问题化归成简单的易解的问题。这里的最大，可以指长方形内所有元素之各最大，也可以指面积最大。问题一（最大和子矩阵）： 有一个 m x n 的矩阵，矩阵的元素可正可负。请找出该矩阵的一个子矩阵（方块），使得其所有元素之和在所有子矩阵中最大。(问题来源：http://acm.pku.edu.cn/JudgeOn]]></description><category></category></item><item><title><![CDATA[最长递增子序列 (Longest Increasing Subsequence)]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5559262</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5559262</guid><author>linulysses</author><pubDate>Wed, 05 May 2010 13:48:00 +0800</pubDate><description><![CDATA[问题描述： 给定一个序列 An = a1,a2,  ... , an，找出最长的子序列使得对所有 i j，ai aj。显然，暴力算法的时间复杂度是 O(2n)，因为搜索空间呈指数级增长。对于这种问题，如果要找复杂度为多项式时间的算法，自然而然地会想到动态规划。首先，要找出一种方法]]></description><category></category></item><item><title><![CDATA[包含所有指定字符的最小子串(shortest substring containing all given characters)]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5538774</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5538774</guid><author>linulysses</author><pubDate>Wed, 28 Apr 2010 14:19:00 +0800</pubDate><description><![CDATA[问题描述：给定一个字符集合 must [0,...,m-1 ] 和一个字符串str [0,...,n-1 ]。假定 n >= m 。找出 str 中包含 must 中所有字符的最短子串。 最直接和简单的算法当然是暴力搜索(brute-force search)： minimal := str [0,...,n-1 ]for i]]></description><category></category></item><item><title><![CDATA[[C/C++] 把一个整型整数转成字符串]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5538755</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5538755</guid><author>linulysses</author><pubDate>Wed, 28 Apr 2010 14:14:00 +0800</pubDate><description><![CDATA[问题描述：写一个函数，接受一个整数（假定用int表示），输出该整数的字符串形式。采用如下函数原型： void itoa ( int val, char* buf );  这里假定buf足够大以容纳任何int类型数值的字符串。 这个问题，初看好像没有什么难度。如果是0，就直接输出0；如果是正数，就通过取模(%)和求商(/)运算可以逐位取得该整数的数字，并把它们放到bu]]></description><category></category></item><item><title><![CDATA[最美妙的数学公式]]></title><link>https://blog.youkuaiyun.com/linulysses/article/details/5538731</link><guid>https://blog.youkuaiyun.com/linulysses/article/details/5538731</guid><author>linulysses</author><pubDate>Wed, 28 Apr 2010 14:09:00 +0800</pubDate><description><![CDATA[e iπ + 1 = 0 我在优快云上混的时间算起来也要有好几年了，但却从来没有写过文章。以前觉得，知识记在心里就行了，没必要也懒得写出来。现在发现年纪大了，开始记不住东西了，于是觉得有必要以某种方式记录些东西。再者，记录的同时可以逼迫自己去把知识进行整理。 最近看到几年前的一份" Google实验室能力倾向测试 "，里面共]]></description><category></category></item></channel></rss>