ACM之《算法竞赛入门经典》
依然静谧
这个作者很懒,什么都没留下…
展开
-
关于栈、调用栈、栈帧
栈就不用说了。。函数都要进栈,调用栈按我的理解应该是指当前的应用程序所使用的栈空间,由N多个栈帧所组成,而每个栈帧对应了一个未完成的函数,要注意未完成这三个字,一个函数完成了就出栈了,自然也就谈不上栈帧神马的了,按我浅薄的理解,每个函数都会进栈,而不同的函数进不同的栈帧,至于《算法竞赛入门经典》上所说的“上一个”栈帧,按我的不成熟的理解就是——进一个函数势必会进入一个栈帧,而当这个函数在其他函数中原创 2013-05-10 22:58:57 · 906 阅读 · 0 评论 -
6-2-2 移动的小球(数组模拟链表实现)
#include #include #define MAXN 500001using namespace std;int Left[MAXN];int Right[MAXN];void link(int X,int Y);int main(){ int X,Y,n,m; char *chOP; scanf("%d %d",&n,&m); for(int i=1;i<=n原创 2013-11-08 18:27:55 · 1255 阅读 · 0 评论 -
6-2-1 移动小球
#include #include using namespace std;#define MAXN 500001int A[MAXN];int find(int index,int n){ for(int i=1;i { if(index==A[i]) { return i;原创 2013-11-06 17:52:53 · 1008 阅读 · 0 评论 -
7-1-4 双基回文数
#include #include #include using namespace std;int Is_Palindrome_Num(char* num){ int len=strlen(num); for(int i=0;i<len/2;i++) { if(num[i]!=num[len-i-1]) { return 0; } } return 1;原创 2013-11-18 20:08:29 · 989 阅读 · 0 评论 -
6-3-1 小球下落
#include int main(){ int D,I; while(2==scanf("%d%d",&D,&I)) { int k=1; for(int i=0;i<D-1;i++) { if(I%2) { k=k*2; I=(I+1)/2; } else { k=k*2+1; I=I/2; } }原创 2013-11-08 23:20:20 · 924 阅读 · 0 评论 -
6-3-2 二叉树层次遍历(BFS)
#include #include #include #include using namespace std;#define MAXN 256char s[MAXN+10];int failed=0;int n=0,ans[MAXN];typedef struct TNode{ int Have_Value; int v; struct TNode *Left,*R原创 2013-11-10 02:36:53 · 1133 阅读 · 0 评论 -
6-3-3 二叉树重建
//刘汝佳递归真的是用成神了....如果加上那个数组s,我就是始终搞不明白右子树的后序遍历的最后一个参数为什么是s+p...#include #include char pre[500],mid[500];void Build(int n,char* pre,char* mid){ if(n<=0) { return; } int Left_Len=strchr(mid,p原创 2013-11-11 00:22:46 · 769 阅读 · 0 评论 -
7-1-1 除法
#include using namespace std;void Div_Print(int n){ for(int i=1;i<=9999;i++) { cout<<i*n<<'/'<<i<<'='<<n<<endl; }}int main(){ int n; cin>>n; Div_Print(n); return 0;}原创 2013-11-14 21:37:16 · 808 阅读 · 0 评论 -
7-1-2 最大乘积
#include #include using namespace std;int n,num[18];int main(){ long long mul; long long max=0; cin>>n; for(int i=0;i<n;i++) { cin>>num[i]; } if((1==n)&&(num[0]>0)) { max=num[0]; }原创 2013-11-14 23:42:27 · 958 阅读 · 0 评论 -
3-4 Calculator
#include int main(){ char ch,op; int a[2]; int i=0; while(scanf("%c",&ch)) { if(ch>='0'&&ch { a[i]=ch-'0'; i++; if(i>1) { break;原创 2013-05-08 00:55:43 · 883 阅读 · 0 评论 -
3-5 Rotate
#include #include using namespace std;#define N 100int main(){ char chArray[N][N]; int i,j,n; printf("Please input n:"); cin>>n; for(i=0;i { for(j=0;j { cin>原创 2013-05-08 13:29:45 · 626 阅读 · 0 评论 -
6174问题
#include using namespace std;void SelectionSort(char *str,int len);void StrReverse(char *str,int len);int GetNext(int num);int main(){ int num[20000],count=1; cin>>num[0]; cout<<num[0]; wh原创 2013-07-31 22:20:59 · 726 阅读 · 0 评论 -
字母重排
#include #include #include using namespace std;int CmpChar(const void* _a,const void* _b){ char* a=(char*)_a; char* b=(char*)_b; return *a-*b;}int CmpString(const void* _a,const void* _b)原创 2013-08-01 22:27:49 · 716 阅读 · 0 评论 -
7-1-3 分数拆分
#include using namespace std;int x=0,y=1,k=0;int main(){ while(cin>>k) { cout<<k<<endl; while((y<=2*k)) { double result=((double)k*y)/(y-k); if(((int)result==result)&&result>0)原创 2013-11-15 12:20:49 · 1207 阅读 · 0 评论 -
3-6 base2
#include #include #include using namespace std;int main(){ int b,i,result=0; string n; cin>>b>>n; for(i=n.length()-1;i>=0;i--) { result+=(n[i]-'0')*(int)(pow(b,n.length()原创 2013-05-08 22:42:48 · 707 阅读 · 0 评论 -
3-6 base1
#include #include int main(){ int b,n,result=0; double count=0; scanf("%d %d",&b,&n); while(n) { n/=b; result=n%b*((int)pow(10,count))+result; count++; } prin原创 2013-05-08 22:27:49 · 588 阅读 · 0 评论 -
3-3 Product
#include #include int main(){ char ch; int iNumber=0; long lProduct=1; while((ch=getchar())!=EOF) //Using getchar() { if(isdigit(ch)) //Judge whether the char get from原创 2013-05-07 00:46:20 · 768 阅读 · 0 评论 -
3-2 Word
#include #include #include #include using namespace std;//Functions declare//File modevoid FileMode(){ ifstream fin("word.in"); ofstream fout("word.out"); string str; int iLeng原创 2013-05-06 13:51:43 · 591 阅读 · 0 评论 -
3-1 Stat
#include #include #define INT_LENGTH 100+1 #define FLOAT_LENGTH 10000+1void TaskOne();void TaskTwo();int main(){ //TaskOne(); TaskTwo(); return 0;}//Task1void TaskOne(){原创 2013-05-06 13:47:19 · 692 阅读 · 0 评论 -
C++ 高精度运算类(BigC类)
-------------------------------------------------------------------------------------------------------------------头文件----------------------------------------------------------------------------------原创 2013-12-01 14:24:56 · 2276 阅读 · 0 评论