<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fiveyes的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fiveyes</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fiveyes]]></copyright><item><title><![CDATA[《算法竞赛入门经典（第2版）》习题3-10 盒子 (Box, ACM/ICPC NEERC 2004, UVa1587)]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/107133432</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/107133432</guid><author>fiveyes</author><pubDate>Sun, 05 Jul 2020 00:54:54 +0800</pubDate><description><![CDATA[《算法竞赛入门经典（第2版）》习题3-10 盒子 (Box, ACM/ICPC NEERC 2004, UVa1587)
给定6个矩形的长和宽wi和hi(1&lt;=wi,hi&lt;=10000)，判断它们能否构成长方体的6个面。
【输入】
包含若干个测试样例，每个样例包含6行，每行包括两个整数w和h，表示长方形的宽和高。(1&lt;=w,h&lt;=10000)
【输出】
对每一个样例，输出‘POSSIBLE’表示能够构成长方体，输出‘IMPOSSIBLE’表示不可以。
样例输入
1345 2584
2]]></description><category></category></item><item><title><![CDATA[《算法竞赛入门经典（第2版）》习题3-9 子序列 (All in All, UVa 10340)]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/107132017</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/107132017</guid><author>fiveyes</author><pubDate>Sat, 04 Jul 2020 23:03:49 +0800</pubDate><description><![CDATA[《算法竞赛入门经典（第2版）》习题3-9 子序列 (All in All, UVa 10340)
输入两个字符串s和t，判断是否可以从t中删除0个或多个字符（其他顺序不变），
得到字符串s。例如，abcde可以得到bce，但无法得到dc。
输入：
有若干行，每行包含两个字符串s和t，中间用空格分开，全部输入以EOF结束。
输出：
Yes或No，表示是否可以由t得到s。
样例输入
sequence subsequence
person compression
VERDI vivaVittorioEmanuel]]></description><category></category></item><item><title><![CDATA[《算法竞赛入门经典（第2版）》 习题3-7 DNA序列（DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368）]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/107098187</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/107098187</guid><author>fiveyes</author><pubDate>Fri, 03 Jul 2020 09:02:45 +0800</pubDate><description><![CDATA[《算法竞赛入门经典（第2版）》 习题3-7 DNA序列（DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368）
输入m个长度均为n的DNA序列，求一个DNA序列，到所有序列的总hamming距离尽量小。两个等长字符串的hamming
距离等于字符不同的位置个数，例如，ACGT和GCGA的hamming距离为2（左数第1、4个字符不同）。
输入整数m和n（4&lt;=m&lt;=50，4&lt;=n&lt;=1000），以及m个长度为n的DNA序列（只包含字母A]]></description><category></category></item><item><title><![CDATA[《算法竞赛入门经典（第2版）》 习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232)]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/107087501</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/107087501</guid><author>fiveyes</author><pubDate>Thu, 02 Jul 2020 18:00:00 +0800</pubDate><description><![CDATA[《算法竞赛入门经典（第2版）》 习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232)
输入一个r行c列（1&lt;=r，c&lt;=10）的网格，黑格用“*”表示，每个白格都填有一个字母。如果一个白格的左边相邻位置或者上边相邻位置没有白格（可能是黑格，也可能出了网格边界），则称这个白格是一个起始格。首先把所有起始格按照从上到下、从左到右的顺序编号为1，2，3，…，如图3-7所示。接下来要找出所有横向单词（Across）。这些]]></description><category></category></item><item><title><![CDATA[《算法竞赛入门经典（第2版）》 习题3-5 谜题 (Puzzle, ACM/ICPC World Finals 1993, UVa227)]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/107064512</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/107064512</guid><author>fiveyes</author><pubDate>Wed, 01 Jul 2020 15:19:01 +0800</pubDate><description><![CDATA[《算法竞赛入门经典（第2版）》 习题3-5 谜题 (Puzzle, ACM/ICPC World Finals 1993, UVa227)
有一个5*5的网格，其中恰好有一个格子是空的，其他格子各有一个字母。一共有4种指令：A，B，L，R，分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列（以数字0结束），例如ARRBBL0，输出指令执行完毕后的网格。如果有非法指令，应输出“This puzzle has no final configuration.”。
分析
此题是典型的模拟题（即]]></description><category></category></item><item><title><![CDATA[《算法竞赛入门经典（第2版）》 习题3-4 周期串(Periodic Strings, UVa455)]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/107060822</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/107060822</guid><author>fiveyes</author><pubDate>Wed, 01 Jul 2020 12:09:43 +0800</pubDate><description><![CDATA[《算法竞赛入门经典（第2版）》 习题3-4 周期串(Periodic Strings, UVa455)
周期串 如果一个字符可以由某个长度为k的字符串重复多次得到，则称该串以k为周期。例如，abcabcabcabc以3为周期，注意，它也以6和12为周期输入一个长度不超过80的字符串，输出其最小周期。
分析
从字符串s[0]开始，逐个检测每一个开头为s[0]、结尾为s[i]的串，如果其中一个串是周期，程序结束，输出这个最小周期即可。
代码
#include &lt;stdio.h&gt;
#include &]]></description><category></category></item><item><title><![CDATA[《算法竞赛入门经典（第2版）》习题3-1 得分 （Score, ACM/ICPC Seoul 2005, UVa1585）]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/107052926</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/107052926</guid><author>fiveyes</author><pubDate>Tue, 30 Jun 2020 23:19:42 +0800</pubDate><description><![CDATA[习题3-1 得分 （Score, ACM/ICPC Seoul 2005, UVa1585）
给出一个由O和X组成的串（长度为1-80），统计得分。每个O的得分为目前连续出现的O的个数，X的得分为0。例如：OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。
分析
设置两个累加值n和sum，分别用于累计当前的字母’O’应得的分数，以及累计总分。
遍历串的每一个字符，若等于’O’，则分别累加n和sum，若不为’O’（即X），则将n置0即可。
代码：
#include &lt;stdio.h&g]]></description><category></category></item><item><title><![CDATA[《算法竞赛入门经典（第2版）》例题3-6  UVa1584 环状序列]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/107040889</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/107040889</guid><author>fiveyes</author><pubDate>Tue, 30 Jun 2020 14:01:18 +0800</pubDate><description><![CDATA[UVa1584 环状序列
《算法竞赛入门经典（第2版）》52页，例题3-6 环状序列（Circular Sequence ACM/ICPC Seoul 2004, UVa1584）
长度为n的环状串有n种表示法，分别为从某个位置开始顺时针得到。在这些表示法中，字典序最小的称为“最小表示”。
输入一个长度为n(1&lt;=n&lt;=100)的环状DNA串（只包含A、C、G、T这4种字符）的一种表示法，你的任务是输出该环状串的最小表示。例如，CTCC的最小表示是CCCT，CGAGTCAGCT的最小表示为AGC]]></description><category></category></item><item><title><![CDATA[UVa1583 最小生成元 只需枚举几十次的算法]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/107026005</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/107026005</guid><author>fiveyes</author><pubDate>Mon, 29 Jun 2020 18:57:23 +0800</pubDate><description><![CDATA[UVa1583 最小生成元
在刘汝佳老师的《算法竞赛入门经典（第2版）》52页例题3-5中看到此题，发现此题并不需要枚举太多，实际上只需要枚举很少的值即可。
原题内容如下
例题 3-5  生成元 （Digit Generator, ACM/ICPC Seoul 2005, UVa1583）
如果x加上x的各个数字之和得到y，就说x是y的生成元。给出n(1&lt;=n&lt;=100000)，求最小生成元。无解输出0。例如，n=216，121，2005时的解分别为198，0，1979。
分析
由于每个数位的数]]></description><category></category></item><item><title><![CDATA[《C程序设计语言》学习笔记——练习3-3]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/49421341</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/49421341</guid><author>fiveyes</author><pubDate>Mon, 26 Oct 2015 11:05:04 +0800</pubDate><description><![CDATA[在写程序之前感觉很多细节没想清楚，写出来之后就发现有些是不需要考虑太多，应该先把主体写出来，把一些细致的地方放到下一步的调试中去。
/* 练习3-3
编写函数expand(s1,s2)，将字符串s1中诸如a-z一类的速记符号在字符串s2中扩展成等价
的完整列表abc......xyz。允许处理大小写字母和数字，并可以处理诸如a-b-c与a-z0-9
与-a-z等情况。正确安排好前导与尾随的-。
]]></description><category></category></item><item><title><![CDATA[《C程序设计语言》学习笔记——练习3-2]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/49331429</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/49331429</guid><author>fiveyes</author><pubDate>Thu, 22 Oct 2015 11:41:43 +0800</pubDate><description><![CDATA[/* 练习3-2 （只写了\n和\t）
编写函数escape(s,t)，将字符串t拷贝到字符串s中，并在拷贝过程中将诸如换行符与
制表符等等字符转换成诸如\n与\t等换码序列。使用switch语句。再编写一个具有相反功
能的函数，在拷贝过程中将换码序列转换成实际字符。
*/
#include 

void escape(char *s, char *t)
{
	int i, j;
	for (i ]]></description><category></category></item><item><title><![CDATA[《C程序设计语言》学习笔记——练习4-1]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/48805233</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/48805233</guid><author>fiveyes</author><pubDate>Tue, 29 Sep 2015 12:28:22 +0800</pubDate><description><![CDATA[#include 
  2 #define MAX 100
  3 /* 练习4-1 编写一个函数strindex(s,t)，用于返回字符串t在s
  4    中最右出现的位置，如果s中不包含t，那么返回-1。    */
  5 
  6 int strindex(char source[], char searchfor[]);
  7 
  8 main()
  9 {
 10      ]]></description><category></category></item><item><title><![CDATA[《C程序设计语言》学习笔记——练习3-1]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/47361933</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/47361933</guid><author>fiveyes</author><pubDate>Sat, 08 Aug 2015 20:48:45 +0800</pubDate><description><![CDATA[计时的结果，都是0.000000......
/*
练习3-1 在上面有关二分查找的例子中，在while循环语句内共作了两次测试，其实只要一次就够了（以把更多的测试放在外面为代价）。重写
这个函数，使得在循环内部只进行一次测试，并比较两者运行时间的区别。
*/
#include 
#include 
#include 

int binsearch(int x, int v[], int n)
]]></description><category></category></item><item><title><![CDATA[《C程序设计语言》学习笔记——练习2-5]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/46966239</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/46966239</guid><author>fiveyes</author><pubDate>Mon, 20 Jul 2015 11:46:28 +0800</pubDate><description><![CDATA[这个问题令我困惑的就是“任一字符”，难道还要随便挑一个么？为了简单，我只是遇到第一个符合条件的就返回了。
/*
练习2-5 编写函数any(s1,s2)，它把字符串s2中任一字符在字符串s1中的第一次出现的位置
作为结果返回。如果s1中没有包含s2中的字符，那么返回-1。（标准库函数strpbrk具有同样
的功能，但它返回的是指向该位置的指针。）
*/
#include 
#define MAX]]></description><category></category></item><item><title><![CDATA[《C程序设计语言》学习笔记——练习2-4]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/46965839</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/46965839</guid><author>fiveyes</author><pubDate>Mon, 20 Jul 2015 11:17:20 +0800</pubDate><description><![CDATA[原来的squeeze函数很巧妙，基本上照着抄就可以了。但是要在处理每一个s2中的字符之后，修改s1中'\0'的位置。
/*
练习2-4 重写squeeze(s1,s2)函数，把字符串s1与字符串s2中字符匹配的各个字符都删除掉。
*/
#include 
#define MAX 50

void squeeze(char s1[], char s2[])
{
	int i, j, index; ]]></description><category></category></item><item><title><![CDATA[《C程序设计语言》学习笔记——练习2-3]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/46939509</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/46939509</guid><author>fiveyes</author><pubDate>Sat, 18 Jul 2015 09:10:48 +0800</pubDate><description><![CDATA[开始的时候没有把处理的流程搞清晰，以为这会很容易，结果程序出现了一些混乱和错误。后来先把处理的流程搞清楚，就变得很明白了。
/*
练习2-3 编写函数htoi(s)，把由十六进制数字组成的字符串(前面可能包含0x或0X)转换
成等价的整数值。字符串中允许的数字为：0~9，a~f，以及A~F。
*/
#include 
#define MAX 20

int htoi(char s[])
{
	i]]></description><category></category></item><item><title><![CDATA[《C程序设计语言》学习笔记——练习2-1]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/46878287</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/46878287</guid><author>fiveyes</author><pubDate>Tue, 14 Jul 2015 15:06:18 +0800</pubDate><description><![CDATA[从标准头文件中直接输出确实比较容易，只是百度的时间了。要是自己计算确实比较困难。为了看得比较清楚，把sizeof也加上了。
/*
编写一个程序来确定signed及unsigned的char、short、int与long变量的取值范围，
可以通过打印标准头文件中的相应值来完成，也可以直接计算来做。后一种方法较困难
一些，因为要确定各种浮点类型的取值范围
*/
#include 
#include ]]></description><category></category></item><item><title><![CDATA[《C程序设计语言》学习笔记——练习1-20]]></title><link>https://blog.youkuaiyun.com/fiveyes/article/details/46532423</link><guid>https://blog.youkuaiyun.com/fiveyes/article/details/46532423</guid><author>fiveyes</author><pubDate>Wed, 17 Jun 2015 12:32:59 +0800</pubDate><description><![CDATA[《C程序设计语言》学习笔记——练习1-20]]></description><category></category></item></channel></rss>