自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

九问的烦恼

记录自己的心路历程与技术成长之路。

  • 博客(35)
  • 收藏
  • 关注

原创 Slash Maze UVA705

这道题题意真是新颖,看到题目完全无从下手,想了很久都找不到思路,后来看了大神的想法,把斜杠放大成3*3格子,斜杠经过的是1没经过的是0,之后就比较好处理了,思路豁然开朗,但是之后判断是不是存在封闭图形的时候,有个注意的地方—在搜索一个点四周的时候,如果越界了那肯定不构成封闭图形。#include#include#includeusing namespace std;int gr

2013-10-31 11:09:27 806

原创 Ordering Tasks UVA10305

基本的拓扑排序,很简单。。但是我在边界条件卡了好久。。#include#includeusing namespace std;int grid[210][210];int c[210],topo[210];int n,m,t;bool dfs(int u){ c[u]=-1; for(int v=1;v<=n;v++) { if(

2013-10-30 21:16:05 713

原创 Dungeon Master UVA532

三维空间里面的BFS,知道了BFS的原理这道题很好解决。。

2013-10-29 20:28:24 620

原创 Knight Moves UVA439

这道题题目一看觉得很简单,但是看了样例数据之后发现不对劲,在网上搜了好久才发现国际象棋马的走法是这样走的,走日字。为此打印了几张国际象棋的棋盘格局,后来就理解了,简单的bfs,不过bfs对我来说还是有点生疏。#include#include#include#includeusing namespace std;int dist[10][10];int grid[10][

2013-10-29 15:51:25 662

原创 Maze Exploration UVA784

这道题就是题意不好理解,其实UVA的题目都好难理解。。。理解题意后都很简单。。简单的dfs。#include#includeusing namespace std;string grid[40];void dfs(int x,int y){ if(grid[x][y]=='X'||grid[x][y]=='#') return; grid[x][y]='#'

2013-10-27 21:37:05 685

原创 The die is cast UVA 657

还是DFS搜索,不过要用到两层DFS,仔细点就行,一个地方卡了非常久,怪自己太不仔细了。。#include#include#includeusing namespace std;char grid[60][60];int visit[60][60],visit1[60][60];int dist[1000];int w,h,k,s;void dfs1(int x,in

2013-10-27 16:48:10 748

原创 Oil Deposits UVA572

很简单的一道图的遍历,直接DFS就可以。#include#includeusing namespace std;char grid[120][120];int visit[120][120];int n,m,k; void dfs(int x,int y) { visit[x][y]=1; grid[x][y]='*'; if(y-1>=1

2013-10-27 13:57:47 696

原创 Not so Mobile UVA 839

这道题题意很好理解就是判断力矩平衡,一看题目就知道是要用递归dfs,但是陷进一个死胡同,在判断输入数字结束时纠结了很久,后面参考别人的代码发现完全不用考虑。哎·~太年轻。#includeusing namespace std;int ok;int dfs(){ int w1,d1,w2,d2; cin>>w1>>d1>>w2>>d2; if(w1==0

2013-10-27 10:10:18 684

原创 Undraw the Trees UVA10562

题目类型挺奇葩,看懂了题目就不难做,用递归遍历输出,但是要注意边界条件。#include#includeusing namespace std;string str[210];void dfs(int x,int len,int pos){ int t,pos1=pos,pos2=pos; if(x==len) { cout<<str

2013-10-26 14:10:00 696

原创 The Falling Leaves UVA699

这道题题意很好理解,在判定二叉树的节点数是不是结束的时候我用到了一个定理,二叉树也节点数也就是题中-1的个数等于度数为一和二的结点个数加一,题中不存在度数为一的结点,因此很好判断树的结点是否结束,然后用dfs深搜这棵树,不用建树。#include#includeusing namespace std;int arry[10000];int arry1[200];int pos

2013-10-23 21:45:45 678

原创 S-Trees UVA712

被题目吓到了。看了几次没看懂题意,后来发现题意很简单。。就是一颗满二叉树,给你一串01数据0是往左走,1是往右走,看最后掉在哪个叶子节点上。#include#include#includeusing namespace std;int arry[150],arry1[10],arry2[10];string ch[10];int main(){ int n,k=

2013-10-22 23:28:21 743

原创 Quadtrees UVA297

这道题不是很难,但是花费了挺长的一段时间的,思路很明确就是递归建树,然后递归遍历两棵树,求解。在写代码的过程中由于没搞清楚+和#include#includeusing namespace std;class node{public: char data; node *r1,*r2,*r3,*r4;};int sum,t;node* CreateTree(s

2013-10-22 16:07:51 749

原创 C++符号优先级

一道题因为符号优先级没弄清楚导致调试了好久都没过把+号和因此把一些符号优先级贴出来。优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右

2013-10-22 15:51:51 1065

原创 Tree UVA548

这道题的做法很简单,就是根据二叉树的前序和后序序列建树,然后遍历这棵树。但是我经过无数次的wa,rte之后才AC的。首先建树就出现问题,之后遍历时用DFS方法也不正确。DFS还是不怎么会用。#include#include#include#include#include#define maxn 10005using namespace std;class Node{

2013-10-20 16:18:01 743

原创 二叉树的建立

小白这本书这几天做到了数据结构二叉树这一块,要频繁的使用二叉树这种特殊的数据结构,因此我特别的把二叉树的实现代码写出来,方便自己以后的实现。

2013-10-16 15:42:46 720

原创 Generalized Matrioshkas UVA 11111

题目大意:这题的题意比较难懂,看了好几变才明白。  就是有一个可以嵌套娃娃的娃娃,然后嵌套在里面的娃娃又可以继续嵌套娃娃。然后要求直接嵌套在里面(内一层)的娃娃的尺寸大小之和不能超过外面的。 例如,-3 -2 2 3,代表有两层,-3和3表示一个嵌套(这个娃娃的尺寸大小为3,且负数一定要在左边先出现),里面时-2和2表示一个大小2的娃娃。 再比如-5 -2 2 -1 1 5,表示有

2013-10-15 21:31:39 615

原创 Matrix Chain Multiplication UVA 442

这道题目被我想复杂了,不需要考虑括号的不对称问题,只需要考虑相乘时候两个矩阵合不合法。这个符号表达式我看的好难受。#include#include#include#include#includeusing namespace std;class T{public: int x,y;};class P{public: string s;

2013-10-15 09:41:16 737

原创 Team Queue UVA 540

题目大意:有个所谓的team排序, 给出t个队伍,以及这些队伍的成员。 然后进行排队。 ENQUEUE x: 把x插入队列中时。如果队列没有该元素的队员,则插入队列的最后面。如果队列中已经有了他的队员,那么插入最后一个队员之后。 DEQUEUE:  把队头的元素删除,并且输出STOP:  停止我在这道题上卡了近4天,一开始考虑的是用双端队列和栈来

2013-10-13 11:44:28 667

原创 Hartals UVA10050

看懂题意就很简单了,感觉没用到什么数据结构。。直接用数组就可以过。#include#includeusing namespace std;int arry[100];int day[3700];int main(){ int n; cin>>n; while(n--) { memset(arry,0,sizeof(arry)

2013-10-09 16:02:49 641

原创 Parentheses Balance UVA 673

一道符号匹配的问题,这类题是栈的典型应用了,比较简单,只需要注意一下各种情况不然很容易wrong answer#include#include#includeusing namespace std;int main(){ int n; cin>>n; string str1; getline(cin,str1); while(n--)

2013-10-09 15:59:45 751

原创 ShellSort UVA10152

原以为这道题会比较难,要用到队列或者栈之类的数据结构,但是思考了一会发现完全不需要,直接模拟感觉更加简单。。#include#include#includeusing namespace std;int main(){ int n; cin>>n; while(n--) { vector str1; vector

2013-10-08 20:00:00 826

原创 The Dole Queue UVA133

这道题是一个双向约瑟夫环问题,

2013-10-07 21:32:10 705

原创 开学之后一个月的总结与之后规划。

今天结束国庆七天长假就过去了,也是该给自己做个总结和规划了。开学之后整整一个月了,状态已经比一开始好一些了,要慢慢回归正轨了,先说说这一个月的成果吧(虽然很少)。。1.VC++这本书看完大部分了,通过最近对这本书的猛啃,以及一些实战,对C++的了解感觉比当初看C++ primer深了一些,尤其是对类的继承,封装,以及构造函数,复制构造函数,析构函数,运算符重载的了解加深了很多,对C++的多

2013-10-07 12:44:54 2151 9

原创 The Blocks Problem (积木问题) UVa OJ 101

这道题我从下午一直做到晚上9点多,途中请教了一位同学,讨论2个小时之久,再经过自己1个多小时的测试数据,调试,终于找到错误,自己太不小心,在此一定要感谢乐于助人的hcbbt同学,思路很简单就是模拟,我是用vector模拟的。。#include#include#include#includeusing namespace std;vector bricks[30];int a

2013-10-06 21:55:28 1374 2

原创 "Accordian" Patience UVa OJ 127 纸牌游戏

这道题对我这种小菜鸟来说简直就是难于上青天。。。。想了好久都没想出一个很好的算法出来,我还是太弱了。。加油!!!#include#include#includeusing namespace std;bool match(const string &x,const string &y){ if((x[0]==y[0])||((x[1]==y[1]))) retu

2013-10-05 21:31:32 1291

原创 Unix ls UVA400

这道题题意是给指定的单词排序并按照一定的格式输出,要注意的是,每行最多60个字符,最右边一列的按照最长单词的长度左对齐,其他的列按照最长长度+2左对齐,注意格式输出就行。。。#include#include#include#include#includeusing namespace std;bool cmp(string x,string y){ return

2013-10-05 14:22:09 938

原创 Just the Facts UVA568

这道题题意是求N的阶乘的最后一位非零位,我想的太过于简单了,一开始以为拿最后一位的非零位相乘就行了,哎,我还是太渣了。。。后来发现了几位大牛的代码一 这个比较好理解了#includeint main(){int n,s,i;while(scanf("%d",&n)==1){ for(i=1,s=1;i<=n;i++) { s*=i; while(s

2013-10-04 20:09:20 772

原创 Pseudo-Random Numbers UVA350

据说这道题要用到哈希(其实到现在我都不懂啥叫哈希。。。),先声明一个10000的数组,来记录出现一万以内出现的状态,和出现的次数,用第二次出现次数减去第一次就得到了一个循环次数。。#include#includeusing namespace std;int arry[10050];int main(){ int z,i,m,l,j=0; while(cin

2013-10-04 19:42:31 1890

原创 Factoring Large Numbers UVA10392

这么笨的方法也能AC。。。我以为一定会Time Limit Exceeded的。。哎,想不出来更好的方法了。#include#includeusing namespace std;int arry[1000005];bool isprime(long long x){ long long y=static_cast(sqrt(x)); if(x<=3) re

2013-10-04 19:28:00 948

原创 Light, more light UVA10110

一道需要稍微思考的数学题目,题意大概是有n盏灯,一个人要走n趟,在第i趟会把灯的状态取反,求最后第n盏灯的状态。思路:假设第i趟i能被n整除的话,j=n/i,那么在第j趟又取反,状态不变化,而如果两个数相等的话就会发生变化,就是求这个数是不是平方数了。。#include#includeusing namespace std;int main(){ long long

2013-10-04 16:38:15 739

原创 Multiplying by Rotation UVA550

一道简单的数论题目,题意大概是给你一个基数,尾数,乘数,找出这样一个数字这个数字乘以乘数是的最低位变换到最高位,其他的位向右移动一位,好比这串数字循环移位,并要求这个数字位数最少。。。179487 * 4 = 717948(10进制)4*7=28     28!=7    28/10=2    28=8;4*8+2=34    34!=7    37/10=3    34=4;4*

2013-10-04 11:47:29 1057 2

原创 Never give up!!

最近开学了,事情一下子多了起来,老板给的任务也做的不好,需要做个自我检讨了,这几天身体状况太差了,总感觉身体不舒服,昨晚还发烧了,完全没有好好学习,没学进去,深入解析MFC-

2013-10-03 12:54:53 1244

原创 Stacks of Flapjacks 翻煎饼-UVA120 白书第五章

思路:先检查这些煎饼是否顺序排好,如果没有排好的话,找出当前位置下的最大的煎饼,翻转它使他翻到最上面,再从下面翻转一次,可以使他落到正确位置。。#include#include#include#includeusing namespace std;int cake[40];bool is_sort(int *arry,int len){ int i; f

2013-10-03 12:09:46 1396 2

原创 Ananagrams-UVA 156 白书第五章

思路:先把单词从字符串中提取出来存入vector中,然后复制一份把大写改为小写,并且对每个单词内字母排序,然后对比vector里面的单词看出现的次数,看是不是只出现一次还是出现多次。。。#include#include#include#include#includeusing namespace std;bool cmp1(char x,char y){ return

2013-10-03 12:05:17 1065

原创 The Mad Numerologist UVA-10785 第五章

一道简单的加权排序题目,在尽量使加权值最小的情况下,还要使整个字符串的字典序最小,我的思路是先把使字典序最小的元音字母和辅音字母求出来,再给它排序,麻烦了不少啊。代码如下:#include#includeusing namespace std;struct T{ char ch1; int value1,t1;}vowel[5];struct P{

2013-10-03 12:00:28 806

空空如也

空空如也

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

TA关注的人

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