徹夜禁止
码龄12年
求更新 关注
提问 私信
  • 博客:10,842
    10,842
    总访问量
  • 49
    原创
  • 2
    粉丝
  • 42
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
加入CSDN时间: 2014-10-06

个人简介:日拱一卒,功不唐捐

博客简介:

qq_21606413的博客

查看详细资料
个人成就
  • 获得6次点赞
  • 内容获得5次评论
  • 获得8次收藏
  • 博客总排名1,936,947名
创作历程
  • 49篇
    2020年
成就勋章
TA的专栏
  • 第4章 函数和递归
    5篇
  • WA
    5篇
  • 第6章 数据结构基础
    16篇
  • 第3章 数组和字符串
    7篇
  • 第5章 C++和STL入门
    16篇
  • POJ
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 11

TA参与的活动 0

兴趣领域 设置
  • 数据结构与算法
    排序算法推荐算法
  • 人工智能
    集成学习
创作活动更多

「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令

谁说嵌入式只会“Ctrl+C 调包”和“拿电烙铁焊板子”?2026嵌入式全栈技术征锋令正式启幕! 本次活动专为硬核硬件/软件开发者打造,无论你是刚玩转裸机外设的萌新,还是精通RTOS调度、死磕底层驱动的行业老手,亦或是执掌系统架构的大神,这里都是你证明实力的舞台! 拒绝表面功夫,每一行代码,都有撬动硬件的力量!晒出你的硬核工程实战,为嵌入式开发者的全栈硬实力正名!

210人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

例题6-7 Uva122-Trees on the level(BFS)

树的广度优先遍历,很基础的题目。要注意的是如何从输入流中获取需要的数据。题目链接:UVa 122AC代码:#include <iostream>#include <fstream>#include <cstring> #include <vector>#include <queue>using namespace std;const int maxn = 1000;struct Node { bool have_value;
原创
博文更新于 2020.09.09 ·
164 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-6 UVa679-Dropping Balls(满二叉树、递归)

这题解法同样很多,紫书上直接模拟最后一颗小球的做法很妙,在此就不再赘述。想记录的方法是递归解法。列出前四层每个小球的落点,以第2和第3层为例:第二层是2,3;第三层是4,6,5,7;不难注意到,4,6分别是22与32,而5,7分别是22+1与32+1;在其他层里也可以找到这样的规律,所以可以使用以下的递归解法。题目链接:UVa 679AC代码:#include <iostream>#include <cmath>using namespace std;int tree
原创
博文更新于 2020.09.09 ·
231 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-17 UVa10562-Undraw the Trees

将每次的输入全部读取到二维数组中,在第一行找到根结点开始进行先序遍历即可。注意括号的输出和换行符。题目链接:UVa 10562AC代码:#include <iostream>#include <set>#include <cstring>using namespace std;//#define DEBUG//#ifdef DEBUG//#include <fstream>//#define cout out//ofstream out(
原创
博文更新于 2020.05.18 ·
265 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

例题6-16 UVa10129-Play On Word(欧拉道路)

把每个单词的首位两个字母看做一条边的两个顶点,这样就可以把图建起来了。之后先深搜看看这个图是不是连通图,不是的话不存在欧拉道路。之后判断每个顶点的出度入度是否相同,如果不相同的点超过两个,也不存在欧拉道路。如果所有点的出度入度都相同,或者不相同的两个点恰好可以作为起点和终点,则存在欧拉道路。我是用邻接表实现的。题目链接:UVa 10129AC代码:#include <iostream>#include <list>#include <set>using nam
原创
博文更新于 2020.05.18 ·
257 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题 6-15 UVa10305-Ordering Tasks(拓扑序列)

第一次接触到的拓扑序列的题。尝试了邻接表和邻接矩阵+深搜两种写法,后者是紫书的方法。邻接表的方法是考察每个点的入度,邻接矩阵的方法是通过深搜找到每条路径的终点,将它比喻为结果的话,它的父结点就是它的依附条件,同理推下去,每次深搜得到的点都应该放在当前拓扑序列的队首。题目链接:UVa 10305AC代码:邻接表解法:#include <iostream>#include <list>#include <queue>using namespace std;c
原创
博文更新于 2020.05.18 ·
261 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-14 UVa816-Abbott的复仇(BFS)

BFS的题目,值得学习的地方是灵活地使用数组来表示结点的各种状态,以及将定长的字符串转换成对应的数字以方便使用。先记录一点。题目链接:UVa 816AC代码:#include <iostream>#include <cstring>#include <queue>using namespace std;const char* dirs = "NESW";const char* turns
原创
博文更新于 2020.05.17 ·
355 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

例题6-8 UVa548-Tree(DFS,使用基于指针的树实现)

树的深度优先遍历,紫书上给出的是数组的实现方式。我又写了一遍基于指针的树,思路借鉴了紫书,权当练习了。题目链接:UVa 548AC代码:#include <iostream>#include <sstream>#include <vector>//#include <fstream>using namespace std;vector<int> in_order, post_order;int best, best_sum;
原创
博文更新于 2020.05.17 ·
190 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-13 UVa1103-Ancient Messages(DFS)

算是很复杂的题了(起码对我来说)。彻底弄懂之后梳理一下解法步骤吧:把十六进制的输入转成二进制保存。在保存的图像外圈新增一个白圈。这样做是为了把符号处在图像边缘时切割开的白色部分全部连在一起,以便于之后着色。实际操作时我是在存放的时候就留出了左侧和上方的空间,然后在深搜的时候把四个方向的空行全部加上,间接加了白圈。外层的白色全部着色后,剩余的白色就只剩下符号内部的白洞了。这时对每个符号分别进行深搜,把黑色块换成新的颜色,遇到白色块时把与这个白色块连通的白色块全部着成同种颜色,同时计数器加一,表示有一个
原创
博文更新于 2020.05.17 ·
227 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-12 UVa572-Oil Deposits(二重循环确定八个方向)

这道题值得记录的点是使用二重循环确定八个方向,通过和-1,0,1的配合实现从一个点向八个方向辐射,很聪明的做法。题目链接:UVa 572AC代码:#include <iostream>#include <cstring>//#include <fstream>using namespace std;const int maxn = 1000;int m,n,flag[maxn][maxn];//标记当前点是否被访问过char vex[maxn][max
原创
博文更新于 2020.05.16 ·
205 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-11 UVa297-Quadtrees(不同于紫书的解法,基于指针的树实现)

第一次遇到四叉树的题目。紫书上相当于创建了32×32的二维数组来模拟整个大方块。而我的思路是:仿照建二叉树的方法建四叉树,只是多了两个子节点而已。分别用-1,0,1来表示当前节点的颜色,以便于合并以及计数。合并的细节我写到了注释里。计数时,将根结点(即最外层的大方块)看做拥有32×32=1024个像素点,那么第二层中,每个结点拥有1024/(2^2)个结点,以此类推。题目链接:[UVa 297](https://onlinejudge.org/index.php?option=com_onlinejud
原创
博文更新于 2020.05.15 ·
286 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题3-3 UVa401-Palindromes

输入一个字符串,判断它是否属于回文串以及镜像串。输入不包含0以及空白字符。#include <iostream>;#include <string.h>#include <ctype.h>using namespace std;const char* rev = "A 3 HIL JM O 2TUVWXY51SE Z 8 ";const ...
原创
博文更新于 2020.05.15 ·
175 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-10 UVa699-The Falling Leaves(指针建树版)

这道题就比较简单了,借助足够大的数组保存每个位置的值得总和就好。其实做完之后感觉建树反而显得冗余,因为我的代码是边读入边判断的,树结构其实没有实际的用处,只是在计算总和时顺便建好的,所以不建树可能是更好的方法(参照紫书)。当然如果是建好树后再遍历求结果的话树结构是有用的,但是很显然会复杂很多。题目链接:UVa 699AC代码:#include <iostream>#include <cstring>//#include <fstream>using names
原创
博文更新于 2020.05.15 ·
190 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-9 UVa839-Not so Mobile

依然还是尝试使用基于指针的树来解决,本来已经过了uDebug,但还是遇到了无限RE。第一次RE后,换到Dev c++进行调试,发现是旧标准下内存申请的问题(具体原因我也讲不清),缝缝补补终于调到Dev c++也没问题后继续submit,但还是RE。最终也没找到问题。但还是记录下代码。题目链接:UVa 839修改得面目全非的RE代码:#include <iostream>//#include <fstream>using namespace std;struct Node
原创
博文更新于 2020.05.15 ·
171 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-5 UVa12657-Boxes in a Line(不同于紫书的解法)

这道题很明显是双向链表了,因为要知道上一个盒子的位置。所以可以使用list库。但仅仅如此的话定位某个data还是需要从头查找,很浪费时间,而我也确实因此TLE了。后来看到别人使用vector保存对应data的指针,这样可以直接读取。但使用后还是TLE。怀疑是使用reverse翻转时浪费了时间。最终借用了紫书的inv标记,终于AC。题目链接:UVa 12657AC代码:#include <iostream>//#include <fstream>#include <ve
原创
博文更新于 2020.05.13 ·
230 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

例题6-4 UVa11988-Broken Keyboard (a.k.a. Beiju Text)(用不同于紫书的两种办法解决!)

这道题目紫书上给出的解法是使用数组模拟链表,个人认为不大好理解。所以尝试了新的办法:栈+双向队列以及双向链表。具体的细节都在注释里给出。其实还想用单向链表实现一下,等明天有时间再写吧。题目链接:UVa 11988AC代码①:双向链表#include <iostream>#include <list>using namespace std;int main() { string s; while (cin >> s) { list<char>
原创
博文更新于 2020.05.12 ·
261 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-3 UVa442-Matrix Chain Multiplication

这道题让我想起去年学数据结构时候做过的实验题:虽然说难度不同,要实现的目的也不同,但是思路上是完全一致的:把要参与运算的元素和符号分离开来,当触发某一条件时进行运算并对栈进行处理。这道题除了"(“和”)"外没有其他的运算符,所以只创建一个栈。题目链接:UVa 442AC代码:#include <iostream>#include <stack>#include <map>//#include <fstream>using namespace
原创
博文更新于 2020.05.11 ·
232 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

例题6-2 UVa514-Rails

很简单的模拟题,也是学到栈时很经典的填空题。按照做题时的思路一步步写下来就好了。在uDebug时发现最后还要多输出一个空行,算是易错点吧。题目链接:UVa 514AC代码:#include <iostream>//#include <fstream>#include <stack>using namespace std;const int maxn = 2000;int main() { int T, N, count = 0; //ofstream
原创
博文更新于 2020.05.11 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

习题5-15 UVa12333-Revenge of Fibonacci(TLE)(需字典树知识)

每次碰到斐波那契数列的题必有一次TLE…修改了几版之后仍然是TLE,除了输出-1的情况外几乎都很快了。之后参考了别人的代码,就是这一篇:ACM手记。虽然看懂了做法,但是可能有些细节没顾及到,所以还是WA了。最后就算这道题TLE吧,因为更多人的做法是我还没接触的字典树,等学到了再回头来做。题目链接:UVa 12333最终版的TLE代码:#include <iostream>#include <algorithm>#include <string>#include
原创
博文更新于 2020.05.09 ·
183 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

习题5-12 UVa511-Do You Know the Way to San Jose?

这道题对于英语不太行全靠机翻读题的我简直是灾难,读了三遍题以后对细节还是不太理解。开始写之后发现很多地方的处理都不是很完善,尤其是使用sort进行排序时,自定义的cmp无法引入另外的参数(我起初不会),也就没办法比较点到地图中心的距离对地图进行排序了。之后查看了即为前辈的代码,找到了解决办法:bind函数。
原创
博文更新于 2020.05.09 ·
350 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

习题3-6 UVa232-Crossword Answer

这道题WA了很多次,甚至在WA专栏里放了一个月。今天试着用了下uDebug,终于找到错误,改正了之后AC了!原来的代码没有考虑到第一行存在“*”的情况。uDebug太好用了!!题目链接[UVa 232](https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=830&page=show_problem&problem=168)AC代码:
原创
博文更新于 2020.05.08 ·
340 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏
加载更多