'commit'
This commit is contained in:
26
C++课程/待整理知识/啊哈算法/BubbleSort.cpp
Normal file
26
C++课程/待整理知识/啊哈算法/BubbleSort.cpp
Normal file
@@ -0,0 +1,26 @@
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
int n,a[10086];
|
||||
cin>>n;
|
||||
for(int i=0;i<n;i++)//<2F><><EFBFBD><EFBFBD>
|
||||
{
|
||||
cin>>a[i];
|
||||
}
|
||||
for(int i=0;i<n;i++)
|
||||
{
|
||||
for(int j=0;j<n-i+1;j++)//<2F>ڶ<EFBFBD><DAB6><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>ǹؼ<C7B9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD>ð<EFBFBD><C3B0>
|
||||
{
|
||||
if(a[j]<a[j+1])//<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>С<EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
swap(a[j],a[j+1]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
}
|
||||
}
|
||||
}
|
||||
for(int i=0;i<n;i++)//<2F><><EFBFBD><EFBFBD>
|
||||
{
|
||||
cout<<a[i]<<" ";
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
21
C++课程/待整理知识/啊哈算法/BucketSort.cpp
Normal file
21
C++课程/待整理知识/啊哈算法/BucketSort.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
int a[10],i,j,t;
|
||||
for(i=0; i<=10; i++){
|
||||
a[i]=0; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿһ<C3BF>Ϊ0
|
||||
}
|
||||
|
||||
for(i=1; i<=5; i++){
|
||||
cin>>t; //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD>
|
||||
a[t]++; //<2F><>Ӧ<EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ+1
|
||||
}
|
||||
|
||||
for(i=0; i<=10; i++){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><E9A3AC>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(j=1; j<=a[i]; j++){ //ȷ<><C8B7>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD><D6BC>ξʹ<CEBE>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
|
||||
cout<<i<<" ";
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
5
C++课程/待整理知识/啊哈算法/Floyd算法深入理解.txt
Normal file
5
C++课程/待整理知识/啊哈算法/Floyd算法深入理解.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
Floyd<EFBFBD>㷨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
https://blog.csdn.net/qq_27765961/article/details/51915384
|
||||
|
||||
Floyd<EFBFBD>㷨Ϊʲô<EFBFBD><EFBFBD>k<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣿
|
||||
https://www.zhihu.com/question/30955032
|
||||
44
C++课程/待整理知识/啊哈算法/QuickSort.cpp
Normal file
44
C++课程/待整理知识/啊哈算法/QuickSort.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
#include <iostream>
|
||||
#include <cstdio>
|
||||
using namespace std;
|
||||
int a[101],n;
|
||||
|
||||
void quicksort(int left,int right) {
|
||||
int i,j,t,tmp;
|
||||
if(left>right)
|
||||
return ; //<2F><>i<EFBFBD><69>Ϊleftֵ<74><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ݹ飬right<68><74>Ϊ0<CEAA><30><EFBFBD><EFBFBD>ʱreturn <20><><EFBFBD><EFBFBD><EFBFBD>˵ݹ麯<DDB9><E9BAAF><EFBFBD><EFBFBD>
|
||||
tmp=a[left];
|
||||
i=left;
|
||||
j=right;
|
||||
while(i!=j) {
|
||||
while(a[j]>=tmp && i<j)
|
||||
j--;
|
||||
while(a[i]<=tmp && i<j)
|
||||
i++;
|
||||
if(i<j) {
|
||||
t=a[i];
|
||||
a[i]=a[j];
|
||||
a[j]=t;
|
||||
}
|
||||
}
|
||||
|
||||
a[left]=a[i];
|
||||
a[i]=tmp;
|
||||
|
||||
quicksort(left,i-1);
|
||||
quicksort(i+1,right);
|
||||
return ;//<2F>˴<EFBFBD>return<72><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>quicksort<72><74><EFBFBD><EFBFBD>
|
||||
|
||||
}
|
||||
int main() {
|
||||
int i,j;
|
||||
cin>>n;
|
||||
for(i=1; i<=n; i++) {
|
||||
cin>>a[i];
|
||||
}
|
||||
quicksort(1,n);
|
||||
for(i=1; i<=n; i++) {
|
||||
cout<<a[i];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
27
C++课程/待整理知识/啊哈算法/XiaoHengMaiShu_BubbleSort.cpp
Normal file
27
C++课程/待整理知识/啊哈算法/XiaoHengMaiShu_BubbleSort.cpp
Normal file
@@ -0,0 +1,27 @@
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
int main() {
|
||||
int a[101],n,i,j,t;
|
||||
cin>> n; //<2F><><EFBFBD><EFBFBD>n
|
||||
for(i=1; i<=n; i++) { //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><6E>ͼ<EFBFBD><CDBC>ISBN<42><4E>
|
||||
cin >> a[i];
|
||||
}
|
||||
|
||||
//<2F><>ʼð<CABC><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(i=1; i<=n-1; i++) {
|
||||
for(j=1; j<=n-i; j++) {
|
||||
if(a[j]>a[j+1]) {
|
||||
t=a[j];
|
||||
a[j]=a[j+1];
|
||||
a[j+1]=t;
|
||||
}
|
||||
}
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
|
||||
cout<< a[1]<<" ";
|
||||
for(i=2; i<=n; i++) { //<2F><>2ѭ<32><D1AD><EFBFBD><EFBFBD>n
|
||||
if( a[i] != a[i-1] ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cout<<a[i]<<" ";
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
23
C++课程/待整理知识/啊哈算法/XiaoHengMaiShu_BucketSort.cpp
Normal file
23
C++课程/待整理知识/啊哈算法/XiaoHengMaiShu_BucketSort.cpp
Normal file
@@ -0,0 +1,23 @@
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
int a[1001],n,i,t;
|
||||
for(i=1;i<=1000;i++)
|
||||
a[i]=0; //<2F><>ʼ<EFBFBD><CABC>
|
||||
|
||||
cin>>n;
|
||||
for(i=1;i<=n;i++) //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><6E>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ISBN<42><4E>
|
||||
{
|
||||
cin>>t; //<2F><>ÿһ<C3BF><D2BB>ISBN<42>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74>
|
||||
a[t]=1; //<2F><><EFBFBD>dz<EFBFBD><C7B3>ֹ<EFBFBD><D6B9><EFBFBD>ISBN<42><4E>
|
||||
}
|
||||
|
||||
for(i=1;i<=1000;i++) //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>1~1000<30><30><EFBFBD><EFBFBD>1000<30><30>Ͱ
|
||||
{
|
||||
if(a[i]==1)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ISBN<42>ų<EFBFBD><C5B3>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
|
||||
cout<<i<<" ";
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
122
C++课程/待整理知识/啊哈算法/XiaoMaoDiaoYu.cpp
Normal file
122
C++课程/待整理知识/啊哈算法/XiaoMaoDiaoYu.cpp
Normal file
@@ -0,0 +1,122 @@
|
||||
#include<bits/stdc++.h>
|
||||
|
||||
struct queue { //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ӵĽṹ<C4BD><E1B9B9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>
|
||||
int data[1000];
|
||||
int head;
|
||||
int tail;
|
||||
};
|
||||
struct stack { //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ջ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
||||
int data[10];
|
||||
int top;
|
||||
};
|
||||
int main() {
|
||||
struct queue q1,q2;
|
||||
struct stack s;
|
||||
int book[10];
|
||||
int i,t;
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
q1.head = 1;
|
||||
q2.head = 1;
|
||||
q1.tail = 1;
|
||||
q2.tail = 1;
|
||||
//<2F><>ʼ<EFBFBD><CABC>ջ
|
||||
s.top = 0;
|
||||
//<2F><><EFBFBD>dz<EFBFBD>ʼ<EFBFBD><CABC>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9>
|
||||
for(i=1; i<=9; i++)
|
||||
book[i]=0;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>q1<71>в<EFBFBD><D0B2><EFBFBD>6<EFBFBD><36><EFBFBD><EFBFBD>
|
||||
//С<><D0A1><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>6<EFBFBD><36><EFBFBD><EFBFBD>
|
||||
for(i=1; i<=6; i++) {
|
||||
scanf("%d",&q1.data[q1.tail]);
|
||||
q1.tail++;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>q2<71>в<EFBFBD><D0B2><EFBFBD>6<EFBFBD><36><EFBFBD><EFBFBD>
|
||||
//С<><D0A1><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>6<EFBFBD><36><EFBFBD><EFBFBD>
|
||||
for(i=1; i<=6; i++) {
|
||||
scanf("%d",&q2.data[q2.tail]);
|
||||
q2.tail++;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>Ϊ<EFBFBD>յ<EFBFBD>ʱ<EFBFBD><CAB1>ִ<EFBFBD><D6B4>ѭ<EFBFBD><D1AD>
|
||||
while(q1.tail>q1.head && q2.head<q2.tail) {
|
||||
t = q1.data[q1.head];//С<>߳<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
//<2F>ж<EFBFBD>С<EFBFBD>ߵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ӯ<EFBFBD><D3AE>
|
||||
if(book[t]==0) { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊt<CEAA><74><EFBFBD><EFBFBD>
|
||||
//С<>ߴ<EFBFBD><DFB4><EFBFBD>û<EFBFBD><C3BB>Ӯ<EFBFBD><D3AE>
|
||||
q1.head++;
|
||||
s.top++;
|
||||
//<2F>ٰѴ<D9B0><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒŵ<C6B7><C5B5><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ջ
|
||||
s.data[s.top] = t;
|
||||
book[t]=1;
|
||||
} else {
|
||||
//С<>ߴ<EFBFBD><DFB4>ֿ<EFBFBD><D6BF><EFBFBD>Ӯ<EFBFBD><D3AE>
|
||||
q1.head++; //С<><D0A1><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
|
||||
q1.data[q1.tail] = t;//<2F><><EFBFBD><EFBFBD><EFBFBD>ŰѴ<C5B0><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒŵ<C6B7><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ĩβ
|
||||
q1.tail++;
|
||||
while(s.data[s.top]!=t) { //<2F><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD>Ӯ<EFBFBD><D3AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ηŵ<CEB7><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ĩβ
|
||||
book[s.data[s.top]] = 0;//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
q1.data[q1.tail] = s.data[s.top]; //<2F><><EFBFBD>η<EFBFBD><CEB7><EFBFBD><EFBFBD><EFBFBD>β
|
||||
q1.tail++;
|
||||
s.top--;//ջ<><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB>Ҫ<EFBFBD><D2AA>1
|
||||
}
|
||||
//<2F>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ t<><74><EFBFBD><EFBFBD>
|
||||
book[s.data[s.top]] = 0;//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
q1.data[q1.tail] = s.data[s.top]; //<2F><><EFBFBD>η<EFBFBD><CEB7><EFBFBD><EFBFBD><EFBFBD>β
|
||||
q1.tail++;
|
||||
s.top--;//ջ<><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB>Ҫ<EFBFBD><D2AA>1
|
||||
}
|
||||
if(q1.head==q1.tail) break;//С<><D0A1><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4>꣬<EFBFBD><EAA3AC>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
||||
|
||||
t = q2.data[q2.head];//С<><D0A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
//<2F>ж<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ӯ<EFBFBD><D3AE>
|
||||
if(book[t]==0) { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊt<CEAA><74><EFBFBD><EFBFBD>
|
||||
//С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Ӯ<EFBFBD><D3AE>
|
||||
q2.head++;//С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
|
||||
s.top++;
|
||||
s.data[s.top] = t;//<2F>ٰѴ<D9B0><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒŵ<C6B7><C5B5><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ջ
|
||||
book[t]=1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊt<CEAA><74><EFBFBD><EFBFBD>
|
||||
} else {
|
||||
//С<><D0A1><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD><D6BF><EFBFBD>Ӯ<EFBFBD><D3AE>
|
||||
q2.head++; //С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
|
||||
q2.data[q2.tail] = t; //<2F><><EFBFBD><EFBFBD><EFBFBD>ŰѴ<C5B0><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒŵ<C6B7><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ĩβ
|
||||
q2.tail++;
|
||||
while(s.data[s.top]!=t) { //<2F><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD>Ӯ<EFBFBD><D3AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ηŵ<CEB7><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ĩβ
|
||||
book[s.data[s.top]] = 0;//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
q2.data[q2.tail] = s.data[s.top];//<2F><><EFBFBD>η<EFBFBD><CEB7><EFBFBD><EFBFBD><EFBFBD>β
|
||||
q2.tail++;
|
||||
s.top--;
|
||||
}
|
||||
//<2F>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ t<><74><EFBFBD><EFBFBD>
|
||||
book[s.data[s.top]] = 0;//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
q2.data[q2.tail] = s.data[s.top]; //<2F><><EFBFBD>η<EFBFBD><CEB7><EFBFBD><EFBFBD><EFBFBD>β
|
||||
q2.tail++;
|
||||
s.top--;//ջ<><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB>Ҫ<EFBFBD><D2AA>1
|
||||
}
|
||||
}
|
||||
|
||||
if(q2.tail==q2.head) {
|
||||
printf("С<EFBFBD><EFBFBD> win\n");
|
||||
printf("С<EFBFBD>ߵ<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD>ƣ<EFBFBD>");
|
||||
for(i=q1.head; i<=q1.tail-1; i++)
|
||||
printf("%d",q1.data[i]);
|
||||
|
||||
if(s.top>0) { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
||||
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>");
|
||||
for(i=1; i<=s.top; i++)
|
||||
printf(" %d",s.data[i]);
|
||||
} else
|
||||
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else {
|
||||
printf("С<EFBFBD><EFBFBD> win\n");
|
||||
printf("С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD>ƣ<EFBFBD>");
|
||||
for(i=q2.head; i<=q2.tail-1; i++)
|
||||
printf(" %d",q2.data[i]);
|
||||
|
||||
if(s.top>0) { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
||||
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>");
|
||||
for(i=1; i<=s.top; i++)
|
||||
printf(" %d",s.data[i]);
|
||||
} else
|
||||
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
98
C++课程/待整理知识/啊哈算法/bfs再解炸弹人.cpp
Normal file
98
C++课程/待整理知识/啊哈算法/bfs再解炸弹人.cpp
Normal file
@@ -0,0 +1,98 @@
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
struct node {
|
||||
int x;
|
||||
int y;
|
||||
};
|
||||
struct node que[401];
|
||||
char map[50][50];
|
||||
int visit[50][50];
|
||||
int next_[4][2]= {{0,1},{1,0},{0,-1},{-1,0}};
|
||||
int n,m,tx,ty,startx,starty,sum,max_=0;
|
||||
int head,tail,mx,my;
|
||||
int getboom(int x,int y) {
|
||||
int sum_=0,i,j;
|
||||
i=x,j=y;
|
||||
while(map[i][j]!='#') {
|
||||
if(map[i][j]=='G')
|
||||
sum_++;
|
||||
i--;
|
||||
}
|
||||
i=x;
|
||||
j=y;
|
||||
while(map[i][j]!='#') {
|
||||
if(map[i][j]=='G')
|
||||
sum_++;
|
||||
i++;
|
||||
}
|
||||
i=x;
|
||||
j=y;
|
||||
while(map[i][j]!='#') {
|
||||
if(map[i][j]=='G')
|
||||
sum_++;
|
||||
j--;
|
||||
}
|
||||
i=x;
|
||||
j=y;
|
||||
while(map[i][j]!='#') {
|
||||
if(map[i][j]=='G')
|
||||
sum_++;
|
||||
j++;
|
||||
}
|
||||
return sum_;
|
||||
|
||||
}
|
||||
int main() {
|
||||
int i,j;
|
||||
n=13,m=13;
|
||||
startx=3,starty=3;
|
||||
for(i=1; i<=n; i++) {
|
||||
for(j=1; j<=m; j++) {
|
||||
cin>>map[i][j];
|
||||
}
|
||||
}
|
||||
head=tail=1;
|
||||
que[tail].x=startx;
|
||||
que[tail].y=starty;
|
||||
visit[startx][starty]=1;
|
||||
max_=getboom(startx,starty);
|
||||
tail++;
|
||||
mx=startx;
|
||||
my=starty;
|
||||
while(head<tail) {
|
||||
for(i=0; i<4; i++) {
|
||||
tx=que[head].x+next_[i][0];
|
||||
ty=que[head].y+next_[i][1];
|
||||
if(tx<1 || tx>n || ty<1 || ty>m)
|
||||
continue;
|
||||
if(map[tx][ty]=='.' && visit[tx][ty]==0) {
|
||||
visit[tx][ty]=1;
|
||||
que[tail].x=tx;
|
||||
que[tail].y=ty;
|
||||
tail++;
|
||||
sum=getboom(tx,ty);
|
||||
if(sum>max_) {
|
||||
max_=sum;
|
||||
mx=tx;
|
||||
my=ty;
|
||||
}
|
||||
}
|
||||
}
|
||||
head++;//<2F>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD><CDBF>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>for<6F><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д
|
||||
}
|
||||
cout<<max_<<' '<<mx<<' '<<my;
|
||||
}
|
||||
//#############
|
||||
//#GG.GGG#GGG.#
|
||||
//###.#G#G#G#G#
|
||||
//#.......#..G#
|
||||
//#G#.###.#G#G#
|
||||
//#GG.GGG.#.GG#
|
||||
//#G#.#G#.#.#.#
|
||||
//##G...G.....#
|
||||
//#G#.#G###.#G#
|
||||
//#...G#GGG.GG#
|
||||
//#G#.#G#G#.#G#
|
||||
//#GG.GGG#G.GG#
|
||||
//#############
|
||||
|
||||
73
C++课程/待整理知识/啊哈算法/bfs宝岛探险.cpp
Normal file
73
C++课程/待整理知识/啊哈算法/bfs宝岛探险.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
int main() {
|
||||
struct mark {
|
||||
int x;
|
||||
int y;
|
||||
};
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
struct mark que[2501];
|
||||
int square=1;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int head,tail;
|
||||
int n,m;
|
||||
int p,q,k;
|
||||
int book[51][51];
|
||||
//ʹ<><CAB9>book<6F><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<C7B7><F1BEADB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int a[51][51];
|
||||
int color=0;
|
||||
//<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD>ͳ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
head=1;
|
||||
tail=1;
|
||||
cout << "please input the map of row and col: ";
|
||||
cin >> n >>m;
|
||||
cout << "please input the map: "<<endl;
|
||||
for(int i=1; i<=n; ++i) for(int j=1; j<=m; ++j) cin >> a[i][j];
|
||||
for(p=1; p<=n; ++p) {
|
||||
for(q=1; q<=m; ++q) {
|
||||
if(a[p][q]>0)
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD>
|
||||
{
|
||||
color--;
|
||||
book[p][q]=1;
|
||||
que[tail].x=p;
|
||||
que[tail].y=q;
|
||||
++tail;
|
||||
while(head<tail)
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>
|
||||
{
|
||||
int next[4][2]= {{1,0},
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬ʵ<E9A3AC>ֶ<EFBFBD><D6B6>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6> {0,1}, {0,-1}, {-1,0}};
|
||||
a[p][q]=color;
|
||||
for(k=0; k<4; ++k) {
|
||||
int tx=que[head].x+next[k][0];
|
||||
int ty=que[head].y+next[k][1];
|
||||
if((tx < 0) || (ty < 0) || (tx > n) || (ty > m))
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
||||
continue;
|
||||
if((a[tx][ty]>0) && (book[tx][ty] == 0))
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ½<CEAA>ء<EFBFBD><D8A1>Ƿ<EFBFBD><C7B7>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ǹ<EFBFBD>
|
||||
{
|
||||
book[tx][ty]=1;
|
||||
++square;
|
||||
a[tx][ty]=color;
|
||||
que[tail].x=tx;
|
||||
que[tail].y=ty;
|
||||
++tail;
|
||||
}
|
||||
} ++head;
|
||||
//<2F><>һ<EFBFBD><D2BB><EFBFBD>ܹؼ<DCB9><D8BC><EFBFBD>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>Ϻõ<F3A3ACB8><C3B5><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>൱<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for(int i=1; i<=n; ++i) {
|
||||
for(int j=1; j<=m; ++j) {
|
||||
cout << a[i][j] <<" ";
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
cout << "the island of the square : " << square <<endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
82
C++课程/待整理知识/啊哈算法/bfs解求小哈.cpp
Normal file
82
C++课程/待整理知识/啊哈算法/bfs解求小哈.cpp
Normal file
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
5 4
|
||||
0 0 1 0
|
||||
0 0 0 0
|
||||
0 0 1 0
|
||||
0 1 0 0
|
||||
0 0 0 1
|
||||
1 1 4 3
|
||||
*/
|
||||
#include<stdio.h>
|
||||
struct note {
|
||||
int x; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int y; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int f; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>еı<D0B5><C4B1>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD>ⲻ<EFBFBD><E2B2BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>Ҫf<D2AA><66>
|
||||
int s; //<2F><><EFBFBD><EFBFBD>
|
||||
};
|
||||
int main() {
|
||||
struct note que[2501]; //<2F><>Ϊ<EFBFBD><CEAA>ͼ<EFBFBD><CDBC>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>50*50<35><30><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>ᳬ<EFBFBD><E1B3AC>2500<30><30>
|
||||
|
||||
int a[51][51] = {0}; //<2F><><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2>ͼ
|
||||
int book[51][51] = {0}; //<2F><><EFBFBD><EFBFBD>book<6F><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>¼<EFBFBD><C2BC>Щ<EFBFBD><D0A9><EFBFBD>Ѿ<EFBFBD><D1BE>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD>ֹһ<D6B9><D2BB><EFBFBD>㱻<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ0
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʾ<EFBFBD>ߵķ<DFB5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int next[4][2] = { //˳ʱ<CBB3>뷽<EFBFBD><EBB7BD>
|
||||
{0,1}, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{1,0}, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{0,-1}, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{-1,0}, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
int head,tail;
|
||||
int i,j,k,n,m,startx,starty,p,q,tx,ty,flag;
|
||||
|
||||
scanf("%d %d",&n,&m);
|
||||
for(i=1; i<=n; i++)
|
||||
for(j=1; j<=m; j++)
|
||||
scanf("%d",&a[i][j]);
|
||||
scanf("%d %d %d %d",&startx,&starty,&p,&q);
|
||||
|
||||
//<2F><><EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
head = 1;
|
||||
tail = 1;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
que[tail].x = startx;
|
||||
que[tail].y = starty;
|
||||
que[tail].f = 0;
|
||||
que[tail].s = 0;
|
||||
tail++;
|
||||
book[startx][starty] = 1;
|
||||
|
||||
flag = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<C7B7>Ŀ<EFBFBD><C4BF><EFBFBD>㣬0<E3A3AC><30>ʾ<EFBFBD><CABE>ʱû<CAB1>е<EFBFBD><D0B5> 1<><31>ʾ<EFBFBD>ѵ<EFBFBD><D1B5><EFBFBD>
|
||||
while(head < tail) { //<2F><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>Ϊ<EFBFBD><CEAA>ʱѭ<CAB1><D1AD>
|
||||
for(k=0; k<=3; k++) { //ö<><C3B6><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
tx = que[head].x + next[k][0];
|
||||
ty = que[head].y + next[k][1];
|
||||
if(tx < 1 || tx > n || ty < 1 || ty > m) //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
||||
continue;
|
||||
if(a[tx][ty] == 0 && book[tx][ty] == 0) { //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
|
||||
book[tx][ty] = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>Ѿ<EFBFBD><D1BE>߹<EFBFBD><DFB9><EFBFBD>ע<EFBFBD><D7A2>bfsÿ<73><C3BF><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>book<6F><6B><EFBFBD>黹ԭ
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>µĵ㵽<C4B5><E3B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
que[tail].x = tx;
|
||||
que[tail].y = ty;
|
||||
que[tail].f = head; //<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD>head<61><64>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>head<61><64><EFBFBD><EFBFBD><EFBFBD>ⲻ<EFBFBD><E2B2BB>Ҫ<EFBFBD><D2AA>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>ʡ<EFBFBD><CAA1>
|
||||
que[tail].s = que[head].s+1; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8>IJ<D7B5><C4B2><EFBFBD>+1
|
||||
tail++;
|
||||
|
||||
}
|
||||
if(tx == p && ty == q) { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>ֹͣ<CDA3><D6B9>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>ѭ<EFBFBD><D1AD>
|
||||
flag = 1; //<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>䲻Ҫд<D2AA><D0B4>
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(flag == 1)
|
||||
break;
|
||||
head++; //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F3A3ACB2>ܶԺ<DCB6><D4BA><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5>ٽ<EFBFBD><D9BD><EFBFBD><EFBFBD><EFBFBD>չ
|
||||
}
|
||||
printf("%d",que[tail-1].s); //<2F><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĩβ<C4A9><CEB2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>㣬Ҳ<E3A3AC><D2B2><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
||||
//ע<><D7A2>tail<69><6C>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һλ<D2BB><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>1
|
||||
getchar();
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
||||
41
C++课程/待整理知识/啊哈算法/dfs全排列.cpp
Normal file
41
C++课程/待整理知识/啊哈算法/dfs全排列.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
#include<bits/stdc++.h>
|
||||
|
||||
//<2F>˴<EFBFBD><CBB4>ر<EFBFBD>˵<EFBFBD><CBB5><EFBFBD>£<EFBFBD>C<EFBFBD><43><EFBFBD>Ե<EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>и<EFBFBD>ֵǰĬ<C7B0><C4AC>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>book<6F><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>ٴθ<D9B4><CEB8><EFBFBD>ֵ0
|
||||
int a[10], book[10], n;
|
||||
|
||||
//step<65><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵڼ<DAB5><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>
|
||||
void dfs (int step) {
|
||||
int i;
|
||||
if (step == n+1) {
|
||||
//<2F><><EFBFBD><EFBFBD>վ<EFBFBD>ڵ<EFBFBD>n+1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD>ʾǰn<C7B0><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>ź<EFBFBD><C5BA>˿<EFBFBD><CBBF><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>1~n<>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>е<EFBFBD><D0B5>˿<EFBFBD><CBBF>Ʊ<EFBFBD><C6B1>ţ<EFBFBD>
|
||||
for (i = 1; i <= n; i++) {
|
||||
printf("%d", a[i]);
|
||||
}
|
||||
printf("\n");
|
||||
return;//<2F><><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD>dfs<66><73><EFBFBD><EFBFBD><EFBFBD>ĵط<C4B5><D8B7><EFBFBD>
|
||||
}
|
||||
//<2F><>ʱվ<CAB1>ڵ<EFBFBD>step<65><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>Ӧ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31>2<EFBFBD><32>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><6E>˳<EFBFBD><CBB3>һһ<D2BB><D2BB><EFBFBD><EFBFBD>
|
||||
for (i = 1; i <= n; i++) {
|
||||
//<2F>ж<EFBFBD><D0B6>˿<EFBFBD><CBBF><EFBFBD>i<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (book[i] == 0) {
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>˿<EFBFBD><CBBF><EFBFBD>
|
||||
a[step] = i;//<2F><>i<EFBFBD><69><EFBFBD>˿<EFBFBD><CBBF>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>step<65>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD>
|
||||
book[i] = 1;//<2F><>book[i]<5D><><EFBFBD><EFBFBD>0<EFBFBD><30>ʾi<CABE><69><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><>step<65><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>
|
||||
dfs(step+1);//<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵݹ<C4B5><DDB9><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ֵģ<D6B5><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>
|
||||
book[i] = 0;//<2F><><EFBFBD>Ƿdz<C7B7><C7B3><EFBFBD>Ҫ<EFBFBD><D2AA>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ҫ<EFBFBD><D2AA><EFBFBD>ղų<D5B2><C5B3>Ե<EFBFBD><D4B5>˿<EFBFBD><CBBF><EFBFBD><EFBFBD>ջأ<D5BB><D8A3><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>γ<EFBFBD><CEB3><EFBFBD>
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
int main(int argc, const char * argv[]) {
|
||||
scanf ("%d", &n);//<2F><><EFBFBD><EFBFBD>ʱҪע<D2AA><D7A2>nΪ1~9֮<39><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dfs(1);//<2F><><EFBFBD><EFBFBD>վ<EFBFBD><D5BE>1<EFBFBD><31>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>
|
||||
getchar();
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
||||
|
||||
100
C++课程/待整理知识/啊哈算法/dfs再解炸弹人.cpp
Normal file
100
C++课程/待整理知识/啊哈算法/dfs再解炸弹人.cpp
Normal file
@@ -0,0 +1,100 @@
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
char map[50][50];
|
||||
int visit[50][50];
|
||||
int next_[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
|
||||
int n,m,tx,ty,startx,starty,sum,max_=0;
|
||||
int head,tail,mx,my;
|
||||
|
||||
int getboom(int x,int y)
|
||||
{
|
||||
int sum_=0,i,j;
|
||||
i=x,j=y;
|
||||
while(map[i][j]!='#')
|
||||
{
|
||||
if(map[i][j]=='G')
|
||||
sum_++;
|
||||
i--;
|
||||
}
|
||||
i=x;j=y;
|
||||
while(map[i][j]!='#')
|
||||
{
|
||||
if(map[i][j]=='G')
|
||||
sum_++;
|
||||
i++;
|
||||
}
|
||||
i=x;j=y;
|
||||
while(map[i][j]!='#')
|
||||
{
|
||||
if(map[i][j]=='G')
|
||||
sum_++;
|
||||
j--;
|
||||
}
|
||||
i=x;j=y;
|
||||
while(map[i][j]!='#')
|
||||
{
|
||||
if(map[i][j]=='G')
|
||||
sum_++;
|
||||
j++;
|
||||
}
|
||||
return sum_;
|
||||
}
|
||||
|
||||
void dfs(int x,int y)
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
tx=x+next_[i][0];
|
||||
ty=y+next_[i][1];
|
||||
if(tx<1 || tx>n || ty<1 || ty>m)
|
||||
continue;
|
||||
if(map[tx][ty]=='.' && visit[tx][ty]==0)
|
||||
{
|
||||
visit[tx][ty]=1;
|
||||
sum=getboom(tx,ty);
|
||||
if(sum>max_)
|
||||
{
|
||||
max_=sum;
|
||||
mx=tx;
|
||||
my=ty;
|
||||
}
|
||||
dfs(tx,ty);
|
||||
//visit[tx][ty]=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
int main()
|
||||
{
|
||||
int i,j;
|
||||
n=13,m=13;
|
||||
startx=3,starty=3;
|
||||
for(i=1;i<=n;i++)
|
||||
{
|
||||
for(j=1;j<=m;j++)
|
||||
{
|
||||
cin>>map[i][j];
|
||||
}
|
||||
}
|
||||
visit[startx][starty]=1;
|
||||
max_=getboom(startx,starty);
|
||||
mx=startx;
|
||||
my=starty;
|
||||
dfs(startx,starty);
|
||||
cout<<max_<<' '<<mx<<' '<<my;
|
||||
}
|
||||
//#############
|
||||
//#GG.GGG#GGG.#
|
||||
//###.#G#G#G#G#
|
||||
//#.......#..G#
|
||||
//#G#.###.#G#G#
|
||||
//#GG.GGG.#.GG#
|
||||
//#G#.#G#.#.#.#
|
||||
//##G...G.....#
|
||||
//#G#.#G###.#G#
|
||||
//#...G#GGG.GG#
|
||||
//#G#.#G#G#.#G#
|
||||
//#GG.GGG#G.GG#
|
||||
//#############
|
||||
|
||||
61
C++课程/待整理知识/啊哈算法/dfs宝岛探险.cpp
Normal file
61
C++课程/待整理知识/啊哈算法/dfs宝岛探险.cpp
Normal file
@@ -0,0 +1,61 @@
|
||||
/*<2A><>ɫ<EFBFBD><C9AB>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>color<6F>IJ<EFBFBD><C4B2><EFBFBD>*/
|
||||
#include<stdio.h>
|
||||
|
||||
int a[51][51];
|
||||
int book[51][51];
|
||||
int n, m, sum;
|
||||
void dfs(int x, int y, int color) {
|
||||
int k, tx, ty;
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int next[4][2] = { { 0, 1 },//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{ 1, 0 },//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{ 0, -1 },//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{ -1, 0 }
|
||||
};//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
a[x][y] = color;//<2F><>a[x][y]<5D><><EFBFBD><EFBFBD>Ⱦɫ
|
||||
|
||||
//ö<><C3B6><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
for (k = 0; k<4; k++) {
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
tx = x + next[k][0];
|
||||
ty = y + next[k][1];
|
||||
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
||||
if (tx<1 || tx>n || ty<1 || ty>m)
|
||||
continue;
|
||||
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>½<EFBFBD><C2BD>
|
||||
if (a[tx][ty]>0 && book[tx][ty] == 0) {
|
||||
sum++;
|
||||
book[tx][ty] = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>߹<EFBFBD>
|
||||
dfs(tx, ty, color);//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int i, j, startx, starty;
|
||||
scanf("%d %d %d %d", &n, &m, &startx, &starty);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
|
||||
for (i = 1; i <= n; i++)
|
||||
for (j = 1; j <= m; j++)
|
||||
scanf("%d", &a[i][j]); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
|
||||
|
||||
book[startx][starty] = 1;
|
||||
sum = 1;
|
||||
dfs(startx, starty, -1);//<2F><>-1<><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦɫ
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>Ⱦɫ<C8BE><C9AB><EFBFBD>ĵ<EFBFBD>ͼ
|
||||
for (i = 1; i <= n; i++) {
|
||||
for (j = 1; j <= m; j++) {
|
||||
printf("%3d", a[i][j]);//%3d<33>е<EFBFBD>3<EFBFBD><33>c<EFBFBD><63><EFBFBD><EFBFBD><EFBFBD>еij<D0B5><C4B3><EFBFBD>
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
getchar();
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
||||
80
C++课程/待整理知识/啊哈算法/dfs宝岛探险_color.cpp
Normal file
80
C++课程/待整理知识/啊哈算法/dfs宝岛探险_color.cpp
Normal file
@@ -0,0 +1,80 @@
|
||||
/*<2A><>ɫ<EFBFBD><C9AB>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>color<6F>IJ<EFBFBD><C4B2><EFBFBD>*/
|
||||
#include<stdio.h>
|
||||
|
||||
int a[51][51];
|
||||
int book[51][51];
|
||||
int n, m, sum;
|
||||
void dfs(int x, int y, int color)
|
||||
{
|
||||
int k, tx, ty;
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int next[4][2] = { { 0, 1 },//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{ 1, 0 },//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{ 0, -1 },//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{ -1, 0 } };//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
a[x][y] = color;//<2F><>a[x][y]<5D><><EFBFBD><EFBFBD>Ⱦɫ
|
||||
|
||||
//ö<><C3B6><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
for (k = 0; k<4; k++)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
tx = x + next[k][0];
|
||||
ty = y + next[k][1];
|
||||
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
||||
if (tx<1 || tx>n || ty<1 || ty>m)
|
||||
continue;
|
||||
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>½<EFBFBD><C2BD>
|
||||
if (a[tx][ty]>0 && book[tx][ty] == 0)
|
||||
{
|
||||
sum++;
|
||||
book[tx][ty] = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>߹<EFBFBD>
|
||||
dfs(tx, ty, color);//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
int i, j, num = 0;
|
||||
scanf("%d %d", &n, &m);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
|
||||
for (i = 1; i <= n; i++)
|
||||
for (j = 1; j <= m; j++)
|
||||
scanf("%d", &a[i][j]); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
|
||||
|
||||
//<2F><>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>ĵ㳢<C4B5>Խ<EFBFBD><D4BD><EFBFBD>dfsȾɫ
|
||||
for (i = 1; i <= n; i++)
|
||||
{
|
||||
for (j = 1; j <= m; j++)
|
||||
{
|
||||
if (a[i][j] > 0)
|
||||
{
|
||||
num--;//С<><D0A1><EFBFBD><EFBFBD>ҪȾɫ<C8BE><C9AB><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
||||
//ÿ<><C3BF><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>С<EFBFBD><D0A1>ӦȾ<D3A6>Բ<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>Ҫ-1
|
||||
book[i][j] = 1;
|
||||
dfs(i, j, num);//<2F>Բ<EFBFBD>ͬС<CDAC><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>num<75><6D><EFBFBD><EFBFBD>Ⱦɫ
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>Ⱦɫ<C8BE><C9AB><EFBFBD>ĵ<EFBFBD>ͼ
|
||||
for (i = 1; i <= n; i++)
|
||||
{
|
||||
for (j = 1; j <= m; j++)
|
||||
{
|
||||
printf("%3d", a[i][j]);//%3d<33>е<EFBFBD>3<EFBFBD><33>c<EFBFBD><63><EFBFBD><EFBFBD><EFBFBD>еij<D0B5><C4B3><EFBFBD>
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
||||
printf("<EFBFBD><EFBFBD>%d<><64>С<EFBFBD><D0A1>\n", -num);
|
||||
getchar(); getchar();
|
||||
return 0;
|
||||
}
|
||||
65
C++课程/待整理知识/啊哈算法/dfs独立小岛.cpp
Normal file
65
C++课程/待整理知识/啊哈算法/dfs独立小岛.cpp
Normal file
@@ -0,0 +1,65 @@
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>㷨114~116ҳ<36><D2B3><EFBFBD><EFBFBD>
|
||||
/*ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͼ<EFBFBD>ϵĶ<CFB5><C4B6><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>*/
|
||||
#include <stdio.h>
|
||||
int a[51][51];
|
||||
int book[51][51],n,m,sum;
|
||||
void dfs(int x,int y,int color) {
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҡ<EFBFBD><D2A1><EFBFBD><EFBFBD>¡<EFBFBD><C2A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>˳ʱ<CBB3>룩
|
||||
int next[4][2]= {{0,1}, {1,0},{0,-1},{-1,0}};
|
||||
int k,tx,ty;
|
||||
|
||||
a[x][y]=color;//<2F><>a[x][y]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦɫ
|
||||
//<2F>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD>
|
||||
for(k=0; k<4; k++) {
|
||||
tx=x+next[k][0];//Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
ty=y+next[k][1];
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
||||
if(tx<1||tx>n||ty<1||ty>m)
|
||||
continue;
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ½<CEAA>ؼ<EFBFBD><D8BC>Ƿ<C7B7><F1B1BBB1><EFBFBD>
|
||||
if(a[tx][ty]>0 && book[tx][ty]==0) {
|
||||
sum++;
|
||||
book[tx][ty]==1;
|
||||
//<2F><><EFBFBD>Ǹõ<C7B8><C3B5><EFBFBD><EFBFBD>߹<EFBFBD>
|
||||
dfs(tx,ty,color); //<2F>Ըõ<D4B8><C3B5><EFBFBD>ɫ <20><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>dfs()<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int i,j,num=0;
|
||||
scanf("%d %d %d",&n,&m);
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n m
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
||||
for(i=1; i<=n; i++) {
|
||||
for(j=1; j<=m; j++) {
|
||||
scanf("%d",&a[i][j]);
|
||||
}
|
||||
}
|
||||
|
||||
//<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>ĵ㳢<C4B5>Խ<EFBFBD><D4BD><EFBFBD>dfsȾɫ
|
||||
for(i=1; i<=n; i++) {
|
||||
for(j=1; j<=m; j++) {
|
||||
if(a[i][j]>0) {
|
||||
num--; //<2F><><EFBFBD><EFBFBD>Ⱦɫ<C8BE><C9AB><EFBFBD>ĵ<EFBFBD>ͼ for(i=1;i<=n;i++)
|
||||
book[i][j] = 1;
|
||||
dfs(i,j,num);
|
||||
}
|
||||
}
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>Ⱦɫ<C8BE><C9AB><EFBFBD>ĵ<EFBFBD>ͼ
|
||||
for(i=1; i<=n; i++) {
|
||||
for(j=1; j<=m; j++) {
|
||||
printf("%3d",a[i][j]);//3<><33>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>еij<D0B5><C4B3><EFBFBD>
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
||||
printf("<EFBFBD><EFBFBD>%d<><64>С<EFBFBD><D0A1>\n",-num);
|
||||
getchar();
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
||||
|
||||
52
C++课程/待整理知识/啊哈算法/dfs解九张扑克牌.cpp
Normal file
52
C++课程/待整理知识/啊哈算法/dfs解九张扑克牌.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
#include<bits/stdc++.h>
|
||||
|
||||
int a[10], book[10], total=0;
|
||||
|
||||
void dfs(int step) //step<65><70>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>վ<EFBFBD>ڵڼ<DAB5><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ
|
||||
{
|
||||
int i;
|
||||
|
||||
if (step ==10) //<2F><><EFBFBD><EFBFBD>վ<EFBFBD>ھ<EFBFBD>10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾǰ<CABE><C7B0>9<EFBFBD><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>ź<EFBFBD><C5BA>˿<EFBFBD><CBBF><EFBFBD>
|
||||
{
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||
if (a[1] * 100 + a[2] * 10 + a[3] + a[4] * 100 + a[5] * 10 + a[6] == a[7] * 100 + a[8] * 10 + a[9])
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><F3A3ACBF>н<EFBFBD>+1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
total++;
|
||||
printf("%d%d%d+%d%d%d = %d%d%d\n", a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
|
||||
}
|
||||
return ; // <20><><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĵط<C4B5><D8B7><EFBFBD>
|
||||
}
|
||||
//<2F><>ʱվ<CAB1>ڵ<EFBFBD>step<65><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>Ӧ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD>أ<EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31>2<EFBFBD><32>3...n<><6E>˳<EFBFBD><CBB3>һһ<D2BB><D2BB><EFBFBD><EFBFBD>
|
||||
for (i = 1; i <= 9; i++)
|
||||
{
|
||||
//<2F>ж<EFBFBD><D0B6>˿<EFBFBD><CBBF><EFBFBD>i<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (book[i] == 0) //book[i]Ϊ0<CEAA><30>ʾ<EFBFBD>˿<EFBFBD><CBBF>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>˿<EFBFBD><CBBF><EFBFBD>
|
||||
a[step] = i; //<2F><><EFBFBD>˿<EFBFBD><CBBF><EFBFBD>i<EFBFBD><69><EFBFBD>뵽<EFBFBD><EBB5BD>step<65><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
book[i] = 1; //<2F><>book[i]<5D><>ֵ<EFBFBD><D6B5>Ϊ1<CEAA><31><EFBFBD><EFBFBD>ʾ<EFBFBD>˿<EFBFBD><CBBF><EFBFBD>i<EFBFBD>Ѳ<EFBFBD><D1B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><>step<65><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ú<EFBFBD><C3BA>˿<EFBFBD><CBBF>ƣ<EFBFBD><C6A3>ߵ<EFBFBD><DFB5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ
|
||||
dfs(step + 1);//<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵݹ<C4B5><DDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>֣<EFBFBD>(<28>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>)
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿdz<C7B7><C7B3><EFBFBD>Ҫ<EFBFBD><D2AA>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ҫ<EFBFBD><D2AA><EFBFBD>ղų<D5B2><C5B3>Ե<EFBFBD><D4B5>˿<EFBFBD><CBBF><EFBFBD><EFBFBD>ջأ<D5BB><D8A3><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>γ<EFBFBD><CEB3><EFBFBD>
|
||||
book[i] = 0;
|
||||
}
|
||||
}
|
||||
return ;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD>վ<EFBFBD>ڵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ
|
||||
dfs(1);
|
||||
|
||||
//ΪʲôҪ<C3B4><D2AA><EFBFBD><EFBFBD>2֮ǰ<D6AE>Ѿ<EFBFBD>˵<EFBFBD><CBB5>
|
||||
printf("total = %d\n", total / 2);
|
||||
|
||||
getchar();
|
||||
getchar();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
52
C++课程/待整理知识/啊哈算法/dfs解求小哈.cpp
Normal file
52
C++课程/待整理知识/啊哈算法/dfs解求小哈.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
#include<stdio.h>
|
||||
int n,m,p,q,min=99999999;
|
||||
int a[51][51],book[51][51];
|
||||
void dfs(int x,int y,int step)
|
||||
{
|
||||
int next[4][2]={
|
||||
{0,1},//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{1,0},//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{0,-1},//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{-1,0},//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
int tx,ty,k;
|
||||
if(x==p && y==q) //<2F>ж<EFBFBD><D0B6>Ƿ<C7B7>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
{
|
||||
if(step<min)
|
||||
min=step; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
||||
return;
|
||||
}
|
||||
/*ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD>*/
|
||||
for(k=0;k<=3;k++)
|
||||
{
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
tx=x+next[k][0];
|
||||
ty=y+next[k][1];
|
||||
if(tx<1 || tx>n || ty<1 || ty>m) //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
||||
continue;
|
||||
/*<2A>жϸõ<CFB8><C3B5>Ƿ<EFBFBD>Ϊ<EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>*/
|
||||
if(a[tx][ty]==0 && book[tx][ty]==0)
|
||||
{
|
||||
book[tx][ty]=1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>߹<EFBFBD>
|
||||
dfs(tx,ty,step+1); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
book[tx][ty]=0; //<2F><><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
int i,j,startx,starty;
|
||||
scanf("%d %d",&n,&m); //<2F><><EFBFBD><EFBFBD>n<EFBFBD><6E>m<EFBFBD><6D>nΪ<6E>У<EFBFBD>mΪ<6D><CEAA>
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD>*/
|
||||
for(i=1;i<=n;i++)
|
||||
for(j=1;j<=m;j++)
|
||||
scanf("%d",&a[i][j]);
|
||||
scanf("%d %d %d %d",&startx,&starty,&p,&q); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD>㿪ʼ<E3BFAA><CABC><EFBFBD><EFBFBD>*/
|
||||
book[startx][starty]=1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>·<EFBFBD><C2B7><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>
|
||||
dfs(startx,starty,0); //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD>꣬<EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD>꣬<EFBFBD><EAA3AC>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ϊ0
|
||||
printf("%d",min); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̲<EFBFBD><CCB2><EFBFBD>
|
||||
return 0;
|
||||
}
|
||||
47
C++课程/待整理知识/啊哈算法/p131.cpp
Normal file
47
C++课程/待整理知识/啊哈算法/p131.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int e[100][100], book[100], n, sum = 0;
|
||||
|
||||
void dfs(int cur) {//cur<75>ǵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int i;
|
||||
printf("%d ", cur);
|
||||
sum++;//ÿ<><C3BF><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>㣬sum<75>ͼ<EFBFBD>һ<EFBFBD><D2BB>
|
||||
// <20>߽<EFBFBD>
|
||||
if (sum == n) {//<2F><><EFBFBD>ж<EFBFBD><D0B6>㶼<EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
return;
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB>
|
||||
for (i = 1; i <=n; i++) {//<2F><>1<EFBFBD>Ŷ<EFBFBD><C5B6>㵽n<E3B5BD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><CEBD>г<EFBFBD><D0B3>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD>뵱ǰ<EBB5B1><C7B0><EFBFBD><EFBFBD>cur<75>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// //<2F>жϵ<D0B6>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>cur<75><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<EFBFBD>Ƿ<EFBFBD><C7B7>бߣ<D0B1><DFA3><EFBFBD><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD>i<EFBFBD>Ƿ<EFBFBD><C7B7>ѷ<EFBFBD><D1B7>ʹ<EFBFBD><CAB9><EFBFBD>
|
||||
if (e[cur][i] == 1 && book[i] == 0) {
|
||||
book[i] = 1;//<2F><><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD>i<EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>
|
||||
dfs(i);//<2F>Ӷ<EFBFBD><D3B6><EFBFBD>i<EFBFBD>ٳ<EFBFBD><D9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int i, j, m, a, b;
|
||||
|
||||
scanf("%d %d", &n, &m);
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for (i = 1; i <= n; i++)
|
||||
for (j = 1; j <= n; j++)
|
||||
if (i == j) e[i][j] = 0;
|
||||
else e[i][j] = 999999;//<2F>൱<EFBFBD><E0B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>߶Գƣ<D4B3><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
|
||||
for (i = 1; i <= m; i++) {
|
||||
scanf("%d %d", &a, &b);
|
||||
e[a][b] = 1;
|
||||
e[b][a] = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>e[b][a]Ҳ<><D2B2>ֵΪ1<CEAA><31>
|
||||
}
|
||||
//<2F><>1<EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
book[1] = 1;//<2F><><EFBFBD><EFBFBD>1<EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>
|
||||
dfs(1);//<2F><>1<EFBFBD>Ŷ<EFBFBD><C5B6>㿪ʼ<E3BFAA><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
getchar();
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
||||
|
||||
51
C++课程/待整理知识/啊哈算法/p134.cpp
Normal file
51
C++课程/待整理知识/啊哈算法/p134.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
#include<iostream> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>
|
||||
|
||||
int main() {
|
||||
int i,j,n,m, a, b, cur,book[101]= {0},e[101][101];
|
||||
int que[10001],head,tail;
|
||||
scanf("%d %d",&n,&m);
|
||||
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>
|
||||
for (i = 1; i <= m; ++i) {
|
||||
for (int j = 1; j <= n; ++j) {
|
||||
if (i == j)
|
||||
e[i][j] = 0;
|
||||
else
|
||||
e[i][j] = 99999999; //<2F><><EFBFBD><EFBFBD>99999999Ϊ<39><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
//<2F><><EFBFBD>붥<EFBFBD><EBB6A5>֮<EFBFBD><D6AE><EFBFBD>ı<EFBFBD>
|
||||
for (i = 1; i <= m; ++i) { //<2F><><EFBFBD>붥<EFBFBD><EBB6A5><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
|
||||
scanf("%d %d",&a,&b);
|
||||
e[a][b] = 1;
|
||||
e[b][a] = 1; //<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
|
||||
}
|
||||
//<2F><><EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
head=1;
|
||||
tail=1;
|
||||
//<2F><>1<EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>1<EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
que[tail]=1;
|
||||
tail++;
|
||||
book[1]=1;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>Ϊ<EFBFBD>յ<EFBFBD>ʱ<EFBFBD><CAB1>ѭ<EFBFBD><D1AD>
|
||||
while (head<tail && tail<=n) {
|
||||
cur=que[head];
|
||||
for (i = 1; i <= n; ++i) {
|
||||
if (e[cur][i] == 1 && book[i] == 0) {
|
||||
que[tail]=i;
|
||||
tail++;
|
||||
book[i] = 1;
|
||||
}
|
||||
if(tail>n) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
head++;
|
||||
}
|
||||
for(i=1;i<tail;i++)
|
||||
printf("%d",que[i]);
|
||||
getchar();
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
||||
|
||||
18
C++课程/待整理知识/啊哈算法/p29.cpp
Normal file
18
C++课程/待整理知识/啊哈算法/p29.cpp
Normal file
@@ -0,0 +1,18 @@
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
int q[102]={0,6,3,1,7,5,8,9,2,4},head,tail;
|
||||
head=1;
|
||||
tail=10;
|
||||
while(head<tail)
|
||||
{
|
||||
cout<<q[head]<<" ";
|
||||
head++;
|
||||
q[tail]=q[head];
|
||||
tail++;
|
||||
head++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
26
C++课程/待整理知识/啊哈算法/p30.cpp
Normal file
26
C++课程/待整理知识/啊哈算法/p30.cpp
Normal file
@@ -0,0 +1,26 @@
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
struct queue {
|
||||
int data[100];
|
||||
int head;
|
||||
int tail;
|
||||
};
|
||||
|
||||
int main() {
|
||||
struct queue q;
|
||||
int i;
|
||||
q.head=1;
|
||||
q.tail=1;
|
||||
for(i=1; i<=9; i++) {
|
||||
cin>>q.data[q.tail];
|
||||
q.tail++;
|
||||
}
|
||||
while(q.head<q.tail) {
|
||||
cout<<q.data[q.head];
|
||||
q.head++;
|
||||
q.data[q.tail]=q.data[q.head];
|
||||
q.tail++;
|
||||
q.head++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
33
C++课程/待整理知识/啊哈算法/p34.cpp
Normal file
33
C++课程/待整理知识/啊哈算法/p34.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
char str[100], stack[100];
|
||||
int i, len, mid, next, top;
|
||||
|
||||
fgets(str, sizeof(str), stdin);
|
||||
len = strlen(str);
|
||||
mid = len / 2 - 1;//<2F><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>
|
||||
|
||||
top = 0;//<2F><>ʼ<EFBFBD><CABC>ջ
|
||||
for (i = 0; i <= mid; i++) { //<2F><>midǰ<64><C7B0><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ջ
|
||||
stack[++top] = str[i];
|
||||
}
|
||||
|
||||
//<2F>ж<EFBFBD><D0B6>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD><C5BC><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD><EFBFBD>Ҫƥ<D2AA><C6A5><EFBFBD>ĺ<EFBFBD><C4BA>벿<EFBFBD><EBB2BF><EFBFBD><EFBFBD>ʼ<EFBFBD>±<EFBFBD>
|
||||
next = (len % 2) ? (mid+2) : (mid+1);
|
||||
|
||||
//<2F><>ʼƥ<CABC><C6A5>
|
||||
for (i = next; i <= len - 1; i++) {
|
||||
if (str[i] != stack[top]) break;
|
||||
top--;
|
||||
}
|
||||
|
||||
//<2F><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>
|
||||
if (top == 0)
|
||||
printf("YES\n");
|
||||
else
|
||||
printf("No\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
29
C++课程/待整理知识/啊哈算法/p34_简化版.cpp
Normal file
29
C++课程/待整理知识/啊哈算法/p34_简化版.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
int isHuiWen(char s[], int len) {
|
||||
int i, mid = len / 2;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mid֮ǰ<D6AE><C7B0>Ԫ<EFBFBD><D4AA>ֹͣ
|
||||
|
||||
for (i = 0; i < mid; i++) {
|
||||
if (s[i] == s[len - i - 1])continue;
|
||||
else return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
char str[100];
|
||||
int len;
|
||||
|
||||
fgets(str, sizeof(str), stdin);
|
||||
len = strlen(str);
|
||||
printf("%s of size %d\n", str, len);
|
||||
|
||||
if (isHuiWen(str, len)) {
|
||||
printf("YES\n");
|
||||
} else {
|
||||
printf("No\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
93
C++课程/待整理知识/啊哈算法/p35.cpp
Normal file
93
C++课程/待整理知识/啊哈算法/p35.cpp
Normal file
@@ -0,0 +1,93 @@
|
||||
#include<bits/stdc++.h>
|
||||
// ջ
|
||||
struct Stack {
|
||||
int s[100];
|
||||
int top;
|
||||
} stack;
|
||||
|
||||
int main(void) {
|
||||
char left_d = '{';
|
||||
char left_z = '[';
|
||||
char left_x = '(';
|
||||
char right_d = '}';
|
||||
char right_z = ']';
|
||||
char right_x = ')';
|
||||
int flag = 1;
|
||||
int have_other_word = 0;
|
||||
int i;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
char que[100];
|
||||
int head = 0;
|
||||
int tail = 0;
|
||||
|
||||
|
||||
stack.top = 0;
|
||||
|
||||
gets(que);
|
||||
|
||||
tail = strlen(que);
|
||||
|
||||
for (i = 0; i < tail; i++) {
|
||||
if (
|
||||
que[i] != left_d &&
|
||||
que[i] != left_z &&
|
||||
que[i] != left_x &&
|
||||
que[i] != right_d &&
|
||||
que[i] != right_z &&
|
||||
que[i] != right_x
|
||||
) {
|
||||
have_other_word = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (have_other_word == 0) {
|
||||
while (head < tail) {
|
||||
if (que[head] == left_d || que[head] == left_z || que[head] == left_x) {
|
||||
stack.s[stack.top] = head;
|
||||
stack.top++;
|
||||
} else {
|
||||
if (que[head] == right_d) {
|
||||
if (que[stack.s[stack.top - 1]] == left_d) {
|
||||
stack.top--;
|
||||
} else {
|
||||
flag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (que[head] == right_z) {
|
||||
if (que[stack.s[stack.top - 1]] == left_z) {
|
||||
stack.top--;
|
||||
} else {
|
||||
flag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (que[head] == right_x) {
|
||||
if (que[stack.s[stack.top - 1]] == left_x) {
|
||||
stack.top--;
|
||||
} else {
|
||||
flag = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (flag == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
head++;
|
||||
}
|
||||
} else {
|
||||
flag = 0;
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
printf("YES\n");
|
||||
} else {
|
||||
printf("NO\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
39
C++课程/待整理知识/啊哈算法/p47.cpp
Normal file
39
C++课程/待整理知识/啊哈算法/p47.cpp
Normal file
@@ -0,0 +1,39 @@
|
||||
#include<bits/stdc++.h>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD>壬һ<E5A3AC><D2BB><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ָ<EFBFBD>룬ָ<EBA3AC><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>node<64>ĵ<EFBFBD>ַ
|
||||
struct node {
|
||||
int data;
|
||||
struct node *next;
|
||||
};
|
||||
|
||||
int main() {
|
||||
struct node *head ,*p,*q,*t;//<2F><>һ<EFBFBD><D2BB>ָ<EFBFBD><D6B8>
|
||||
int i, n, a; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
scanf("%d",&n); //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
head = NULL; //ͷָ<CDB7><D6B8><EFBFBD><EFBFBD>ʼΪ<CABC><CEAA>
|
||||
//ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><6E><EFBFBD><EFBFBD>
|
||||
for(i = 1; i <= n; i++) {
|
||||
scanf("%d",&a); //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ռ䣬<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ㣬<DAB5><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱָ<CAB1><D6B8>pָ<70><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
||||
p=(struct node *)malloc(sizeof(struct node));
|
||||
p->data=a; //<2F><><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>data<74><61><EFBFBD><EFBFBD>
|
||||
p->next=NULL; //<2F><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><DAB5>ĺ<EFBFBD><C4BA><EFBFBD>ָ<EFBFBD><D6B8>ָ<EFBFBD><D6B8><EFBFBD>գ<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD>Ϊ<EFBFBD>ա<EFBFBD><D5A1><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ㣬<DAB5><E3A3AC><EFBFBD><EFBFBD>next=NULL
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľڵ㣬<DAB5><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5>ĺ<EFBFBD><C4BA><EFBFBD>ָ<EFBFBD><D6B8>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD>
|
||||
if(head==NULL)
|
||||
head=p;
|
||||
else
|
||||
q->next=p; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľڵ㣬<DAB5><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5>ĺ<EFBFBD><C4BA><EFBFBD>ָ<EFBFBD><D6B8>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD>
|
||||
//<2F>ѱ<EFBFBD><D1B1>ֵı<D6B5><C4B1><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ѭ<EFBFBD><D1AD>
|
||||
q=p;
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
t=head;
|
||||
while(t!=NULL) {
|
||||
printf("%d ",t->data);
|
||||
t=t->next;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
43
C++课程/待整理知识/啊哈算法/p52.cpp
Normal file
43
C++课程/待整理知识/啊哈算法/p52.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
struct node {
|
||||
int data;
|
||||
struct node *next;
|
||||
};
|
||||
|
||||
int main (){
|
||||
struct node *head, *p, *q, *t;
|
||||
int a,n;
|
||||
head=NULL;
|
||||
scanf("%d",&n);
|
||||
for(int i = 1;i <= n; i++){
|
||||
scanf("%d",&a);
|
||||
p=(struct node*)malloc(sizeof(struct node));
|
||||
p->data=a;
|
||||
p->next=NULL;
|
||||
if(head==NULL)
|
||||
head=p;
|
||||
else
|
||||
q->next=p;
|
||||
q=p;
|
||||
}
|
||||
scanf("%d",&a);
|
||||
t=head;
|
||||
while(t!=NULL) {
|
||||
if(t->next==NULL||t->next->data>a) { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD>β<EFBFBD><CEB2><EFBFBD>ߵ<EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>aʱ<61><CAB1><EFBFBD><EFBFBD>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
p=(struct node *)malloc(sizeof(struct node)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ڵ<EFBFBD>p<EFBFBD><70><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
p->data=a;
|
||||
p->next=t->next; //<2F><>ʱ<EFBFBD>ڵ<EFBFBD><DAB5>뵱ǰ<EBB5B1>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
t->next=p; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>β<EFBFBD><CEB2>
|
||||
break; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>˳<EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>
|
||||
}
|
||||
t=t->next;
|
||||
}
|
||||
t=head;
|
||||
while(t!=NULL) {
|
||||
printf("%d ",t->data);
|
||||
t=t->next;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
34
C++课程/待整理知识/啊哈算法/p54_dfs.cpp
Normal file
34
C++课程/待整理知识/啊哈算法/p54_dfs.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
#include<stdio.h>
|
||||
|
||||
int a[10];//开一个数组,用来装每一位的数字,3位一个数,共9位,把索引值为0的不要,计10个
|
||||
int book[10] = { 0 }; //标记哪个数是否用过了,初始值全是0,表示都没用过
|
||||
int total = 0; //一共多少个解
|
||||
|
||||
void dfs(int step) {
|
||||
int i;
|
||||
//到第10步,就不用再计算了,可以出结果了
|
||||
if (step == 9 + 1) {
|
||||
//发现有符合条件的就记录下来
|
||||
if (a[1] * 100 + a[2] * 10 + a[3] + a[4] * 100 + a[5] * 10 + a[6] == a[7] * 100 + a[8] * 10 + a[9]) {
|
||||
total++;
|
||||
printf("%d%d%d+%d%d%d=%d%d%d\n", a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
|
||||
}
|
||||
return;
|
||||
}
|
||||
//满满的都是套路
|
||||
for (i = 1; i <= 9; i++) {
|
||||
if (book[i] == 0) {
|
||||
a[step] = i;
|
||||
book[i] = 1;
|
||||
//递归进行深度优先搜索
|
||||
dfs(step + 1);
|
||||
book[i] = 0;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
int main() {
|
||||
dfs(1);
|
||||
printf("total = %d\n", total / 2);
|
||||
return 0;
|
||||
}
|
||||
73
C++课程/待整理知识/啊哈算法/p55.cpp
Normal file
73
C++课程/待整理知识/啊哈算法/p55.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĴ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
https://blog.csdn.net/weixin_40804043/article/details/86501166
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľڵ㣬<EFBFBD><EFBFBD>data[right[t]]>data[len]
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rightָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rightָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*/
|
||||
#include <stdio.h>
|
||||
int data[101];
|
||||
int right[101];//ÿ<><C3BF><EFBFBD>ڵ㶼<DAB5><E3B6BC>һ<EFBFBD><D2BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鳤<EFBFBD><E9B3A4>Ҫ<EFBFBD><D2AA>data<74><61><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
int main() {
|
||||
/*nΪ<6E>û<EFBFBD><C3BB>״<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ľڵ<C4BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>Ƴ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ڵ<EFBFBD>ʱ<EFBFBD><CAB1>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
lenΪ<6E><CEAA>ǰ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>data[0]<5D><>right[0]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>±<EFBFBD>1<EFBFBD><31>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>data[len]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ԫ<EFBFBD><D4AA>
|
||||
*/
|
||||
|
||||
int n,i,len,t;
|
||||
int flag = 1;
|
||||
scanf("%d",&n);
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>data
|
||||
for(i = 1; i<=n; i++) {
|
||||
scanf("%d",&data[i]);
|
||||
}
|
||||
len = n;
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>right
|
||||
for(i = 0; i<=n; i++) {
|
||||
if(i!=n) {
|
||||
right[i] = i+1;
|
||||
} else {
|
||||
right[i] = 0;
|
||||
//<2F><>0<EFBFBD><30>ʾû<CABE><C3BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ԫ<EFBFBD><D4AA>
|
||||
}
|
||||
}
|
||||
//<2F><>data<74><61>ĩβ<C4A9><CEB2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
len++;
|
||||
scanf("%d",&data[len]);
|
||||
/*
|
||||
ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><F2A3ACB5>ҵ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>Ľڵ<C4BD>data[len]ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>
|
||||
ֱ<><D6B1>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֹ
|
||||
*/
|
||||
t = 1; //<2F>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>ڵ<EFBFBD>С<EFBFBD>ڵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>if..else<73><65><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ģ<EFBFBD>
|
||||
if(data[len]<data[1]) {
|
||||
right[0] = len;
|
||||
right[len] = 1;
|
||||
} else {
|
||||
while(t!=0) {
|
||||
if(data[right[t]]>data[len]) {
|
||||
flag = 0;
|
||||
right[len] = right[t];
|
||||
right[t] = len;
|
||||
break;
|
||||
}
|
||||
t = right[t];
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(flag == 1) {
|
||||
right[len] = 0; /*<2A><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><F2B5A5B4><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>right[t]==0<>Ľڵ<C4BD><DAB5><EFBFBD><DEB8><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>м<EFBFBD><D0BC><EFBFBD>if(right[t]==0){temp = t;}
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>ٸij<D9B8>right[temp] = len;
|
||||
*/
|
||||
right[len-1] = len;
|
||||
}
|
||||
} //tΪright[0]ͷ<>ڵ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ڵ<D7BD><DAB5><EFBFBD><EFBFBD>±<EFBFBD>
|
||||
t = right[0];
|
||||
while(t!=0) {
|
||||
printf("%d ",data[t]);
|
||||
t = right[t];
|
||||
}
|
||||
//<2F>ȴ<EFBFBD><C8B4>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>
|
||||
getchar();
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
||||
|
||||
14
C++课程/待整理知识/啊哈算法/p58.cpp
Normal file
14
C++课程/待整理知识/啊哈算法/p58.cpp
Normal file
@@ -0,0 +1,14 @@
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
for(int i=0;i<=9;i++)
|
||||
{
|
||||
if((i*10+3)*6528==(30+i)*8256)
|
||||
{
|
||||
printf("%8d\n",i);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>=%d",((30+i)*8256));
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
13
C++课程/待整理知识/啊哈算法/双链表的概念理解.txt
Normal file
13
C++课程/待整理知识/啊哈算法/双链表的概念理解.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
http://baijiahao.baidu.com/s?id=1603257419363936237&wfr=spider&for=pc
|
||||
|
||||
˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
https://zhidao.baidu.com/question/225218516.html
|
||||
|
||||
1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD>IJ<EFBFBD>
|
||||
2<EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD>IJ<EFBFBD>
|
||||
https://www.cnblogs.com/corvoh/p/5595130.html
|
||||
https://www.cnblogs.com/littlehb/p/10995786.html
|
||||
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
https://www.zhihu.com/question/60724366
|
||||
41
C++课程/待整理知识/啊哈算法/火柴棍等式.cpp
Normal file
41
C++课程/待整理知识/啊哈算法/火柴棍等式.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
int Fun(int n)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD>0-9ûһ<C3BB><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int arr[10] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
|
||||
int ret = 0;
|
||||
//<2F>ж<EFBFBD>n<EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
while (n / 10 != 0){
|
||||
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ret += arr[n % 10];
|
||||
//<2F><><EFBFBD><EFBFBD>n<EFBFBD>ĸ<EFBFBD>λ<EFBFBD><CEBB>
|
||||
n /= 10;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ʱn<CAB1><6E>Ҫ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(n<><6E>һλ<D2BB><CEBB>)
|
||||
ret += arr[n];
|
||||
return ret;
|
||||
}
|
||||
int main()
|
||||
{
|
||||
int a, b, c, m, num = 0;
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>\n");
|
||||
scanf("%d", &m);
|
||||
//ö<><C3B6>a<EFBFBD><61>b
|
||||
for (a = 0; a <= 1111; a++){
|
||||
for (b = 0; b <= 1111; b++){
|
||||
c = a + b;
|
||||
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (Fun(a) + Fun(b) + Fun(c) == m - 4){
|
||||
printf("%d + %d = %d\n", a, b, c);
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF>ܵĸ<DCB5><C4B8><EFBFBD>
|
||||
num++;
|
||||
}
|
||||
}
|
||||
}
|
||||
printf("һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>ʽ\n", num);
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
||||
|
||||
78
C++课程/待整理知识/啊哈算法/炸弹人.cpp
Normal file
78
C++课程/待整理知识/啊哈算法/炸弹人.cpp
Normal file
@@ -0,0 +1,78 @@
|
||||
#include <iostream>
|
||||
/*
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 13 13
|
||||
#############
|
||||
#GG.GGG#GGG.#
|
||||
###.#G#G#G#G#
|
||||
#.......#..G#
|
||||
#G#.###.#G#G#
|
||||
#GG.GGG.#.GG#
|
||||
#G#.#G#.#.###
|
||||
##G...G.....#
|
||||
#G#.#G###.#G#
|
||||
#...G#GGG.GG#
|
||||
#G#.#G#G#.#G#
|
||||
#GG.GGG#G.GG#
|
||||
#############
|
||||
*/
|
||||
using namespace std;
|
||||
int main() {
|
||||
char a[20][21]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20*20
|
||||
int i,j,sum,map=0,p,q,x,y,n,m;
|
||||
cin>>n>>m; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
|
||||
for(i=0; i<n; i++)
|
||||
for(j=0; j<m; j++)
|
||||
cin>>a[i][j];
|
||||
for(i=0; i<n; i++) { //<2F><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>ö<EFBFBD>ٵ<EFBFBD>ͼÿһ<C3BF><D2BB>
|
||||
for(j=0; j<m; j++) {
|
||||
if(a[i][j]=='.') { //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊƽ<CEAA><C6BD>
|
||||
sum=0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ͳ<EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
x=i;
|
||||
y=j;
|
||||
while(a[x][y]!='#') { //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊǽ<CEAA><C7BD><EFBFBD><EFBFBD>Ϊǽ<CEAA><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(a[x][y]=='G') //<2F><>ǰ<EFBFBD>ǵ<EFBFBD><C7B5>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
sum++;
|
||||
x--; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ͳ<EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
x=i;
|
||||
y=j;
|
||||
while(a[x][y]!='#') {
|
||||
if(a[x][y]=='G')
|
||||
sum++;
|
||||
x++; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ͳ<EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
x=i;
|
||||
y=j;
|
||||
while(a[x][y]!='#') {
|
||||
if(a[x][y]=='G')
|
||||
sum++;
|
||||
y--; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ͳ<EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
x=i;
|
||||
y=j;
|
||||
while(a[x][y]!='#') {
|
||||
if(a[x][y]=='G')
|
||||
sum++;
|
||||
y++; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD>
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>map<61><70>ֵ
|
||||
if(sum>map) {
|
||||
map=sum;
|
||||
p=i; //p<><70>q<EFBFBD><71>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ֵ
|
||||
q=j;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cout<<"<EFBFBD><EFBFBD>ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>("<<p<<","<<q<<")<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<<map<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>"<<endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user