<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>-Flyぁ梦- &#187; ACM</title>
	<atom:link href="http://blog.11034.org/category/coding/life-in-acm/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.11034.org</link>
	<description></description>
	<lastBuildDate>Sun, 22 Jun 2025 08:59:05 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>整理下字符串的一些数据结构和算法</title>
		<link>http://blog.11034.org/2012-12/string.html</link>
		<comments>http://blog.11034.org/2012-12/string.html#comments</comments>
		<pubDate>Thu, 06 Dec 2012 13:27:52 +0000</pubDate>
		<dc:creator><![CDATA[-Flyぁ梦-]]></dc:creator>
				<category><![CDATA[ACM]]></category>
		<category><![CDATA[数据结构和算法]]></category>
		<category><![CDATA[字符串]]></category>
		<category><![CDATA[树]]></category>

		<guid isPermaLink="false">http://blog.stariy.org/?p=1412</guid>
		<description><![CDATA[别看字符串挺简单，还真牵扯到好多数据结构和算法啊，给跪了，要将所有的都好好掌握真心是一项艰难的任务。这里就列举 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>别看字符串挺简单，还真牵扯到好多数据结构和算法啊，给跪了，要将所有的都好好掌握真心是一项艰难的任务。这里就列举下自己做zoj时候碰到过的一些，然后配合自己做过的例题讲一下。不过每种算法、数据结构具体的描述和代码，还请自己去搜索吧。<span id="more-1412"></span></p>
<h2>算法</h2>
<h3>KMP算法</h3>
<p>字符串在普通项目中用得最多的必然是匹配和查询问题了，KMP算法通过O(M)的时间预处理短串，然后在O(N)的时间内搜索长串得到结果，算是最经典的字符串匹配算法了，其中预处理字符串next数组的方法非常具有扩展性。KMP并不太容易懂，推荐百度搜索“Matrix67 KMP”这篇文章，比较好懂。自己写一遍KMP再配合着OJ做一些题，就有感觉了。</p>
<p><strong>zoj 2177 Period</strong> : 由重复子串不重叠构成的所有前缀。这里用到了next函数的思想。</p>
<p><strong>zoj 2177 Crack</strong> : int值的KMP。搜索到串后，再分别往前往后继续匹配，比较最大值。</p>
<p><strong>zoj 3587 Marlon&#8217;s String</strong> : 串A和串B，求出A[i1, j1] + A[i2, j2] = B有多少种。KMP中每一次i与j的匹配都意味着一个前缀的匹配，后缀通过字符串反序同理前缀处理。</p>
<p><strong>zoj 3643 Keep Deleting</strong> : KMP和栈的结合。</p>
<h3>最小表示法</h3>
<p>一个字符串按照字典序的最小表示序列。可以用来判断某些字符串是否循环同构。</p>
<p>一开始看懂了，最近又忘了，不过知道有这个算法，应用起来套进去好像比较容易。</p>
<p><strong>zoj 1729 Hidden Password</strong> : 求字符串的最小表示位于原字符串的位置。</p>
<h3>Manacher算法</h3>
<p>用来求一个字符串中最长回文子串的算法，比用后缀数组的方案既快又节约内存。没怎么看懂，好像也就这么个用途，勉强记得有这个算法吧 =.=。</p>
<p><strong>poj 3974 Palindrome</strong> : 求最长回文子串的长度。</p>
<h3>栈处理</h3>
<p>主要是字符串里的括号匹配的问题，很容易想到用栈。</p>
<p><strong>zoj 1423 (Your)((Term)((Project)))</strong> : 删除多余的括号。</p>
<p><strong>zoj 2483 Boolean Expressions</strong> : 计算布尔表达式的值。</p>
<p><strong>zoj 2704 Brackets</strong> : 判断带圆括号和方括号的表达式是否正确。</p>
<h2>数据结构</h2>
<h3>Trie树</h3>
<p>这算是最简单的了，很容易看懂和应用的数据结构。用来查找某些字符串是否存在于一个字符串集合当中，查找花费O(N)的时间（这里用Java的HashMap和String自带的hashCode方法，也比较不错）。Trie树适合被搜索对象是一个word，搜索其是否整体匹配单词源集合某一个。</p>
<p><strong>zoj 1109 Language of FatMouse</strong> : Trie树最基础应用</p>
<p><strong>zoj 1888 Zipf&#8217;s Law</strong> : 查找一段文章中出现次数为N的单词。也是Trie树普通运用，最后选择遍历Trie树也可以，当然也可以优化下。</p>
<p><strong>zoj 2346 Shortest Prefixes</strong> : N个串，将每个串缩短至最短的前缀串来唯一表示这个串，但在N个串中不能有冲突。</p>
<h3>AC自动机 &#8211; Trie树升级版</h3>
<p>AC自动机，就是在Trie树的基础上给每个节点加一个fail指针，类似KMP的next数组的感觉，每次匹配失败后可以继续向前匹配。为什么叫自动机呢，学过计算理论应该还是比较好理解的。AC自动机的建立，在Trie树已经建立后，加一步建立fail指针的过程，需要通过bfs遍历一遍Trie树。然后搜索的时候没匹配一个节点，都要依次循着fail指针向上查询直到root节点查找是表示为串结尾的节点，这些都是符合的情况。</p>
<p>AC自动机适合处理那些一长段文字中去寻找某些个单词的情况，即适合被搜索对象是一个长串，搜索其部分匹配单词源集合。</p>
<p>附上一份自己写的AC自动机的代码，<a title="一个OOP的AC自动机代码" href="/2012-12/ac_automachine.html" target="_blank">Click here</a>。</p>
<p><strong>zoj 3228 Searching the String</strong> : 可重叠和不可重叠地去查询某个串存在的次数。</p>
<p><strong>zoj 3430 Detect the Virus</strong> : Base64解码后再匹配。题目比较恶心&#8230;然后这里字符集有256个，包括&#8217;\0&#8217;，所以用insert(char *s, int len)比较好，然后很恶心的一点习惯写Java后才发现C++的char默认是signed的&#8230;这里要转换成unsigned char，不然OJ上就不断地SF了。</p>
<h3>后缀树和后缀自动机</h3>
<p>将一个字符串的所有后缀作为不同的串，插入到Trie树形成的树，同理再加上fail指针就是后缀自动机。后缀树和后缀自动机都是对一个长串进行某些处理，比如寻找某些子串、寻找最长回文子串、寻找两个串的某些共同属性（比如最长公共部分等）。但是后缀树算法和程序比较复杂，做题的时候好像很少用到，而是用较为简易的后缀数组的来代替。</p>
<h3>后缀数组</h3>
<p>后缀树的简化版本，用几个数组来记录后缀串的不同属性。网上流行的模板代码里，sa数组按字典顺序记录后缀的序号（ra[rk] = index），rank数组与sa数组互逆，按照后缀序号记录后缀的字典序大小（rank[index] = rk）。然后为了模拟后缀树，还有height数组，记录height[i] = LCP(ra[i &#8211; 1], ra[i])，LCP为Longest Common Prefix（最长公共前缀），即有了后缀树里的Least Common Ancestors（最近公共祖先）的意思。后缀数组开了这么多数组比较耗费内存，所以不适合字符串长度很长（超过一百万）的题目。</p>
<p>建立后缀数组，有两种比较复杂难懂的算法，倍增算法和DC3算法，前者O(NlogN)后者O(N)的复杂度，反正LZ看不懂也不会写用的也是网上找的模板。计算height值是O(N)的算法，也不懂。任意两个后缀的LCP值是它们sa值之间的height值的最小值，这里包含了一个RMQ（Range Minimum Query）问题。</p>
<p>后缀数组的详细可以看一下《后缀数组—处理字符串的有力工具》这篇高中生写的论文，膜拜&#8230;虽然觉得里面某些代码和题解有点问题，不过算法描述很详细很值得去读而理解。</p>
<p>附上一份网上找的蛮好用的后缀数组代码，<a title="一套可用的后缀数组代码" href="/2012-12/suffix_array.html" target="_blank">Click here</a>。</p>
<p><strong>ural 1297 Palindrome</strong> : 求最长回文子串。poj也有类似一题但是数据量太大，可以用前面提到的Manacher算法求解。</p>
<p><strong>zoj 2737 Occurrence</strong> : 求串B所有的循环同构串在串A中出现的次数和。解决循环的办法就是设B&#8217; = B + B，S = B&#8217; + &#8216;$&#8217; + A，然后对S进行后缀数组处理。</p>
<p><strong>zoj 3199 Longest Repeated Substring</strong> : 含有不可重叠且连续子串的子串。</p>
<p><strong>zoj 3296 Connecting the Segments</strong> : 这道题真是牛逼了，结合了后缀数组、RMQ、贪心之最小区间覆盖，很经典很值得一练的题。后缀数组的作用并不是求出所有的回文子串（无法求出被真包含的回文子串，比如aabaa，aabaa本身是回文子串，其中真包含的aba也是回文子串，aba就无法得到），但是不影响区间覆盖。</p>
<p><strong>zoj 3395 Stammering Aliens</strong> : 可重叠子串多于k个。这里需要将height数组分组，很多后缀数组的题目都需要如此处理，原因就是上面提到的LCP取最小值。</p>
<p>学习后缀数组真心花了好多天，一开始只会按照套路和题解去套用后缀数组的方法解题，做了几个题目就慢慢理解后缀数组的意义所在，就能自己想办法去利用后缀数组了。不做题，不coding，理解不了，但是痛苦的是一段时间不做的话又会忘了，这个怎么破 T_T。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-to be continued&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>&nbsp;</p>
<h4  class="related_post_title">看看 字符串 , 树</h4><ul class="related_post"><li>2012-12-06 -- <a target="_blank" href="http://blog.11034.org/2012-12/ac_automachine.html" title="一个OOP的AC自动机代码">一个OOP的AC自动机代码</a></li><li>2012-12-06 -- <a target="_blank" href="http://blog.11034.org/2012-12/suffix_array.html" title="一套可用的后缀数组代码">一套可用的后缀数组代码</a></li><li>2012-07-03 -- <a target="_blank" href="http://blog.11034.org/2012-07/trie_in_php.html" title="敏感词过滤，PHP实现的Trie树">敏感词过滤，PHP实现的Trie树</a></li></ul><h4 class="related_post_title">看看 ACM , 数据结构和算法 </h4><ul class="related_post"><li>2013-05-27 -- <a target="_blank" href="http://blog.11034.org/2013-05/java_map.html" title="java.util中几个Map的性能测试">java.util中几个Map的性能测试</a></li><li>2013-05-07 -- <a target="_blank" href="http://blog.11034.org/2013-05/rectangle_overlap.html" title="判断矩形是否重叠">判断矩形是否重叠</a></li><li>2013-01-15 -- <a target="_blank" href="http://blog.11034.org/2013-01/pack_in_zoj.html" title="背包练习小集合">背包练习小集合</a></li><li>2012-12-06 -- <a target="_blank" href="http://blog.11034.org/2012-12/suffix_array.html" title="一套可用的后缀数组代码">一套可用的后缀数组代码</a></li><li>2012-12-06 -- <a target="_blank" href="http://blog.11034.org/2012-12/ac_automachine.html" title="一个OOP的AC自动机代码">一个OOP的AC自动机代码</a></li>]]></content:encoded>
			<wfw:commentRss>http://blog.11034.org/2012-12/string.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>zoj 2891</title>
		<link>http://blog.11034.org/2012-10/zoj_2891.html</link>
		<comments>http://blog.11034.org/2012-10/zoj_2891.html#comments</comments>
		<pubDate>Thu, 11 Oct 2012 16:23:32 +0000</pubDate>
		<dc:creator><![CDATA[-Flyぁ梦-]]></dc:creator>
				<category><![CDATA[ACM]]></category>

		<guid isPermaLink="false">http://blog.stariy.org/?p=1354</guid>
		<description><![CDATA[花了一晚上把zoj一道TLE的陈年旧题2891给A了，一个简单dfs加基于数列排序检查，算法比较简单但是代码量 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>花了一晚上把zoj一道TLE的陈年旧题2891给A了，一个简单dfs加基于数列排序检查，算法比较简单但是代码量比较多有170行，可以算比较复杂，过了Sample和自己编的几个临界数据，想想就交了试试看吧。<span id="more-1354"></span></p>
<p>提交完，居然直接看到了红色的“Acceped”（这比较奇怪，做过zoj的应该了解，提交的瞬间很多情况下是Compiling的状态），居然这尝试性的一次提交就过了，居然之前TLE10s的题现在只用了10ms，在确认没看错submit ID后，居然还发现占据了这道题AC排行榜第二而且榜单中大多都是好几秒的submit。瞬间就怀疑zoj是不是当时抽风了还是数据被换简单了 &#8230;</p>
<p>各种确认无误和心态调整过来后，当然就是兴奋和激动了，隔了一年不做ACM题了这一下试手这一曾经卡住并且有难度又复杂的题，一下子AC而且速度还不错这个结果的确让自己大为震惊接着喜出望外。做ACM的话，动力就来源于此吧，虽然自己做ACM并不太因为是自己的兴趣使然，而主要是为了练习算法和coding能力为了准备明年找工作。当然有一点，2891的榜单不太理想完全是因为这道题题目太长理解麻烦解题又复杂算法又不难导致众大牛不想做而已，这点自己心理还是有数的&#8230;</p>
<p><br />
AC之后，真可谓思绪万千，从惊转喜后，自然想把这种喜悦分享开来，却无奈地发现可以分享此心情的朋友基本不懂ACM，除了耗子，很想与木头分享此刻的心情，但猜得到得到的回复不过是“。。。”而已，她又不懂何况即使懂也大多如此，却又何必麻烦她敲键盘呢&#8230;木有妹子的寂寞啊，虽然即使有妹子好像也不能解决此烦恼（除了ACM妹子），ACM之路注定寂寞孤独啊&#8230;<br />
</p>
<h2>解题思路</h2>
<ol>
<li>数据预处理</li>
<li>dfs得到符合题目条件的3组数据（最大化相同的每组数据和，这里没有检查连接点是否冲突）</li>
<li>用排序的方法检查是否有存在可行的排列方案</li>
</ol>
<p>第一步中，将数据排序然后合并重复数据，进行数据组合而不是排列。这里若不合并重复数据，Sample中第四组会花费很多时间直接TLE。然后得到可能的最大长度和最小长度，从最大开始遍历dfs。这里看似从最大Len到最小Len跨度很大每个都要重新进行一次dfs，但是很多Len的dfs因为凑不好长度dfs很快就会退出。</p>
<p>第二步dfs，根据木棒序号（0 1 2）、当前木棒长度（从0到最大Len）、上一根短木棒序号这3个数据进行dfs，得到一组可用的数据。这里dfs递归不会很深。</p>
<p>第三步，用三重循环next_permutation模拟各种短木棒的组合方法，试出可能存在的方案。这里循环虽然很多，而且每一条长木棒最多可能由9根短木棒组成，但是只要凑到一种可行的方案即return，大多数情况下进行不了几次循环的。</p>
<p>源代码：<a href="/wp-content/uploads/2012/10/2891.txt">zoj 2891.cpp</a></p>
<h4  class="related_post_title">随便看一看</h4><ul class="related_post"><li>2010-09-02 -- <a target="_blank" href="http://blog.11034.org/2010-09/summary_in_ebay_15th.html" title="暑期实习小结于eBay15周年">暑期实习小结于eBay15周年</a></li><li>2011-08-13 -- <a target="_blank" href="http://blog.11034.org/2011-08/lotus_of_west_lake.html" title="曲院风荷，婀娜多姿">曲院风荷，婀娜多姿</a></li><li>2013-11-28 -- <a target="_blank" href="http://blog.11034.org/2013-11/luguhu.html" title="彩云之南-泸沽湖，环湖之行！">彩云之南-泸沽湖，环湖之行！</a></li><li>2010-11-30 -- <a target="_blank" href="http://blog.11034.org/2010-11/two_wordpress_plugins_and_some_tips.html" title="推荐2个wordpress插件和几个tips">推荐2个wordpress插件和几个tips</a></li><li>2013-05-19 -- <a target="_blank" href="http://blog.11034.org/2013-05/tomcat6.html" title="Tomcat6源码学习">Tomcat6源码学习</a></li></ul><h4 class="related_post_title">看看 ACM </h4><ul class="related_post"><li>2012-12-06 -- <a target="_blank" href="http://blog.11034.org/2012-12/string.html" title="整理下字符串的一些数据结构和算法">整理下字符串的一些数据结构和算法</a></li><li>2011-10-20 -- <a target="_blank" href="http://blog.11034.org/2011-10/zoj_100_ac.html" title="ZOJ起步 100AC">ZOJ起步 100AC</a></li><li>2011-10-14 -- <a target="_blank" href="http://blog.11034.org/2011-10/google_2012_campus.html" title="Google2012校招笔试">Google2012校招笔试</a></li><li>2011-07-26 -- <a target="_blank" href="http://blog.11034.org/2011-07/begin_acm.html" title="ACM初上手">ACM初上手</a></li>]]></content:encoded>
			<wfw:commentRss>http://blog.11034.org/2012-10/zoj_2891.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ZOJ起步 100AC</title>
		<link>http://blog.11034.org/2011-10/zoj_100_ac.html</link>
		<comments>http://blog.11034.org/2011-10/zoj_100_ac.html#comments</comments>
		<pubDate>Thu, 20 Oct 2011 12:30:57 +0000</pubDate>
		<dc:creator><![CDATA[-Flyぁ梦-]]></dc:creator>
				<category><![CDATA[ACM]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[ZOJ]]></category>

		<guid isPermaLink="false">http://blog.stariy.org/?p=988</guid>
		<description><![CDATA[shi哥是世界冠军，1000AC才自贺一把，俺们小菜鸟当然100AC就可以来发一篇博了 :wink:。 zzh [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>shi哥是世界冠军，1000AC才自贺一把，俺们小菜鸟当然100AC就可以来发一篇博了 :wink:。</p>
<p><span style="color: #db6d00; font-size: large;">zzhxlyc</span> <span style="font-size: medium;">(-Flyぁ梦-)</span>        <span style="font-size: small;">AC Ratio:</span> <span style="color: red; font-size: medium;">100/244 </span>。ZOJ路程刚刚起步，仅此纪念一下~</p>
<p><span id="more-988"></span>其实早在大二暑假，那时候8月份还在萧山工商银行实习打酱油，没事干打印ZOJ的题目想算法在纸上做，回来再上电脑敲，从1001开始往下搞，到1099为止AC了20几道，基本都是水题或者暴力题，然后就没有下文了。直到大四的暑假开始，又重新捡起了这份活，真正开始打算好好练练自己的做题和算法能力。</p>
<p>以网上流传的一份ZOJ分类题目推荐为目标，首先做模拟题，不需要任何算法按逻辑一步一步去做就行，这四五十题让自己慢慢熟练起了C++的基础语法和STL的基本用法，再也不需要因为g++编译过不了又看不懂错误说明而去请教别人了，也熟悉了ZOJ的错误类型，各种WA、SF、PE、TLE、MLE、RTE。接下来开始做搜索题，DFS和BFS，BFS之前就比较熟，而用DFS做题倒是从ZOJ1008里得到挺深的感悟。其实感觉下来模拟题做起来难度似乎更大，不断地需要看代码和找错误数据去灭掉WA或者SF，一直WA不出来的也有好几题很痛苦，而搜索题不是算法TLE的话基本直接就能AC，做起来更快。</p>
<p>PS：某几道模拟题AC的结果还幸运地爬上了那道题的AC排行榜，灰常有成就感！（当然不是因为算法牛或者什么的，肯定是那道题太冷了木有人去做罢了 <img src="http://blog.11034.org/wp-includes/images/smilies/icon_mad.gif" alt=":-x" class="wp-smiley" style="height: 1em; max-height: 1em;" /> &#8230;）</p>
<p>PPS：因为俱乐部或者实习的原因，认识一些早些年的ACMer，然后偶然就会碰上学长学姐们留下的题，然后就感觉很好玩~（本来第100题刚好碰上光哥出的ZOJ2951，一开始还很兴奋，然后果断华丽丽地就被cerror BS掉了 <img src="http://blog.11034.org/wp-includes/images/smilies/icon_cry.gif" alt=":cry:" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ……）</p>
<p>列几道曾经被WA地死去活来的几道题：</p>
<ul>
<li>ZOJ 1111：模拟梭哈。不小心某个函数少了一个return，居然直接g++ 1111.cpp是不报错和Warning的！需要g++ 1111.cpp -Wall去显示所有Warning信息才能看见&#8230;想不通为啥这在C++只算个Warning&#8230;</li>
<li>ZOJ 2495：模拟五子棋。一个点不能往右下方向判断是否结束游戏，只能用左上方向取而代之，因为题意要求打印left-most棋子。</li>
<li>ZOJ 3009：模拟Excel。串的长度需要很长&#8230;或者用getline(cin, string)吧。</li>
<li>ZOJ 2103：DFS题。Sample中No，o是小写（虽然从网页[chrome]上很不容易看出来！），反正以后记得无论多简单也要从网页上copy就是了。</li>
<li>ZOJ 2203：开1000长度的数组会TLE，而1001就OK，没去仔细研究，反正以后数组开大点不会错。</li>
<li>ZOJ 2512：枚举题。注意ab序列也是对称的（a在上，b在下），aa序列同理以第一个a为对称中心！</li>
</ul>
<div>接下去的目标当然就是200题了，继续做搜索类题，然后可以接触贪心类型的题目，至于DP、图论甚至几何、最大流神马的，今年估计是没希望了……</div>
<h4  class="related_post_title">看看 C++ , ZOJ</h4><ul class="related_post"><li>2014-09-10 -- <a target="_blank" href="http://blog.11034.org/2014-09/dotnet_csharp_excel.html" title="记C#和Excel开发">记C#和Excel开发</a></li><li>2013-01-25 -- <a target="_blank" href="http://blog.11034.org/2013-01/winter_holiday_plan.html" title="zoj 200AC，寒假计划">zoj 200AC，寒假计划</a></li><li>2013-01-15 -- <a target="_blank" href="http://blog.11034.org/2013-01/pack_in_zoj.html" title="背包练习小集合">背包练习小集合</a></li></ul><h4 class="related_post_title">看看 ACM </h4><ul class="related_post"><li>2012-12-06 -- <a target="_blank" href="http://blog.11034.org/2012-12/string.html" title="整理下字符串的一些数据结构和算法">整理下字符串的一些数据结构和算法</a></li><li>2012-10-12 -- <a target="_blank" href="http://blog.11034.org/2012-10/zoj_2891.html" title="zoj 2891">zoj 2891</a></li><li>2011-10-14 -- <a target="_blank" href="http://blog.11034.org/2011-10/google_2012_campus.html" title="Google2012校招笔试">Google2012校招笔试</a></li><li>2011-07-26 -- <a target="_blank" href="http://blog.11034.org/2011-07/begin_acm.html" title="ACM初上手">ACM初上手</a></li>]]></content:encoded>
			<wfw:commentRss>http://blog.11034.org/2011-10/zoj_100_ac.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Google2012校招笔试</title>
		<link>http://blog.11034.org/2011-10/google_2012_campus.html</link>
		<comments>http://blog.11034.org/2011-10/google_2012_campus.html#comments</comments>
		<pubDate>Thu, 13 Oct 2011 16:07:04 +0000</pubDate>
		<dc:creator><![CDATA[-Flyぁ梦-]]></dc:creator>
				<category><![CDATA[ACM]]></category>
		<category><![CDATA[Life in ZJU]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://blog.stariy.org/?p=983</guid>
		<description><![CDATA[读研1个多月了，彷徨！有着非常如同hzqtc当时的想法，拿到Google的offer就退学，当然了知道自己水平 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>读研1个多月了，彷徨！有着非常如同hzqtc当时的想法，拿到Google的offer就退学，当然了知道自己水平还是远远不够的，读研的时候正好给自己弥补一下的。至于这次Google的校招，不小心关注了下然后随意地网申了个，如实填写的14年才毕业，不过也发笔试通知了，那就去观摩观摩。<span id="more-983"></span></p>
<p>笔试分为3部分，第一页类似一份小简历要填写，然后是基础选择题，然后是2道编程题和1道算法题。基础选择题有组合数学、编程语言基础、OS基础、网络基础，包含的范围很广，难度中等。接下去2道编程题，就是写代码的，感觉似乎蛮简单的说，仅仅第二道用到了栈。最后一道压轴算法题，伪代码就可以的那种，求用不同面值人民币的组合，dfs搞了一下。从来不会写伪代码，依旧给的源代码，很幸运的是最近一直在ZOJ上练题，C++、STL的语法和API熟悉起来了，然后近期一直练习的搜索类型题，做了好多的dfs以至于什么题都往dfs去靠边，这次还真给碰上了，于是代码也写地很顺。一个小时不到提前交卷，感觉很棒 :mrgreen:。后来据说最后题数据量比较大（最大值一百万），用DP比较好，悲剧了么&#8230;</p>
<p>今天在实验室AC了第88道，这个月争取做完zoj推荐里搜索这一类的题型达到100道题，然后再来blog分享一下。这次立竿见影的效果，使得自己更加有兴趣和信心去AC去AC！！最后要十分感谢一下水寒同学一直以来的帮助！</p>
<h4  class="related_post_title">看看 Google</h4><ul class="related_post"><li>2013-10-17 -- <a target="_blank" href="http://blog.11034.org/2013-10/google.html" title="Google校招">Google校招</a></li><li>2011-06-11 -- <a target="_blank" href="http://blog.11034.org/2011-06/google_doodle_guitar.html" title="2011-6-9 Google Doodle之电子琴">2011-6-9 Google Doodle之电子琴</a></li><li>2011-01-08 -- <a target="_blank" href="http://blog.11034.org/2011-01/search_engine.html" title="2个月的搜索引擎状况">2个月的搜索引擎状况</a></li><li>2011-01-01 -- <a target="_blank" href="http://blog.11034.org/2011-01/wp-sns-share_2-0.html" title="wp-sns-share更新2.0">wp-sns-share更新2.0</a></li><li>2010-12-04 -- <a target="_blank" href="http://blog.11034.org/2010-12/google_page_speed.html" title="加速你的网站，Google page speed">加速你的网站，Google page speed</a></li></ul><h4 class="related_post_title">看看 ACM , Life in ZJU </h4><ul class="related_post"><li>2015-05-21 -- <a target="_blank" href="http://blog.11034.org/2015-05/yixing.html" title="2015浙大春季毅行，事迹达成">2015浙大春季毅行，事迹达成</a></li><li>2013-05-15 -- <a target="_blank" href="http://blog.11034.org/2013-05/fan_error.html" title="小黑风扇坏两天，被逼看完一本书">小黑风扇坏两天，被逼看完一本书</a></li><li>2013-04-29 -- <a target="_blank" href="http://blog.11034.org/2013-04/lukao.html" title="路考过了，庆贺下">路考过了，庆贺下</a></li><li>2013-04-19 -- <a target="_blank" href="http://blog.11034.org/2013-04/system_reinstall.html" title="再也不说会重装系统了>_<">再也不说会重装系统了>_<</a></li><li>2013-02-14 -- <a target="_blank" href="http://blog.11034.org/2013-02/wp_zjuem_in_wordpress.html" title="wp-zjuem，zju cc98表情系统 in wordpress">wp-zjuem，zju cc98表情系统 in wordpress</a></li>]]></content:encoded>
			<wfw:commentRss>http://blog.11034.org/2011-10/google_2012_campus.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ACM初上手</title>
		<link>http://blog.11034.org/2011-07/begin_acm.html</link>
		<comments>http://blog.11034.org/2011-07/begin_acm.html#comments</comments>
		<pubDate>Tue, 26 Jul 2011 15:49:55 +0000</pubDate>
		<dc:creator><![CDATA[-Flyぁ梦-]]></dc:creator>
				<category><![CDATA[ACM]]></category>

		<guid isPermaLink="false">http://blog.stariy.org/?p=951</guid>
		<description><![CDATA[ACM小菜鸟，仅懂C++基本语法（OOP那部分真心不太懂），略懂STL皮毛，信不信由你，反正俺就那么挫&#82 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>ACM小菜鸟，仅懂C++基本语法（OOP那部分真心不太懂），略懂STL皮毛，信不信由你，反正俺就那么挫&#8230;纯新手玩玩又不犯法，虽然WA很多TLE很多，而且还是无证程序猿，不过动车事件真的不是我干的！暑假在家没点啥事，偶尔做做题，第一次在ZOJ上做月赛（2011 July），第一次上TopCoder做SRM（512），让寂寞无聊的暑假小有点事做。</p>
<p><span id="more-951"></span></p>
<p>ZOJ 3516 Tree of Three，ZOJ月赛May中的一题，算是不难（高手都叫他水题的，俺不敢，至少俺挂了好几次），建立起树的数据结构然后dfs一下回溯的时候维护一下3个最大值就可以了，可是连续TLE了3次，navi看了说算法没啥问题，最终被寒仔发现是输入输出的问题，打击甚大。习惯用C++的cin和cout，挺方便，悲剧就在这里，换成C的scanf、printf和puts后，TLE（2s时限）瞬间变到了240ms，泪流满面。怪不得网上看各种ACMer的代码都是用的C风格的输入输出，果然是有道理的！</p>
<p>感谢一直帮助俺的<a title="navi学长的twitter" href="https://twitter.com/navimoe" target="_blank">navi</a>学长和<a title="寒仔的blog" href="http://blog.lifetoy.org/" target="_blank">寒仔</a>大牛！</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;吐槽分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>本来打算8月份到实验室去报道，谁知被老师一通电话又提前10天给召唤过去了，也罢。实验室在西溪北园的软件楼辅楼，叫高分网格实验中心，其实一点都不知道它是干神马的，只是当初觉得导师陈华钧的项目貌似还有点趣的，也基本以Java开发为主，蛮适合自己。糟糕的是实验室不能上网，西溪的伙食不好又贵，早9晚5的严格打卡制度没啥自由时间，最悲剧的是申请暑假的临时宿舍在了玉泉2舍，空调是不用想了，都不知道能不能撑过这个暑假&#8230;</p>
<p>最后天大地大死者最大，bless 7.23 甬台温铁路撞车事件中的遇难者和受伤者。一个月前，来回经过事发地点去了趟厦门，一个月后悲剧发生，小有余悸。</p>
<h4  class="related_post_title">随便看一看</h4><ul class="related_post"><li>2012-08-29 -- <a target="_blank" href="http://blog.11034.org/2012-08/the_tale_of_hachi.html" title="八公的故事 Hachi: A Dog&#8217;s Tale">八公的故事 Hachi: A Dog&#8217;s Tale</a></li><li>2014-11-17 -- <a target="_blank" href="http://blog.11034.org/2014-11/tsingtao.html" title="青岛，成也机票，败也机票">青岛，成也机票，败也机票</a></li><li>2015-08-28 -- <a target="_blank" href="http://blog.11034.org/2015-08/tomcat_linux.html" title="Linux下搭建Tomcat环境">Linux下搭建Tomcat环境</a></li><li>2013-03-13 -- <a target="_blank" href="http://blog.11034.org/2013-03/journey_to_the_west.html" title="大话西游，西游降魔">大话西游，西游降魔</a></li><li>2011-03-24 -- <a target="_blank" href="http://blog.11034.org/2011-03/apache_fileupload.html" title="使用Apache FileUpload">使用Apache FileUpload</a></li></ul><h4 class="related_post_title">看看 ACM </h4><ul class="related_post"><li>2012-12-06 -- <a target="_blank" href="http://blog.11034.org/2012-12/string.html" title="整理下字符串的一些数据结构和算法">整理下字符串的一些数据结构和算法</a></li><li>2012-10-12 -- <a target="_blank" href="http://blog.11034.org/2012-10/zoj_2891.html" title="zoj 2891">zoj 2891</a></li><li>2011-10-20 -- <a target="_blank" href="http://blog.11034.org/2011-10/zoj_100_ac.html" title="ZOJ起步 100AC">ZOJ起步 100AC</a></li><li>2011-10-14 -- <a target="_blank" href="http://blog.11034.org/2011-10/google_2012_campus.html" title="Google2012校招笔试">Google2012校招笔试</a></li>]]></content:encoded>
			<wfw:commentRss>http://blog.11034.org/2011-07/begin_acm.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
