9度-王道论坛计算机考研数据结构算法实战测试(2)
来源:互联网 发布:java最新开发面试题 编辑:程序博客网 时间:2024/05/18 03:48
A . ACM
多级排序。调用STL中的sort就好,自己定义下排序的cmp函数。不多解释。
#include <iostream>#include <cstdio>#include <algorithm>#include <string>using namespace std; struct node{ string name;//名字 int num;//题目数 int time;//罚时}x[105];//队伍信息 bool cmp(node a, node b){ if(a.num == b.num){ if(a.time == b.time){ return a.name < b.name;//按名字字典序 } return a.time < b.time;//按罚时少的 } return a.num > b.num;//按题目多的} int main(){ int t; while(cin>>t){ int i; for(i = 0; i < t; ++i){ cin>>x[i].name>>x[i].num>>x[i].time; } sort(x, x + t, cmp);//排序 for(i = 0 ; i < t; ++i){ cout<<x[i].name<<endl; } } return 0;}
B.小A的计算器
模拟题。类似高精度加法,只是改成26进制。题目数据范围比较小,可以直接先转10进制加法,然后再转26进制。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;char a[105], b[105];unsigned char c[105];int main(){int t;cin>>t;while(t--){cin>>a;cin>>b;int len1 = strlen(a) - 1;int len2 = strlen(b) - 1;int l = 0;int jin = 0;while(len1 >=0 && len2 >= 0)//处理当前两个数长度相同的情况{c[l] = (unsigned char)(jin + (a[len1] - 'a') + (b[len2] - 'a')) + 'a';if(c[l] >'z')//进位{c[l] = c[l] - 26;jin = 1;}else{jin = 0;}l++;len1--;len2--;}while(len1 >=0)//a比较大{c[l] = jin + a[len1];if(c[l] >'z'){c[l] = c[l] - 26;jin = 1;}else{jin = 0;}l++;len1--;}while(len2 >=0)//b比较大{c[l] = jin + b[len2];if(c[l] >'z'){c[l] = c[l] - 26;jin = 1;}else{jin = 0;}l++;len2--;}if(jin)//确定是否还存在进位{c[l] = jin + 'a';l++;}l--;while(1){//去掉前面多余的a,前导0if(c[l] == 'a'){l--;}else{break;}}int i;if(l == -1){//假如答案是0,输出aprintf("a");}for(i = l; i >= 0; --i){printf("%c",c[i]);}puts("");}return 0;}
C. 艾薇儿的演唱会
最短路径问题。本题用Dijkstra或floyed都可以。赤裸裸的题目。
#include <iostream>#include <cstdio>#include <cstring>using namespace std; const int N = 201;const int MAX = 10000000;int map[N][N], dist[N], path[N];//map是当前地图,dist是当前从起点到其他所有点的最短距离,path保存路径bool visited[N]; void Dijkstra(int n, int a)// Dijkstra实现,具体实现可以参考原理。{ int i, j, u, v = 0; for ( i = 1; i <= n; i++ ) { dist[i] = MAX; path[i] = -1; visited[i] = 0; } dist[a]=0; for ( i = 1; i <= n; i++ ) { u=-1; for( j = 1; j <= n; j++ ) { if ( visited[j] == 0 && (u==-1||dist[u]>dist[j]) ) { u = j; } } visited[u] = 1; for ( j = 1; j <= n; j++ ) { if ( visited[j] == 0 && dist[u] + map[u][j] < dist[j] ) { dist[j] = dist[u] + map[u][j]; path[j] = u; } } }} int main(){ int n,m,i,j; int aa, bb; while(scanf("%d %d",&n,&m)!=EOF) { scanf("%d %d", &aa, &bb); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) map[i][j]=MAX; } int a,b,c,s,e; for(i=0;i<m;i++) { scanf("%d %d %d",&a,&b,&c); if(map[a][b]>c)//处理重边 map[a][b]=map[b][a]=c; } Dijkstra(n,aa); printf("%d\n",dist[bb]); } return 0;}
- 9度-王道论坛计算机考研数据结构算法实战测试(2)
- 9度-王道论坛计算机考研数据结构算法实战测试(1)
- 9度-王道论坛计算机考研数据结构算法实战测试(3)
- 【九度】2014年王道论坛计算机考研机试全真模拟考试解题报告
- 题目1494:Dota(2013年王道论坛计算机考研机试全真模拟考试)
- 2014年王道论坛计算机考研机试全真模拟考试
- 2014年王道论坛计算机考研机试全真模拟考试题目1:时钟
- (考研)数据结构及算法
- 计算机数据结构考研题目
- 计算机考研数据结构
- 计算机统考专业课推荐参考书与辅导书(来自王道论坛)
- 【java】王道计算机考研机试指南例题java版
- 数据结构(王道)【线性表】【算法1.1-1.2】
- 数据结构(王道)【线性表】【算法1.3】
- 九度王道考研机试 2009-2哈工大1048:判断三角形类型
- 九度王道考研机试真题 2010-2北邮 题目1173:查找.cpp
- 九度王道考研机试真题 2011-2北大题目1156:谁是你的潜在朋友 hash
- 计算机算法和数据结构(实战中常用的)下载地址!
- 注释ASPX文件内容
- [USACO 1.2] Summary of Section 1.2
- Spring destroy-method="close"的作用
- windows访问共享文件夹,提示无权访问的一个原因
- fflush(stdout)用处简单介绍
- 9度-王道论坛计算机考研数据结构算法实战测试(2)
- VIRTOOLS 5.0在WIN7 64位系统里不能运行的解决方法
- JS编码和Asp.net编码
- ubuntu下修复apt-get时错误方法整理
- Bundle和Intent.putExtra的区别
- 发布应用程序
- Ubuntu 安装和卸载命令
- 计算机经典编程书籍大全!附下载地址
- <display:table></display:table> 分页跳转的测试