关注
两种方法: 1.用递归来反转链表 #include<cstdio>
#define maxn 100010
int n,k;
struct Node{
int data,next;
}node[maxn];
int reverse(int head){
if(node[head].next==-1)return head;
int p=node[head].next,h,t;
h=reverse(p);t=h;
while(node[t].next!=-1)t=node[t].next;
node[t].next=head;
node[head].next=-1;
return h;
}
int main(){
//freopen("A1074.txt","r",stdin);
int head;
scanf("%d%d%d",&head,&n,&k);
while(n--){
int temp;
scanf("%d",&temp);
scanf("%d%d",&node[temp].data,&node[temp].next);
}
int p=head,h=-1,t=-1;
while(p!=-1){
p=node[p].next;
n++;
}
n++;
h=head;
while(n>=k){
p=h;
for(int i=1;i<k;i++){
p=node[p].next;
}
h=node[p].next;
node[p].next=-1;
if(t==-1){
head=reverse(head);
p=head;
}
else{
node[t].next=reverse(node[t].next);
p=node[t].next;
}
while(node[p].next!=-1)p=node[p].next;
t=p;
node[t].next=h;
n=n-k;
}
while(head!=-1){
printf("%05d %d ",head,node[head].data);
if(node[head].next==-1)printf("-1");
else printf("%05d\n",node[head].next);
head=node[head].next;
}
return 0;
}
2.用排序来实现 #include<cstdio>
#include<algorithm>
using namespace std;
#define maxn 100010
int n=0,k;
struct Node{
int id,data,next,order=maxn;
}node[maxn];
bool cmp(Node a,Node b){
return a.order<b.order;
}
bool cmp_reverse(Node a,Node b){
return a.order>b.order;
}
int main(){
//freopen("A1074.txt","r",stdin);
int N,head;
scanf("%d%d%d",&head,&N,&k);
while(N--){
int temp;
scanf("%d",&temp);
scanf("%d%d",&node[temp].data,&node[temp].next);
node[temp].id=temp;
}
int p=head;
while(p!=-1){
node[p].order=n+1;
p=node[p].next;
n++;
}
sort(node,node+maxn,cmp);
int r=n,i=0;
while(r>=k){
sort(node+i*k,node+i*k+k,cmp_reverse);
r=r-k;
i++;
}
for(int i=0;i<n;i++){
printf("%05d %d ",node[i].id,node[i].data);
if(i<n-1)printf("%05d\n",node[i+1].id);
else printf("-1");
}
return 0;
}
查看原帖
点赞 评论
相关推荐
纳斯卡可:这算法全是Hard题
查看28道真题和解析 点赞 评论 收藏
分享
03-06 17:55
北方工业大学 人工智能 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招 / 实习投递,你最焦虑的一件事 #
2020次浏览 26人参与
# 27届求职交流 #
17569次浏览 355人参与
# 神州信息求职进展汇总 #
4519次浏览 74人参与
# 今年找实习到底有多难? #
1420次浏览 13人参与
# 26届求职交流 #
8768次浏览 214人参与
# 你感受到金三银四了嘛? #
493次浏览 11人参与
# 工作丧失热情的瞬间 #
366554次浏览 2556人参与
# 快手求职进展汇总 #
737482次浏览 7115人参与
# 三月的小目标 #
28261次浏览 532人参与
# 听劝,这个公司值得去吗 #
678498次浏览 2000人参与
# 交出你的校招焚诀 #
20501次浏览 316人参与
# HR问:你期望的薪资是多少?如何回答 #
79884次浏览 674人参与
# 面试___岗的必刷题单 #
22857次浏览 414人参与
# 哪些公司开暑期实习了? #
37245次浏览 304人参与
# 面试中,你被问过哪些奇葩问题? #
89029次浏览 850人参与
# 实习最晚的一次下班是几点 #
28578次浏览 147人参与
# 国企/银行/研究所公司爆料 #
195021次浏览 900人参与
# 大厂无回复,继续等待还是奔赴小厂 #
330059次浏览 1938人参与
# 小米求职进展汇总 #
1028775次浏览 6518人参与
# 你觉得mentor喜欢什么样的实习生 #
51708次浏览 1008人参与
# 实习想申请秋招offer,能不能argue薪资 #
226698次浏览 1216人参与