当前位置:网站首页>PAT1165 Block Reversing(25)
PAT1165 Block Reversing(25)
2022-08-01 12:51:00 【此杭非彼航】
题目
代码
#include<bits/stdc++.h>
using namespace std;
struct Node{
int addr,val,next,index,init_pos;
};
unordered_map<int,Node> li;
vector<Node> vec;
bool cmp(Node x,Node y){
if(x.index!=y.index) return x.index>y.index;
else return x.init_pos<y.init_pos;
}
int main()
{
int root,n,k;
cin>>root>>n>>k;
for(int i=0;i<n;++i){
int x,y,z;
cin>>x>>y>>z;
li[x]={
x,y,z};
}
int pos=1,cnt=0;
while(root!=-1){
cnt++;
li[root].index=pos;
li[root].init_pos=cnt;
if(cnt==k){
cnt=0;
pos++;
}
vec.push_back(li[root]);
root=li[root].next;
}
sort(vec.begin(),vec.end(),cmp);
// printf("------\n");
for(int i=0;i<vec.size();++i){
printf("%05d %d ",vec[i].addr,vec[i].val);
if(i==vec.size()-1) printf("-1");
else printf("%05d\n",vec[i+1].addr);
}
}
思路
给block标序号(index),同一个block内的结点按原始顺序标号(init_pos),然后按照index从大到小排序,同一个block按init_pos从小到大排序
注意
虽然例题中所有的结点都是可用的,但测试点所给的数据是有可能存在脏数据的,因为在输出时不能下意识地按n输出,而是要按vec内实际的数量输出(vec.size())。
但谁能想到,我一开始改了for循环的n,却忘了改if判断里的n,一直是if(i==n-1),直接导致我最后一个测试点一直无法通过,好笨
边栏推荐
- VIP的实现原理
- [Cloud Enjoying Freshness] Community Weekly Vol.73- DTSE Tech Talk: 1 hour in-depth interpretation of SaaS application system design
- How do we do full-link grayscale on the database?
- tensorflow2.0 handwritten digit recognition (tensorflow handwriting recognition)
- Service Mesher Meetup 成都站:Service Mesh是下一代SDN吗?
- 【2022蓝帽杯】file_session && 浅入opcode
- 动态库、静态库浅析
- 如何设计一个分布式 ID 发号器?
- 高仿项目协作工具【Worktile】,从零带你一步步实现组织架构、网盘、消息、项目、审批等功能
- kubernetes之DaemonSet以及滚动更新
猜你喜欢
随机推荐
如何使用OpenCV测量图像中物体之间的距离
软件设计师考点汇总(室内设计师个人总结)
SQL函数 STR
.NET性能优化-使用SourceGenerator-Logger记录日志
硬链接、软连接浅析
数据挖掘-03
[Unity3D Plugin] AVPro Video Plugin Share "Video Player Plugin"
JMP Pro 16.0 software installation package download and installation tutorial
Do wildcard SSL certificates not support multiple domains?
Detailed explanation of table join
Beyond Compare 4 试用期到期
SQL函数 SQRT
CCS软件安装教程(超级详细)「建议收藏」
[Cloud Enjoying Freshness] Community Weekly Vol.73- DTSE Tech Talk: 1 hour in-depth interpretation of SaaS application system design
PIR人体感应AC系列感应器投光灯人体感应开关等应用定制方案
全链路灰度在数据库上我们是怎么做的?
态路小课堂丨浅谈优质光模块需要具备的条件!
uniapp读取和写入文件
程序员的自我修养
Service Mesher Meetup 成都站:Service Mesh是下一代SDN吗?