数据结构与算法实验题答案
更新时间:2024-06-29 21:22:01 阅读量: 综合文库 文档下载
A 装箱问题模拟(20)
源码:
#include
char box[1010];
int main() {
memset(box,100,sizeof(box)); int N; int t;
int num=0; cin>>N;
int temp = N; while(temp--) {
cin>>t;
for (int i=0;i int a = box[i]; if (a>=t) { if (a==100) num++; box[i] -=t; cout< cout< //system(\ return 0; } B 表达式转换(25) 源码: #include stack int main() { string s; string anwser; cin>>s; int i; bool number = false; bool firstFlag = true; string snum = \ for(i = 0; i < s.length(); ++i) { if(s[i] >= '0' && s[i] <= '9' || s[i] == '.') { number = true; snum += s[i]; } else if(number == true) { number = false; if(firstFlag) firstFlag = false; else anwser += \ if(snum[0] == '+') snum.erase(snum.begin()); anwser += snum; snum = \ } if(s[i] == '+' || s[i] == '-') { if(i == 0 || s[i-1] == '+' || s[i-1] == '-' || s[i-1] == '*' || s[i-1] == '/' || s[i-1] == '(' ) snum += s[i]; else { while(sta.size() && sta.top() != '(') { int t = sta.top(); if(firstFlag) firstFlag = false; else anwser += \ anwser += t; sta.pop(); } sta.push(s[i]); } } else if(s[i] == '*' || s[i] == '/') { while(sta.size() && sta.top() != '(') { int t = sta.top(); if(t == '-' || t == '+') break; if(firstFlag) firstFlag = false; else anwser += \ anwser += sta.top(); sta.pop(); } sta.push(s[i]); } else if(s[i] == ')') { while(sta.size() && sta.top() != '(') { if(firstFlag) firstFlag = false; else anwser += \ anwser += sta.top(); sta.pop(); } if(sta.size()) sta.pop(); } else if(s[i] == '(') sta.push(s[i]); } if(snum != \ { if(firstFlag) firstFlag = false; else anwser += \ anwser += snum; } while(sta.size()) { if(firstFlag) firstFlag = false; else anwser += \ anwser += sta.top(); sta.pop(); } cout< C 家谱处理(30) 源码: #include struct Person { string name; int level; }; int main() { // freopen(\ ios_base::sync_with_stdio(0); // cin.tie(0); vector if(cin.get()!='\\n') cin.unget(); int s_cnt=0; while(cin.get()==' ') ++s_cnt; cin.unget(); Person pe_tmp; pe_tmp.level=s_cnt; cin>>pe_tmp.name; family_tree.push_back(pe_tmp); } // for(vector it=family_tree.begin();it!=family_tree.end();++it) // { // cout< string name_a,name_b,relation; while(m--) { cin>>name_a; int count=6; while(count--) cin.get(); char ch; cin.get(ch); if(ch=='c'||ch=='e') { relation=\ } else if(ch=='s') relation=\ else { relation=\ } cin.ignore(256,'f'); cin>>name_b; if(ch=='e'||ch=='d') { name_a.swap(name_b);//or swap(name_a,name_b) in ,but former is better. } // cout< if(relation==\ { vector if(it->name==name_b) break; } int level_tmp=it->level; if(it!=family_tree.end()) ++it; bool flag=1; while(it!=family_tree.end()&&it->level>level_tmp) { if(it->name==name_a&&it->level==level_tmp+2) { cout<<\ flag=0; break; } ++it; } if(flag) cout<<\ } else if(relation==\ { vector if(it->name==name_a) break; } int level_tmp=it->level; if(it!=family_tree.end()) ++it; bool flag=1; while(it!=family_tree.end()&&it->level>level_tmp) { if(it->name==name_b) { cout<<\ flag=0; break; } ++it; } if(flag) cout<<\ } else { vector if(it->name==name_a) break; } int level_tmp=it->level; vector while(it!=family_tree.end()&&it->level>=level_tmp) { if(it->name==name_b&&it->level==level_tmp) { cout<<\ flag=0; break; } ++it; } if(flag) { if(it_tmp!=family_tree.begin()) --it_tmp; while(it_tmp!=family_tree.begin()&&it_tmp->level>=level_tmp) { if(it_tmp->name==name_b&&it_tmp->level==level_tmp) { cout<<\ flag=0; break; } --it_tmp; } } if(flag) cout<<\ } } } D 航空公司VIP客户查询(25) 源码: #include #include #include #include #include #include #include using namespace std; typedef long int lld;//long int #define rot(v) (((v)>>3)|(((v)&7)<<9)) const int MAX=110000; const int MOD=100003; const int INF=1000000000; struct Node { int a,b; char x; int mile,next; }node[MAX]; int head[MOD],E; char buf[22]; int chg(char x) { if(x=='x')return 10; return x-'0'; } int fun(char s[],int &a,int &b,char &x) { int ret=0,i; int tmp; a=b=0; for(i=0;i<9;i++) { tmp=s[i]-'0'; a=a*10+tmp;//记录没取余数的数值 ret=ret*10+tmp; } ret%=MOD; for(;i<17;i++) { tmp=s[i]-'0'; b=b*10+tmp;//记录后面没取余数的数值 ret=(ret*10+tmp)%MOD; } x=s[i];//记录最后一位 return (ret*100+chg(s[i]))%MOD;//返回取余数的数值 } void ins(char s[],int mile) { int a,b; char x; int h=fun(s,a,b,x); int i; //发生冲突时的处理 for(i=head[h];i!=-1;i=node[i].next)//head 全局变量 { if(node[i].x==x&&node[i].a==a&&node[i].b==b) { node[i].mile+=mile; return ; } } node[E].a=a; node[E].b=b; node[E].x=x; node[E].mile=mile; node[E].next=head[h]; head[h]=E++; } int query(char s[]) { int a,b; char x; int h=fun(s,a,b,x); int i; for(i=head[h];i!=-1;i=node[i].next) { if(node[i].x==x&&node[i].a==a&&node[i].b==b)return node[i].mile; } return -1; } void out(int n) { if(n) { out(n/10); putchar('0'+n); } } int main() { int n,m; int k,i; while(scanf(\ { memset(head,-1,sizeof(head)); E=0; int mile=0; while(n--) { scanf(\ if(mile ins(buf,mile); } scanf(\ getchar(); while(m--) { //scanf(\ gets(buf); mile=query(buf); if(mile==-1)puts(\ else { out(mile); // cout< // printf(\ putchar('\\n'); } } } return 0; } E 社交网络图中结点的“重要性”计算(30) #include #include using namespace std; const int N=10005; int n,m,dis[N]; bool used[N]; deque void think(int src) { fill(used,used+N,false); fill(dis,dis+N,0); queue while(!Q.empty()) { int k=Q.front(); Q.pop(); for(int i=0,_i=ed[k].size();i<_i;++i) { int tmp=ed[k][i]; if(!used[tmp]) { dis[tmp]=dis[k]+1; used[tmp]=true; Q.push(tmp); } } } printf(\ int sum=0,flag=1; for(int i=1;i<=n;++i) { if(!dis[i]&&i!=src) {flag=0;break;} sum+=dis[i]; } printf(\} int main() { scanf(\ while(m--) { int a,b; scanf(\ ed[a].push_back(b); ed[b].push_back(a); } scanf(\ while(m--) { int k; scanf(\ think(k); } return 0; } F 奥运排行榜(25) 源码: #include int gold[225],medal[225],population[225]; int list[10]; int fir = 0;//用来判断是否是第一个元素用的 void printresult(int check_number,int n); int main() { int n,m; scanf(\for(int i = 0;i < n;i++) scanf(\for(int i = 0;i < m;i++) { int check_number; scanf(\printresult(check_number,n); } printf(\return 0; } void printresult(int check_number,int n) { for(int i = 0;i < n;i++) { if(gold[i]>gold[check_number]) list[1]++; } int result = ++list[1];//这里还要多加一个1,因为数组原来是0 int num = 1; for(int i = 0;i < n;i++) { if(medal[i]>medal[check_number]) list[2]++; } list[2]++; double gold_per = gold[check_number]*1.0/population[check_number]; for(int i = 0;i < n;i++) { if((gold[i]*1.0/population[i])>gold_per) list[3]++; } list[3]++; double medal_per = medal[check_number]*1.0/population[check_number]; for(int i = 0;i < n;i++) { if(medal[i]*1.0/population[i]>medal_per) list[4]++; } list[4]++; for(int i = 1;i < 5;i++) { if(list[i] result = list[i]; num = i; } } for(int i = 1;i < 5;i++) list[i] = 0;//对排名数组清零,因为之后要多次调用 if(!fir) { printf(\首个输入前面不用空格 fir = 1; } else printf(\}
正在阅读:
数据结构与算法实验题答案06-29
930机组使用说明书108-25
我是个好孩子作文500字06-22
2017年高考地理一轮复习 第七章 生产活动与地域联系06-16
外研版七年级下册英语课文翻译02-21
初一高一参加课外辅导的必要性03-09
西安市城市管理综合行政执法局职能配置内设机构和人员编制规定08-18
北京工业大学第八届学位评定委员会第十一次会议公告 - 图文04-23
因为痛我学会了坚强作文800字07-17
水彩绘画技法12-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据结构
- 算法
- 答案
- 实验
- 山东大学自考项目风险管理
- 2014重庆市事业单位考试《管理基础知识》真题
- 甘溪(得圳)改造设计收资清单(汇总)
- 《暖通空调》思考与习题2011(1-7)
- 风险防控动员讲话
- 高中数学人教B版选修2-1学案:3.1.2空间向量的基本定理
- 中国石化企业标准《水务管理技术要求 第2部分:循环水》
- 专利权的扩张及其缘由探析
- 会计师事务所审计方案
- 萧山十一中2013级高一新生报到指南
- 赞美诗歌歌词解读 - 第2首、三一来临
- 数学建模的多种作战模型
- 2016能源与环境学院复试成绩 - 图文
- 内部审计发展史
- 人教版语文五年级上册期末重点知识点详细复习资料
- 旅游者维权的相关法律法规目录及相关服务标准目录
- 教务管理系统课程设计报告
- 十三五规划小学5年计划2篇
- 幼儿卫生保健
- 2013新人教版七年级英语下册期中复习经典作文练习