摘要: 题意:给定一个序列,小写字母代表的是数字,大写字母代表的是计算符号,这个序列以后序表达式输出,让你求出这个序列的广搜的逆序列解题思路:使用栈构建表达式树,然后广搜求解解题代码:// File Name: uva11234.c// Author: darkdream// Created Time: 2013年05月16日 星期四 19时18分02秒#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#include<math.h>#include< 阅读全文
posted @ 2013-05-16 19:59 dark_dream 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题意:相当与括号平衡 不过一个括号的直接子括号的值的和必须要小于这个括号的值!解题思路:栈中每个元素有两个值,一个值代表括号本身,一个值代表括号直接子括号值的和;解题代码:// File Name: uva11111.c// Author: darkdream// Created Time: 2013年05月16日 星期四 17时56分48秒#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#include<math.h>struct node { 阅读全文
posted @ 2013-05-16 18:23 dark_dream 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题意:给定n个矩阵 然后给出每个矩阵的行数和列数 让你求出一个矩阵表达式的乘的次数解题思路:栈解题代码:// File Name: uva442.c// Author: darkdream// Created Time: 2013年05月15日 星期三 21时15分38秒#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#include<math.h>struct node { int a, b;}m[300] ;int main(){ //fre 阅读全文
posted @ 2013-05-15 22:23 dark_dream 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题意:看括号是否匹配解题思路:一直想用递归来做,发现做不出 后来才想到消去当今可以消去的() 与 【】 的括号 循环找就行了#include <stdlib.h>#include <stdio.h>#include <string.h>char str[1000];int main(){ int t ; scanf("%d",&t); getchar(); while(t--) { memset(str,0,sizeof(str)); gets(str); int ok = 0; int k = strlen... 阅读全文
posted @ 2013-05-15 20:17 dark_dream 阅读(134) 评论(0) 推荐(0) 编辑
摘要: zoj3703:题意:给定一个背包的空间和物品个数,求出这个背包装的价值最大且物品个数最多的方案的价值,物品个数,解题时间(比赛计时那样算)解题思路:裸0-1背包加记录路径,不过还要加上一个条件限制 :到达同一状态的物品总数尽可能大 ,所以要开一个辅助数组来记录某一状态的取物品个数解题代码:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>int f[55][1005];int g[55][1005];int p[55][1005];int c[55];int w[55];in 阅读全文
posted @ 2013-05-08 22:21 dark_dream 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目来自于浙江大学第13届校赛zoj3702:题意:给定一个数列G,G[0] = 1; G[1] 是一个随机数,然后从G[2] 开始 G[I] = G[I-1] + G[I-2] ( I>= 2)然后给定一个I ,G[I],J 求G[J] 的值解题思路:这个数列中的每一个值都可以用G[I] = XG[0] + YG[1];表示,而X,Y这两个系数发现可知又正好是一个斐波那契数列,所以可以求出G[1]是多少 然后求得 G[J] 的值解题代码:View Code #include <stdio.h>#include <string.h>#include <std 阅读全文
posted @ 2013-05-08 22:13 dark_dream 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 题意:模拟运算解题思路:表达式数构建 模拟(ztw同学的算法)解题代码表达式树// File Name: 表达式树.c// Author: darkdream// Created Time: 2013年04月18日 星期四 19时37分36秒#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#include<math.h>int num[50];const int maxn = 1000;int lch[maxn] , rch[maxn];char 阅读全文
posted @ 2013-04-27 22:36 dark_dream 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题意:http://www.nocow.cn/index.php/UVA_133(中文翻译)解题思路:双向循环链表,模拟操作即可解题代码:View Code // File Name: uva133.cpp// Author: darkdream// Created Time: 2013年04月27日 星期六 09时50分42秒#include<vector>#include<list>#include<map>#include<set>#include<deque>#include<stack>#include<b 阅读全文
posted @ 2013-04-27 16:06 dark_dream 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 题意:http://poj.org/showmessage?message_id=72732(很好的翻译)解题思路:数组链表(双向)模拟即可 特别要注意指针初始的时候为空!!解题代码:View Code // File Name: uva101.cpp// Author: darkdream// Created Time: 2013年04月26日 星期五 19时55分53秒#include<vector>#include<list>#include<map>#include<set>#include<deque>#include< 阅读全文
posted @ 2013-04-27 09:15 dark_dream 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题意:给你52张牌,一张一张的摆在桌面,如果有一张牌和它的左边第一堆的最上面那张牌或左边第三堆最上面那张牌【match】则把这张排放在那一堆的最上面。(match条件是花色或大小相等,如果同时多张牌能match 则移动最左边的那一张,如果一张牌能移动到左边第一堆或左边第三堆,则移动到第三堆上)一直到不能移动为止解题思路:链表的基本操作!解题感悟:不要轻易free();解题代码:View Code // File Name: uva123.cpp// Author: darkdream// Created Time: 2013年04月25日 星期四 19时21分46秒#include<ve 阅读全文
posted @ 2013-04-26 16:44 dark_dream 阅读(140) 评论(0) 推荐(0) 编辑