考研上機水題整理——浙大2006
阿新 • • 發佈:2017-09-14
map stack esp logs 經典的 fff 字符 return n)
題目1019:簡單計算器
棧的比較經典的運用,記得用棧,隊列和容器的時候,要清空,其次就是用棧的基本套路,取值,彈出,推入,輸出
1 #include<stdio.h> 2 #include<stack> 3 using namespace std; 4 5 int main() 6 { 7 int a,b; 8 char c,d; 9 stack <double> s; 10 while(~scanf("%d ",&a)&&a) 11 { 12 while(!s.empty())13 s.pop(); 14 s.push(a); 15 while(~scanf("%c %d%c",&c,&b,&d)) 16 { 17 if(c==‘+‘) 18 s.push(b); 19 else if(c==‘-‘) 20 s.push(-b*1.0); 21 else if(c==‘*‘) 22 { 23 doubletmp=s.top(); 24 //printf("%lf\n",tmp); 25 s.pop(); 26 s.push(tmp*b); 27 } 28 else if(c==‘/‘) 29 { 30 double tmp=s.top(); 31 //printf("%lf\n",tmp); 32 s.pop(); 33 s.push(tmp/b);34 } 35 if(d!=‘ ‘) 36 break; 37 } 38 // double ans=0; 39 while(!s.empty()) 40 { 41 if(s.size()==1) 42 { 43 printf("%.2lf\n",s.top()); 44 break; 45 } 46 double tmp1=s.top(); 47 //printf("%lf\n",tmp1); 48 s.pop(); 49 double tmp2=s.top(); 50 s.pop(); 51 s.push(tmp1+tmp2); 52 } 53 //printf("%.2lf\n",ans); 54 55 56 } 57 return 0; 58 } 59
題目1018:統計同成績學生人數
哈希數組的應用
題目1017:還是通暢工程
最小生成樹不過比並查集多了一個結構體和排序
1 #include<iostream> 2 #include<algorithm> 3 #include<stdio.h> 4 #include<string.h> 5 #include<math.h> 6 #include<queue> 7 #define LL long long 8 #define PI acos(-1) 9 #define exp 1e-9 10 #define INF 0x7fffffff 11 using namespace std; 12 priority_queue <int, vector<int>, greater<int> > Q; 13 int tree[110]; 14 struct node 15 { 16 int x,y,cost; 17 friend bool operator < (node a, node b) 18 { 19 return a.cost<b.cost; 20 } 21 }list[10000]; 22 int findRoot(int x) 23 { 24 if(tree[x]==-1) 25 return x; 26 else 27 { 28 int tmp=findRoot(tree[x]); 29 tree[x]=tmp; 30 return tmp; 31 } 32 } 33 34 int main() 35 { 36 int n; 37 while(~scanf("%d",&n)&&n) 38 { 39 int m=(n-1)*n/2; 40 for(int i=0; i<m; i++) 41 { 42 scanf("%d %d %d",&list[i].x,&list[i].y,&list[i].cost); 43 } 44 sort(list,list+m); 45 for(int i=1; i<=n; i++) 46 tree[i]=-1; 47 int ans=0; 48 for(int i=0; i<m; i++) 49 { 50 int a=findRoot(list[i].x); 51 int b=findRoot(list[i].y); 52 if(a!=b) 53 { 54 tree[a]=b; 55 ans+=list[i].cost; 56 } 57 } 58 printf("%d\n",ans); 59 } 60 return 0; 61 }
題目1016:火星A+B
題目思路很簡單,一個素數篩,一個字符串轉化為數組並進行模的過程
題目1015:還是A+B
其實就是不斷取最後一位的過程
1 #include<iostream> 2 #include<algorithm> 3 #include<stdio.h> 4 #include<string.h> 5 #include<math.h> 6 #include<queue> 7 #include<set> 8 #include<map> 9 #define LL long long 10 #define PI acos(-1) 11 #define exp 1e-9 12 using namespace std; 13 priority_queue <int, vector<int>, greater<int> > Q; 14 15 16 int main() 17 { 18 int a,b,k; 19 int a1,b1; 20 while(~scanf("%d %d %d",&a,&b,&k)) 21 { 22 if(a==0&&b==0) 23 break; 24 int i; 25 int ans=a+b; 26 for(i=0; i<k; i++) 27 { 28 a1=a%10; 29 b1=b%10; 30 if(a1!=b1) 31 break; 32 a/=10; 33 b/=10; 34 } 35 if(i==k) 36 printf("-1\n"); 37 else 38 printf("%d\n",ans); 39 } 40 return 0; 41 }
考研上機水題整理——浙大2006