`
文章列表
题目描述见:uva 101 or poj 1208 关键在于彻底理解题目中搬积木的几个命令的含义,见具体分析 如果还不能理解题意,那么找一个正确通过的代码,编译并输入测试数据,查看其每一个命令的执行情况。如我的代码中162行注释内容取消后即可显示每一步执行后当前积木的情况) 这个题目似乎没有合适的数据结构,由于插入删除操作较多,所以直接用了链表,并且使用双重指针,差点把自己搞晕。(另外,刚开始写的代码能在poj1208上通过,但不能在uva 101上通过,后来发现是141行中的continue误写成了break。网上也有类似的情况,似乎是因为没有考虑到特殊情况的处理(即两个积木 ...
forth 是一种基于栈的程序设计语言,其语法使用逆波兰表达式(即后缀表达式),forth的黄金期是上世纪80年代,现在使用的人很少,但是却非常的有趣。还有一个以forth为基础开发的语言factor ,它增加了许多当代的编程语言特征。   相关网站:    forth interest group (compilers ,tutorials , forth standard )     forth faq    forth Versus C  (also see forth And Not C )    comp.lang.forth.repositor ...
代码比较粗糙,主要是用于对排序算法的理解,因而忽略了边界和容错处理相关代码。   相关文档: Insert Sort  ,Bubble Sort ,Select Sort ,Shell sort ,Quick sort ,Heap sort ,Merge sort on Wikipedia algorithm Repository :C语言实现部分排序算法,代码质量较高,其实现类似于库函数 sorting and searching algorithms :点击左边的链接即可查看整份文档 排序算法性能比较:图片链接 插入,选择,冒泡排序的算法复 ...
  开发编译器相关的一些网络资源: how difficult is it to write a compiler? wikipedia compiler compiler 101 code competetion pl/0 (couses ,source code ,another source code )and pl/I language  the gentle compiler construction system compiler lecture notes (algorithm and operat ...
题目见:zoj 1025 先对木棒按照长度进行排序,然后再计算对应重量构成的数组中非递减子序列的个数。 相关代码(悲催的是该代码不能在poj1065 和hdoj1051 下通过,懒得看具体是什么原因了) /* zoj 1025 Wooden sticks */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 5010 struct stick{ int length; int weight; }; typedef stru ...
  约瑟夫环 (josephus problem )问题,有公式 可以直接套用   我使用暴力破解方法求解(用时3秒多)。    代码如下: /* zoj 1088 System Overload */ #include <stdio.h> #include <string.h> #define MAXBUILDING 150 int minStepNum(int totalBuilding, int lastNum); int main(void) { int n; /* int minStepTab[MAXBUILDIN ...

zoj 1091 Knight Moves

  题目见zoj 1091   使用宽度搜索优先来求解,这个算法已经忘记的差不多了,所以写出来的代码很罗嗦,看起来很不清晰。   好像还可以直接用公式或者神经网络算法求解,详见Knight's Tour   /* zoj 1091 Knight Moves */ #include <stdio.h> #include <string.h> #define MAX 100 #define BOARDSIZE (8+1) struct queueStruct{ int x; int y; int step; }queue[MAX] ...
 题目见zoj 1078  主要是判断一个整数在基数为2-16之间的某个数字时是否为回文,我是直接该整数转换成对应基数的表示的逆序列,并计算出该表示下的值,判断是否等于这个整数值,如果相等,那么就是回文,如果不相等就不是。   /* zoj 1078 Palindrom Numbers */ #include <stdio.h> #define MAX 30 int isPalindrom(int base, int decNum); int main(void) { int i,count; int n,baseStr[MAX]; ...
题目见zoj 1006 或poj 1317  简单的解密算法,直接套用题目中公式即可。   /* zoj 1006 Do the Untwist */ #include <stdio.h> #include <string.h> #define MAXLEN 80 #define MAGICNUM 28 char num2Char(int n); int char2Num(char c); int main(void) { int key; char ciphertext[MAXLEN],plaintext[MAXLEN ...
题目见zoj 3488 很简单的题目,却没能一次搞定,因为没看清楚题目中输入数据都是实数。 该题目考察浮点数的比较(因为浮点数在计算机中存储是近似存储,所以不能直接将两个浮点数直接用大于或小于符号相比较)     /* zoj 3488 conic section */ #include <stdio.h> #include <math.h> #define SMALLNUM 1e-8 int main(void) { double a,b,c,d,e,f; int n; scanf("%d", ...

zoj 1005 jugs

  题目内容见zoj1005   由于A,B互素且A的容量小于B,那么可以将B装满并且倒入A中,如果A被装满则将A中的内容全部清空,一直进行下去直到某一刻B中容量恰好等于目标的容量。这种方法能得到正确的结果,但是通常得不到最优结果。   #include <stdio.h> int main(void) { int a,b,target,i; int curA,curB; while(scanf("%d %d %d", &a, &b, &target) == 3 ) { cur ...

zoj 1074 To the MAX

见zoj 1074 参考了别人的思路才搞定。见http://blog.csdn.net/acm_davidcn/article/details/5834454 使用了最大连续子序列和的算法,虽然自己也知道这个算法,但是却没办法做到活学活用。 /* zoj 1074 To the Max */ #include <stdio.h> #include <string.h> #include <limits.h> #define MAX 105 int main(void) { int i,j,k; int a[MAX ...
 见zoj 1154  还是需要将输入数据当作字符串来处理,不能直接使用整型。   /* zoj 1154 Niven numbers */ #include <stdio.h> #define MAX 100 int isNivenNum(int base, char str[]); int main(void) { int totalBlocks; int base; int first = 1; char str[MAX]; scanf("%d", &totalBlocks); whil ...

hdoj 1015 Safecracker

  见hdoj 1015 或 zoj 1403 或tzu 1308   我使用了枚举法,代码写的很罗嗦,可能还是深度优先搜索写起来更清晰。 /* hdoj 1015 */ #include <stdio.h> #include <string.h> #define MAX (12+5) #define RESLEN 5 int bubSort(int a[], int n); int str2Ints(char str[], int a[], int len); int ints2Str(int a[], char str[], int ...
链接:zoj 1115 或 hdoj 1013 或poj 1519 虽说是水题,却几经波折才搞定。该题目中的数字可能非常大,所以不能使用整型数,只能采用字符变量 代码如下: #include <stdio.h> int digitalRoot(int n); int digitSum(int n); int main(void) { char c; int sum; while( (c = getchar()) != EOF) { if(c == '0') break; sum = ...
Global site tag (gtag.js) - Google Analytics