关注
两种方法: 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;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
11-11 15:12
南昌大学 材料工程师 一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助
1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写
2. “干部及社团经历”和“自我评价”删掉
3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来
4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
346744次浏览 3361人参与
# 我的实习求职记录 #
6081317次浏览 83642人参与
# 百度开奖 #
196790次浏览 1303人参与
# 地方国企笔面经互助 #
5024次浏览 13人参与
# 职场吐槽大会 #
90035次浏览 742人参与
# 选完offer后,你后悔学本专业吗 #
22767次浏览 164人参与
# 北方华创开奖 #
39950次浏览 440人参与
# ai智能作图 #
1962次浏览 47人参与
# 运营商笔面经互助 #
92256次浏览 1331人参与
# 实习中的菜狗时刻 #
278446次浏览 2736人参与
# 如果有时光机,你最想去到哪个年纪? #
24004次浏览 485人参与
# 风评不好的公司,你会去吗? #
20623次浏览 94人参与
# 国企还是互联网,你怎么选? #
89982次浏览 699人参与
# 软件开发2024笔面经 #
2324871次浏览 48213人参与
# 如何一边实习一边秋招 #
999343次浏览 12694人参与
# 远程面试的尴尬瞬间 #
20270次浏览 293人参与
# 银行笔面经互助 #
84553次浏览 893人参与
# 腾讯求职进展汇总 #
198027次浏览 1650人参与
# 第一份工作应该选择高薪还是大平台 #
88864次浏览 590人参与
# bilibili求职进展汇总 #
33864次浏览 361人参与
# 阿里求职进展汇总 #
70681次浏览 756人参与
# 上班苦还是上学苦呢? #
79928次浏览 761人参与