<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Oh233的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Oh233</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Oh233]]></copyright><item><title><![CDATA[【龙书答案】第三章解析（未完成）]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/46568171</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/46568171</guid><author>Oh233</author><pubDate>Sat, 20 Jun 2015 00:23:57 +0800</pubDate><description><![CDATA[Exercise 3.3Problem 3.3.1Consult the language reference manuals to determine
The sets of characters that form the input alphabet (exclude those may only appear in character strings or comments).
The le]]></description><category></category></item><item><title><![CDATA[【编译原理龙书笔记】（三）词法分析（附联系答案）（仍未完成）]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/46487485</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/46487485</guid><author>Oh233</author><pubDate>Sun, 14 Jun 2015 01:57:07 +0800</pubDate><description><![CDATA[这篇博客是根据自己学习龙书的过程编写，因为博主习惯了英语环境，在强行从英语转化为中文的时候难免会有些不自然，请大家谅解。配套的练习题答案可以在 https://github.com/Oh233/Dragon_book_exercise 看到。感谢沉鱼姐姐，很多答案都是参考了她的github，虽然无缘认识，但也算是一位领路人。3.1 词法分析器的作用词法分析是编译的第一阶段。词法分析器读取了源程序，将]]></description><category></category></item><item><title><![CDATA[Codeforces 551B ZgukistringZ （字符串处理）]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/46484529</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/46484529</guid><author>Oh233</author><pubDate>Sat, 13 Jun 2015 20:55:44 +0800</pubDate><description><![CDATA[最近已经很久没有弄csdn和刷题了，感觉自己水了不少，还是要赶紧刷题准备比赛才行啊。题目介绍Professor GukiZ doesn’t accept string as they are. He likes to swap some letters in string to obtain a new one.GukiZ has strings a, b, and c. He wants to o]]></description><category></category></item><item><title><![CDATA[【编译原理龙书笔记】（二）一个简单的语法制导翻译器（仍未完成）]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/46476181</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/46476181</guid><author>Oh233</author><pubDate>Fri, 12 Jun 2015 22:29:43 +0800</pubDate><description><![CDATA[这篇博客是根据自己学习龙书，因为博主习惯了英语环境，在强行从英语转化为中文的时候难免会有些不自然，请大家谅解。配套的练习题答案可以在 https://github.com/Oh233/Dragon_book_exercise 看到。感谢沉鱼姐姐，很多答案都是参考了她的github，虽然无缘认识，但也算是一位领路人。正文：一个简单的语法制导翻译器在本章中，要先给一个编译器大致的idea，而并非一开始就]]></description><category></category></item><item><title><![CDATA[Codeforces 519D A and B and Interesting Substrings (前缀和)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/44017147</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/44017147</guid><author>Oh233</author><pubDate>Mon, 02 Mar 2015 13:17:16 +0800</pubDate><description><![CDATA[这次的codeforces真是无与伦比的水，但是即使如此，这道几百个人做出来的D我依然没有过，实在是sad story。
具体来说题目的话，题目是说给定每个字母的权值（一共只有26个小写英文字母的组合单词），以及一个字符串，找出这个字符串的子字符串中的满足
1. 除去第一个和最后一个字母中间加和为0的。
2. 第一个字母和最后一个字母相同的。
输出这样的字符串有几个。


刚开始我竟]]></description><category></category></item><item><title><![CDATA[Codeforces 513C Second price auction (bruteforce)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/43854835</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/43854835</guid><author>Oh233</author><pubDate>Mon, 16 Feb 2015 21:10:03 +0800</pubDate><description><![CDATA[问题描述：
如题所说，second price auction，讲的是几个人拍卖，出价最高的人以第二名的价格购得产品。给定的数据是第i个人出价的上下界，每种钱都是等可能性的，求最后花费钱的期望。
其实曾经做过这类的游戏所以规则还是一眼即明，问题就在于题目到底该怎么做。
对于每一个可能出现的价钱，枚举一种组合情况（意为对于每一个人，枚举其出的钱是大于等于该价钱，还是小于该价钱），这种时间复杂度]]></description><category></category></item><item><title><![CDATA[前世今生--STL]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42915733</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42915733</guid><author>Oh233</author><pubDate>Tue, 20 Jan 2015 11:42:44 +0800</pubDate><description><![CDATA[#include 
嘛，string就是一个用于字符串处理的标准类库，但是需要注意的是其速度可能会比直接操纵char数组要慢一些。
1.reverse
reverse这个方法是我一直都想找到但是没有找到的，在判断回文的时候格外好用。

string s = "abcdef";
string ss = s; // ss = "abcdef"
reverse(ss.begin(),ss.en]]></description><category></category></item><item><title><![CDATA[POJ3253 数据结构 (优先队列)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42840929</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42840929</guid><author>Oh233</author><pubDate>Sun, 18 Jan 2015 20:35:17 +0800</pubDate><description><![CDATA[Fence Repair
题目概述：


这道题是说农夫约翰现在要开始锯木板了，但是锯木板是要有很麻烦的花费的。当你把一块长度为A的木板锯成长度为B，C的时候，花费就为B+C，现在给了想要把木板切成几块并且这些块的长度，要求想出一种最少花费的切割方式，并求出这时的最小花费。


算法思想：


分析：其实可以把分割问题看成一棵树，比如说题目中给的5，8，8，就是21下面两个叉，]]></description><category></category></item><item><title><![CDATA[POJ2431 数据结构 (优先队列)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42789055</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42789055</guid><author>Oh233</author><pubDate>Sat, 17 Jan 2015 00:07:29 +0800</pubDate><description><![CDATA[题目概述：


这道题是说一辆小车每单位长度露单位油，然后就这么开呀开呀想要到距离为L的另一个城镇去。路上有一些加油站，每个加油站距离目标城镇的距离给了，能加的油给了，判断最少需要的加油次数。


算法思想：


嗯大概是这样，我们该如何找到最少的加油次数呢。
答案是将加油站看成“备胎”，所以当小车每经过一个加油站，都要将这个加油站能加的油记载到某个容器里面，然后再在需要的时候]]></description><category></category></item><item><title><![CDATA[POJ2533 动态规划 (最长上升子序列)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42784599</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42784599</guid><author>Oh233</author><pubDate>Fri, 16 Jan 2015 21:56:04 +0800</pubDate><description><![CDATA[嘛，两种方法，n^2和nlogn。
题目概述：


LIS，卧槽真的不是我不想描述，而是找不到方法描述呀。总之就是最长！上升！子序列！


算法思想：


提供两种dp方法。
第一种，dp状态记为dp[i]表示以a[i]结尾的序列的最大长度。这样推得的状态方程就是dp[i] = max(dp[i],dp[j]+1) when a[j]
第二种，dp状态记为dp[i]表示长度]]></description><category></category></item><item><title><![CDATA[POJ1458 动态规划 (LCS，水)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42783065</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42783065</guid><author>Oh233</author><pubDate>Fri, 16 Jan 2015 20:42:05 +0800</pubDate><description><![CDATA[嗯确实是LCS最最基础的入门题了。
简直是全裸。


题目概述：


LCS，没啥可说，题目说的十分给面子了。



算法思想：


算法就是 dp[i+1][j+1] = s1[i] == s2[j] ? dp[i][j]+1 : max(dp[i][j+1],dp[i+1][j]);


代码部分：


#include 
#include 
#incl]]></description><category></category></item><item><title><![CDATA[POJ1182 数据结构 (并查集)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42776617</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42776617</guid><author>Oh233</author><pubDate>Fri, 16 Jan 2015 14:21:59 +0800</pubDate><description><![CDATA[嗯，相比于网上流传的记载relation推公式的方法，我采用了某一本教材上面的方法，方法下面详述。


题目概述：


一共给定N种动物，K句话，动物们都是A，B，C的一种，且遵循A吃B，B吃C，C吃A的循环关系，那现在按顺序给定话，要求判断给定的这句话有没有矛盾。


算法思想：


这道题是利用并查集解决问题的好题目，直接开一个三倍于MAX_N的数组，比如说1记载1是A]]></description><category></category></item><item><title><![CDATA[POJ1384 动态规划 (完全背包)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42746613</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42746613</guid><author>Oh233</author><pubDate>Thu, 15 Jan 2015 20:04:02 +0800</pubDate><description><![CDATA[嗯哼，继续动态规划，其实有点想滚去做开发。


题目概述：


有一个存钱的人，往小猪罐子里存钱。给定罐子净重，和存钱后的质量。继而给定每一种扔进去硬币的价值和重量，要求计算最小的可能的满足这个总质量的钱的价值总和。
很明显的完全背包，因为投进去的钱可以是无限的。


算法思想：


具体描述一下动态规划数组。
这道题是完全背包，所以第二层循环可以用顺序递增。关于怎么把]]></description><category></category></item><item><title><![CDATA[POJ1837 动态规划 (01背包)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42744087</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42744087</guid><author>Oh233</author><pubDate>Thu, 15 Jan 2015 17:38:34 +0800</pubDate><description><![CDATA[好了！开始干DP。
话说我已经预感到我dp会弱到一定程度了。预计会先持续干两天的dp。


题目概述：


这道题目是说现在有一个神奇的天平，你的目的是要令他平衡。天平两边长度均为15，每边最多有20个挂钩，一共提供最多20个砝码，要求计算当所有砝码都挂上的时候，能使天平平衡的悬挂方式一共有多少种呢。


算法思想：


不得不承认，即使知道这是一个01背包的题，开始做的]]></description><category></category></item><item><title><![CDATA[POJ1035 字符串处理(水)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42716199</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42716199</guid><author>Oh233</author><pubDate>Wed, 14 Jan 2015 20:53:57 +0800</pubDate><description><![CDATA[嗯虽然题目上写着水，但是说起来都是辛酸泪啊T^T


题目概述：


如今你身为一个项目组的一员，给你输入一个字典，单词不超过10000个，以#标记结束。之后再给定几个单词，进行字符串的匹配。当然这个匹配不是完全匹配。如果字典里面的单词通过删除/加入/替换其中一个字母，就可以达到所给单词的话，也算匹配。输出所有匹配的可能字符串。


算法思想：


嗯说说为什么会辛酸泪吧。]]></description><category></category></item><item><title><![CDATA[POJ3026 图论(prim方法)+BFS求距离]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42692435</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42692435</guid><author>Oh233</author><pubDate>Wed, 14 Jan 2015 00:28:03 +0800</pubDate><description><![CDATA[就这么做到了人生中第一道略有难度的组合题哈哈哈哈心里还有点小激动。
来认真写一发题解好了。


题目概述：


有一簇叫做Borg的外星生物，想要扫描整个迷宫建立与其所有下属的联系。迷宫有空格，代表能走的路，有#代表墙壁。有A代表生物，有S代表初始位置。从一个点出发，过程中可以随意分裂，但是行走方式只能是上下左右。然后我们要写一个程序，计算扫描的最短距离。也就是说，当有一个方式连接起]]></description><category></category></item><item><title><![CDATA[POJ1258 图论(Prim方法)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42680997</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42680997</guid><author>Oh233</author><pubDate>Tue, 13 Jan 2015 19:24:36 +0800</pubDate><description><![CDATA[题目概述：


农夫约翰被选举成为了当地村落的村长，他自己有一台高速的宽带，他现在想要把这个宽带分享给村里其他所有的人。自然，家与家之间的连接需要假设宽带，现在给定每两家之间的距离，那么我们要给约翰设计一条宽带架设方法，这条方法要能够连接约翰和其他所有用户，并且总架设长度最短。


算法思想：


挺明显的最小生成树，就是从农夫约翰那个点为起点，然后可以选择按prim的方法来遍历]]></description><category></category></item><item><title><![CDATA[codeforces #285 div2 *A B *C]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42656823</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42656823</guid><author>Oh233</author><pubDate>Tue, 13 Jan 2015 00:03:18 +0800</pubDate><description><![CDATA[总结的来说，这次还是只有一道题，但是我是属于被第一题坑了。
Problem A
题目概述：


简单到死的代码题，就是题目给你一个式子，然后让你按照这个式子算给定的数，之后比较大小。


算法思想：


别问我为什么错了....因为我在double之间判断了大小....忽略了题目中所给的其一定能被250整除卧槽。但是其实看很多人double写上去也对了，这可能是因为他们算3/]]></description><category></category></item><item><title><![CDATA[POJ2475 图论(Prim方法)]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42656757</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42656757</guid><author>Oh233</author><pubDate>Tue, 13 Jan 2015 00:02:38 +0800</pubDate><description><![CDATA[题目概述：


现有Flatopia这个地方的政府打算修建公路，打算修建的公路应该能够满足从一个地点一定能到达另一个地点，政府的目的是在保证任意一个城镇均能从其他任意城镇到达的前提下，要使修建的那条最长公路的长度最小。
翻译一下，就是连通图（保证任意一个城镇均能从其他任意城镇到达），求最小生成树（公路）的最大边（最长公路）。


算法思想：


用最小生成树中的prim算法，按]]></description><category></category></item><item><title><![CDATA[codeforces GoodBye 2014 *A *B C（未完）]]></title><link>https://blog.youkuaiyun.com/Oh233/article/details/42641045</link><guid>https://blog.youkuaiyun.com/Oh233/article/details/42641045</guid><author>Oh233</author><pubDate>Mon, 12 Jan 2015 12:56:43 +0800</pubDate><description><![CDATA[嗯重复一次，题目中带星号的是当时我没做出来的题。
真是很抱歉，因为这次做的非常不好，所以也就一直拖更，没有写这一round的题解。


Problem A
题目概述：
算法思想：]]></description><category></category></item></channel></rss>