浙大PAT甲级 1097
来源:互联网 发布:java生成log日志文件 编辑:程序博客网 时间:2024/04/30 16:18
简单的链表处理,用两个vector来进行存储保留的和删除的结点。
AC代码:
#include<iostream>#include<map>#include<cstdio>#include<algorithm>#include<queue>#include<cstring>#include<set>#include<stack>#include<cmath>#include<vector>#include<hash_map>#define ll long long#define inf 24*60*60using namespace std;struct node{ int id; int data; int next;};map<int,node> mm;set<int> s;vector<node> v;vector<node> v1;int main(){ int sta,n; scanf("%d %d",&sta,&n); for(int i=0;i<n;i++) { node tmp; scanf("%d %d %d",&tmp.id,&tmp.data,&tmp.next); mm[tmp.id]=tmp; } int d=sta; while(d!=-1) { int num=abs(mm[d].data); if(s.find(num)==s.end()) { v.push_back(mm[d]); s.insert(num); } else { v1.push_back(mm[d]); } d=mm[d].next; } int i=0; for(;i+1<v.size();i++) { printf("%05d %d %05d\n",v[i].id,v[i].data,v[i+1].id); } if(!v.empty()) { printf("%05d %d -1\n",v[i].id,v[i].data); } int j=0; for(;j+1<v1.size();j++) // 不知道为什么写成for(;j<v1.size()-1;j++)则在第三个测试用例报段错误 { printf("%05d %d %05d\n",v1[j].id,v1[j].data,v1[j+1].id); } if(!v1.empty()) { printf("%05d %d -1\n",v1[j].id,v1[j].data); }}
0 0
- 浙大PAT甲级 1097
- 浙大pat甲级 1023
- 浙大pat甲级 1024
- 浙大pat甲级 1025
- 浙大PAT甲级 1026
- 浙大PAT甲级 1028
- 浙大PAT甲级 1029
- 浙大PAT甲级 1030
- 浙大PAT甲级 1031
- 浙大PAT甲级 1032
- 浙大PAT甲级 1033
- 浙大PAT甲级 1035
- 浙大PAT甲级 1037
- 浙大PAT甲级 1039
- 浙大PAT甲级 1040
- 浙大PAT甲级 1038
- 浙大PAT甲级 1041
- 浙大PAT甲级 1042
- POJ2559 最大矩形面积
- java 实现ajax发送http请求,直接访问服务器
- thinkphp5.0流程
- eclipse svn 报错 文件夹已经不存在
- ORACLE 查询所有表,某个表的字段和所有表的字段和注释
- 浙大PAT甲级 1097
- C++ 最简真分数(九度OJ 1465)
- 贝叶斯滤波
- 从招式与内功谈起——设计模式概述(二)
- springboot+cxf 发布服务接口简单例子
- linux学习笔记之特殊设备loop挂载
- 从招式与内功谈起——设计模式概述(三)
- Appium 元素定位
- Gradle中文文档