- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 九度 1140 - 回溯 - 八皇后
会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。 一个皇后q(x,y)能被满足以下条件的皇后q(row,col)吃掉x=row(在纵向不能有两个皇后)y=col(横向)col + row = y+x;(斜向正方向) col - row
2015-08-25 20:31:03 927
原创 九度 1138 - 大数除余 - 进制转换
其实基本的十进制转二进制方法我们都知道,就是循环模2,除2这两个过程。下面是一个大概的方法代码。while(n>0){ binary[count++] = n%2; n = n/2;}这道题目就是把除和余的过程变成了大数上的除余。这里我从网上找到了一个博主的博客点击打开链接,他的大数除余写的很简洁,也算学习借鉴了。这个博主大数的其他算法写的也很不错。#include#inclu
2015-08-24 15:29:30 1050
原创 九度 1105 - 字符串处理 - 字符串的反码
这道题目最大的难度(我觉得题目本身也没说清楚....)就是输入的字符串会有空格,所以我们不能用scanf和cin,而是改用gets和puts。gets可以接受空格,而scanf不能。用这道题目记录一下。#include#includechar a[100];int main(){ int i; while( gets(a)){ if(strcmp(a,"!")==0)
2015-08-23 10:03:41 1426
原创 九度 1101 - 字符串处理 - 计算表达式
根据我的通过来看,首先这道题里面没有小数,如果存在除不尽的情况,也是按取整来算。本题建立了两个栈,一个存储数字的数字栈,一个存储加减乘除的符号栈。在处理字符串的时候,每次找到一个数字时,放进一个string的临时变量里,因为会存在十位以上的情况;每次找到一个符号时,首先将string变量转int放入数字栈,然后检查符号栈的栈顶符号是否为乘或者除,如果是就从符号栈弹出顶,从数字栈弹出两个数,计算
2015-08-20 18:12:37 1070
原创 九度 1107 - 霍夫曼树 - 搬水果
这道题目一开始我用排序来做,每次选择最小的两个,相当于构建了霍夫曼树,最后统计所有非叶子结点之和。但是因为每次排序的基数太大,所以会一直超时。所以我们用优先队列模拟一个堆,利用最小堆的特征来快速得到最小的两个数。STL带有优先队列-priority_queue。priority_queue 对于基本类型的使用方法相对简单。他的模板声明带有三个参数:priority_queue
2015-08-20 16:23:09 886
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人