关注
两种方法: 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;
}
查看原帖
点赞 评论
相关推荐
05-11 11:58
中国矿业大学 Java 点赞 评论 收藏
分享
03-28 00:47
惠州学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 得物暑期实习oc1.0W
- 2... 【26届四段大厂】实习爆炸产出方法论 2.01.0W
- 3... 来算一算你的offer究竟到手工资多少!(详细教程)1.0W
- 4... 感觉在字节实习有点幸福了5798
- 5... 暑期实习后,如何完成学生到职场人的身份转换?5644
- 6... 租房是大家出社会的第一课!5578
- 7... 一个双非拿到ssp的秋招总结5044
- 8... 💗 521凉面筋真好吃~记录一把本小女孩人生第一面4899
- 9... 呜呜被今天的面试官给真诚到了~感觉heart暖暖的~~4603
- 10... 广东java学院本的暑期末班车4518
正在热议
更多
# 毕业季,给职场新人一些建议 #
31069次浏览 514人参与
# 国企vs私企,怎么选? #
20512次浏览 168人参与
# 我的求职总结 #
32325次浏览 524人参与
# 辞职之后最想做的一件事 #
12060次浏览 174人参与
# 我的实习日记 #
2452642次浏览 25513人参与
# 选offer应该考虑哪些因素 #
22724次浏览 323人参与
# 小米硬件提前批进度交流 #
165080次浏览 1516人参与
# 怎么防止在试用期被辞退 #
118162次浏览 882人参与
# 为了秋招你都做了哪些准备? #
11286次浏览 169人参与
# 硬件开发岗知多少 #
10380次浏览 111人参与
# 你想吐槽公司的哪些规定 #
18216次浏览 70人参与
# 晒一晒你收到的礼盒 #
63132次浏览 378人参与
# 字节跳动工作体验 #
393769次浏览 4306人参与
# 薪资一样,你会选择去大厂还是小公司 #
16975次浏览 104人参与
# 机械人值得去的国央企 #
59696次浏览 406人参与
# 你见过最离谱的招聘要求是什么? #
188957次浏览 1405人参与
# 我的工作日记 #
100609次浏览 1281人参与
# Offer比较,求稳定还是求发展 #
49833次浏览 241人参与
# 你想留在一线还是回老家? #
38822次浏览 456人参与
# 工作丧失热情的瞬间 #
277781次浏览 2335人参与