自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 UVA 140 带宽

这道题的思路就是对于所有可能的排列,计算出具有最小带宽的排列。 由于如果有多个最小带宽时要输出字典序最小的排列,所以需要为字母按照字典序编号。这里我是用set来记录所有出现的字母,然后利用set里面本来就排过序的特点,为每个字母编号,再建立图。 一个剪枝的方法时,如果在寻找一个新排列的过程中,已经发现某一个节点的带宽大于等于当前最优解,则可以放弃这次排列,进行下次排列。我觉得这种情况下如果搜索到

2017-07-14 19:49:09 329

原创 UVA 1599 理想路径

这道题思路很清楚,先反向bfs搜索点n到每个点的最短距离,然后再从点1正向bfs搜索,每次搜索距离减1的点,并将路径上颜色最小的点入队,如果有多个相同的则将这多个点入队。 对于队列中的任意一个点v,d[1]-d[v]一定是大于等于0的,所以可以用cost[d[1]-d[v]]来记录到点1为d[1]-d[v]距离的最小颜色值。一开始写完交上去TLE,还以为是每次调用n次vector的clear太慢,

2017-07-12 23:11:50 386

原创 UVA 1103 象形符号

此题是十六进制转为二进制+DFS,通过搜索图像中有几个被隔绝的白“洞”来判断是哪个文字。这里考虑一个问题,图像最外面的白色空间怎么办?想到先提前把图像外层的白色空间搜索完毕,从而搜索时只会考虑被包在中间的白色。但是如果黑色占据了边缘,隔绝了外层的白色呢?所以在这里我在整个图像的外面再加一层白色,从而使整个图像的外部白色连成一起。输出时,由于按照字典序输出,可以考虑使用vector,每次判断出一个文字

2017-07-11 14:36:04 443

原创 UVA 839 天平

记录下这道题。一开始写的f()函数感觉没有问题,和solve函数看上去是一样的,但就是WA。后来才发现,如果f()函数遇到读入数据不平衡时就会提前返回False,而没有接着去读下面的数据,从而导致后面的数据都读得出错,猜测应该是这里出现的错误。 下面附上AC的代码,其中包含一开始的f()函数,当然它是错的,没有使用它,在此做个记录。#include<cstdio>#include<iostrea

2017-07-10 17:08:46 342

原创 UVA 548 树

这道题的关键字在于根据中序遍历和后序遍历建立出二叉树。另外在寻找路径时,可使用深度优先的方式搜索,搜索到叶子节点时加以判断即可。 这里用到sstream来读入,也是一个技巧,记录下来。 代码如下:#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<s

2017-07-10 16:15:22 237

原创 UVA 122 树的层次遍历

这里使用数组来实现二叉树,用整数表示节点编号,left[u]和right[u]分别表示u节点的左孩子和右孩子的节点编号。 这里关键是按照输入建立出二叉树。 对应代码如下:#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<vector>#inclu

2017-07-10 14:13:50 277

原创 UVA 210 并行程序模拟

这道题模拟程序执行过程,就绪队列使用STL的双端队列deque,阻止队列使用普通队列。在遇到unlock时,把阻止队列的头节点放入就绪队列的队首。代码如下:#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<deque>#include<queue>

2017-07-09 14:20:12 427

原创 UVA 1590 IP地址

这道题先求出子网掩码,然后将最小的IP地址与子网掩码按位与即可得到网络地址。注意以下问题: 1.求子网掩码,即所有32位地址最左一个不同出现的地方后全为0,前面全为1。 2.由于IP地址可能有重复,可以用set来保存所有IP地址,从而去除重复。 3.只需要将最小的IP地址与子网掩码按位与即可得到网络地址,set里面是按字典序排的,从而只需要取set第一个IP地址即可。代码如下:#include

2017-07-08 17:31:18 397

原创 UVA 220 黑白棋

这道题按照题目描述的三种指令来模拟即可。 Q–退出并打印当前棋盘,L–先明确当前是黑棋还是白旗的回合,然后搜索棋盘的每个位置看是否可以放,M–先检查当前回合是否有合法位置,如果没有切换双方回合然后放置,放置后修改棋盘和棋子数目。注意输出格式,特别是’Black - xx White - yy’,是%2d格式。代码如下:#include<cstdio>#include<iostream>#inc

2017-07-07 23:30:40 640

原创 UVA 1589 象棋

这道题花了很久总是WA,最后发现竟然是在一个判断时括号的位置不正确QAQ,真的想死的心都有了。 总体思想:记录所有下红色棋子的位置和种类,然后对于“将”能走的四个位置分别判断是否都有红色棋子能够到达。这里注意一个问题,“将”在移动一格后可能会吃掉一个红子,所以在每次对红色棋子去检查时需要判断它是否已经被吃掉了。下面附上代码:#include<cstdio>#include<iostream>#

2017-07-07 21:52:53 386

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除