自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UVa122

/*题意很容易理解,就是给出一组描述二叉树节点的数据,然后判断二叉树是不是完整的,有两种情况是不完整的:第一种是,当在同一个节点两次插入不同的数值时候,判断为二叉树是不完整的。第二种是,当二叉树的节点没有父节点的时候,判断二叉树是不完整的。然后是描述二叉树节点的形式(num,s),其中num是节点的值,而s是描述从根节点怎么到当前节点,s是字符串,只有L和R构成。代码中的辅助函

2017-06-29 15:16:24 422

原创 UVa679

/*题意很容易理解,关键是分析每个小球下落的特征,也就是对于编号为I的小球是向左走还是向右走的问题。首先是分析给定的样例,理解题意,然后是分析1,2,3,4,5,6,7,8,。。。的下落选择,发现:对于Depth=i的节点,设k=1k/2,那么小球往右走,否则往左走。然后根据完全二叉树的编号特点,left=root*2,right=root*2+1,因此就能准确计算出小球最后的落点

2017-06-29 14:29:56 283

原创 MYSQl不能插入中文的解决办法

1.临时的解决方案,即修改当前表的属性show full COLUMNs from tablename;显示如下内容表示,当前列的编码不是utf8对每一列依次使用如下命令alter table tablename change columnname columnname varchar(256) character set utf8 collate utf8_unico

2017-06-27 16:00:00 752

原创 Ubuntu16.04 中科大源

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiversedeb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiversedeb http://mirrors.ustc.e

2017-06-27 09:25:57 6480

原创 UVa11988

/*关键是理解home和end的作用,home是在最前面插入字符,end是在最后输入字符。因此设置两个string,beg和end分别是在前面插入字符串和在最后插入字符串home表示在在最前面插入还是在最后插入。*/#include#include#include#include#include#include#include#include#i

2017-06-22 17:12:47 387

原创 UVa442

/*典型的表达式解析题目解析表达式一般是使用栈实现的*/#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;int main(){ char s[5];

2017-06-22 15:25:32 423

原创 UVa514

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;int main(){ int N,b[1005]; while(scanf("%d",&N)!=EOF&&N

2017-06-22 14:52:06 221

原创 UVa230

/*题意很容易理解,用set来记录在架图书和归还的图书,这样顺序是按照题目要求的。然后使用字典b2a记录图书的作者。*/#include#include#include#include#include#include#include#include#include#includeusing namespace std;int mai

2017-06-22 10:21:48 479

原创 UVa12100

/*关键是理解题意,如果当前取出的任务不是优先级最高的,那么就把该任务放在队列最后注意,此时是不会打印优先级最高的任务,也不会消耗时间*/#include#include#include#include#include#include#include#include#includeusing namespace std;int main()

2017-06-21 16:55:28 556 1

原创 UVa10391

/*题意很容易理解,输入是字典序的一些单词,要求找到其中哪些单词是由字典中两个单词拼接起来的。解题思路很简单,如果单词c是由单词a+b组成,那么a肯定是c的前缀,也就是在字典序中,c是排在a后面,也就是说,能由a作为前缀的字符串都是紧排在a后面的。刚开始一次WA的原因是输出有重复,因此后来改用set来记录结果,避免重复。给一组网上的测试数据aabcabcdebcdede如果

2017-06-21 11:12:13 472

原创 UVa10763

/*按照题意的理解,满足条件,需要a->b和b->a学生数量一样,因此设计map,int>dic来记录a->b学生数量,如果有b->a的,那么就a->b数量减1,最后字典中每个元素的value都是0的时候,即可满足交换条件,否则不满足。本题学习的地方是如何构造满足自己需要的hash函数,进而设计自定义的unordered_map*/#include#include

2017-06-20 16:32:20 1819

原创 UVa10935

/*根据题意,很容易理解,因为是第一张扔掉,第二张放在最后,所以相当于是在扔牌的时候每次前进两步,每一步都是没有被扔过的牌*/#include#include#include#include#includeusing namespace std;int main(){ int n,a[55],pos,cnt; while(sc

2017-06-20 15:40:44 692

原创 1594

/*本题本质上时在判断是否存在环的问题对于判断是否存在环的问题,最基本的方法就是设置两个变量,一个走一步,一个走两步,如果存在环,那么两个变量肯定会相遇*/#include#include#include#include#include#includeusing namespace std;void next(vectorint>&num

2017-06-20 15:06:48 274

原创 UVa1593

/*这道题最大的经验就是,不要使用没有定义的变量,也就是不要使用没有初始化的变量例如本题中在声明完len数组之后一定要调用memset把len数组初始化为0解题思路很简单,就是对于每行的输入,首先按照空格键进行拆分,记录每一列对应字符串的最大长度len[i]然后格式化输出,长度不够的要补齐*/#include#include#include#include

2017-06-19 11:04:08 348

原创 UVa400

#include #include #include #include #include #include #include#include#include#include #include#include#include#include#include#include#includeusing namespace std;c

2017-06-17 19:41:54 229

原创 UVa540

#include #include #include #include #include #include #include#include#include#include #include#include#include#include#includeusing namespace std;const int nmax=1000+1

2017-06-16 17:26:12 196

原创 UVa156

/*对于每一个输入的字符串s做归一化得到字符串no作为键值对构建字典,如果当前字符串s归一化之后的no已经出现过,那么就把dic[no]赋值为空字符串然后把dic中所有值不为空的值都放在strs中,排序输出即可*/#include #include #include #include #include #include #include#in

2017-06-16 16:30:15 211

原创 UVa1590

/*这道题的思路很简单就是,就是先把ip地址转成二进制,然后比较二进制的共同前缀,最后根据共同前缀计算子网掩码即可本质上的功能就是把十进制的string和二进制的string的相互转换*/#include #include #include #include #include #include #include#include#include

2017-06-16 14:16:44 595

原创 UVa201

/*本题按照题意,设置两个二维数组,分别记录水平连接和垂直连接即可。最坑的地方在于垂直连接时候,是先输入列,再输入行,这点注意。*/#include#include#include#include#include#include#include#include#includeusing namespace std;//#define

2017-06-15 16:14:23 596

原创 UVa1589

/*题意很简单,就是黑方只剩下一个将,红方还有很多子,而且当前的残局是红方正在将军,判断红方是否已经将死黑方红方只有四种棋子,帅,车,炮,马,因此按照每个棋子的运算规则,即可判断出红方已经能吃到的位置1。给棋子编码,炮是1,马是2,车是3,因为在对将的时候帅的作用和车是一样的,因此把帅也编成3号,按照车处理2.这中间使用两个棋盘来记录,mp是残局时每个棋子的位置,an记录判断后红方

2017-06-15 14:46:08 958

原创 UVa213

/*本题学习的主要是对标准输入输出的处理在在处理字符的时候可以一个一个的处理,即读取字符的时候一个一个处理,输出字符的时候也可以处理一个输出一个在处理和标准输入输出时,需要注意的是'\n','\r'和EOF三个字符的处理,尤其是使用getchar()的时候。另外的一个技巧是在while循环的时候,循环代码有一句必然执行,然后根据执行的结果判断是否继续执行剩下的循环代码这时候可以在w

2017-06-14 16:11:09 642

原创 UVa489

/*本题使用cnt数组记录s中每个字母出现的次数,m和n分别表示s和g的长度e表示猜错的次数*/#include#include#include#include#include#include#include#include#includeusing namespace std;//int cmp(const void *a,co

2017-06-13 21:19:25 432

原创 UVa1339

/*这道题最大的教训就是要注意结果大小写问题刚开始一直输出Yes和No,而要求的是YES和NO*/#include#include#include#include#include#include#include#include#includeusing namespace std;int cmp(const void *a,const

2017-06-13 20:33:06 206

原创 UVa1587

/*这道题主要是练习一下结构体的使用,包括初始化和运算符重载解题思路很简单,根据长方体六个面的结构特点,先把他们的长宽对进行排序那么0和1,2和3,4和5都应该是相等的然后判断他们的长度关系,0和2的宽应该是相等的,0和2的高分别是4的宽和高*/#include#include#include#include#include#include#

2017-06-12 17:21:37 935

原创 UVa10340

/*本题和UVa 11292很类似,都是给定两个数组s和t,要用s中的元素对应解决t中的元素那么可以使用贪心的策略,i指向s中即将派出解决问题的元素,j指向t中下一个要被解决的元素遍历s,如果当前s[i]嫩够解决t[j]那么++j,如此贪心下去,即可知道能不能解决t中全部元素另外需要注意的是,本题题意中并没有规定输入字符串的长度限制,那么应该设定的尽可能大一开始设定的字

2017-06-12 16:46:44 501

原创 UVa1368

/*这道题最大的经验就是要注意审题和理解题意,‘注意结合样例理解一开始以为最后的答案是在输入DNA序列中进行寻找,走了很多弯路。*/#include#include#include#include#include#include#include#include#includeusing namespace std;co

2017-06-12 09:55:20 244

原创 LA3029

/*这道题解题分成两步第一步是计算每个空格向上延伸多远,也就是计算每个单元格的高度然后是计算一行单元格中所有单元格组成的高低不一的一维数组的最大矩形面积对于第二个问题,这中间使用了动态规划面积最大的矩形肯定是以矩形边界的边为高,这个高度能够向右滑动的最大距离为宽形成的。从右向左扫描,因此是动态规划方程为:end=i+1while(end=high[i])end+=l

2017-06-08 22:17:16 214

原创 UVa11549

#include#include#include#include#include#include#includeusing namespace std;unsigned long long int T,n,k,ans,mod;int main(){ scanf("%llu",&T); while(T--){ an

2017-06-08 15:04:40 224

原创 UVa10881

/*解题的关键在于两点:1.理解相撞就是擦肩而过,但是两者头上的记号会交换。2.关键是确定相对顺序,并且正确编号,而蚂蚁的相对顺序是不变的。因此首先使用id数组记录蚂蚁的相对顺序,即按照蚂蚁的初始位置为蚂蚁编号排序之后计算最终蚂蚁的位置,然后改变蚂蚁的状态最后根据相对顺序确定蚂蚁编号。*/#include#include#include#include

2017-06-08 10:48:53 271

原创 UVa11300

/*代码参照《算法禁赛入门经典训练指南》,已经提交AC主要修改地方是只使用一个数组*/#include#include#includeusing namespace std;const int nmax=1000000+5;long long int A[nmax];int main(){ int n; while

2017-06-06 16:01:27 377

空空如也

空空如也

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

TA关注的人

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