目前无法ac过最后一个测试点,其余ac,原因是有无效节点存在,但这个代码加上去除无效节点函数时便会运行超时

还没想出来怎么做,先这样吧

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h> typedef struct node
{
char add[6];
int data;
char next[6];
} pnode;
typedef struct head
{
char add[6];
int k;
int m;
} phead;
int main()
{
int i = 0;
int first = 0;
int j = 0;
phead q;
scanf("%s %d %d", &q.add, &q.k, &q.m);
pnode l[q.k];
for (i = 0; i < q.k; i++)
{
scanf("%s %d %s", &l[i].add, &l[i].data, &l[i].next);
}
pnode temp;
// int flag=1;
// int qk=q.k;
// for(i=0;i<q.k-1;i++){ //去除无效节点
// flag=1;
// for(j=i+1;j<q.k;j++){
// if(l[i].add==l[j].next||l[i].next==l[j].add){
// flag=0;break;
// }
// }
// if(flag==1){
// for(int r=i;r<q.k-1;r++){
// strcpy(l[r].add,l[r+1].add);
// l[r].data=l[r+1].data;
// strcpy(l[r].next,l[r+1].add);
// }
// i=i-1;
// qk--;
// }
// }
// q.k=qk;
while (1) // 确定首字节位置
{
if (strcmp(l[first].add, q.add) != 0)
{
first++;
}
else
{
break;
}
}
temp = l[0];
l[0] = l[first];
l[first] = temp;
for (i = 0; i < q.k - 1; i++) // 按123456等排序
{
for (j = i + 1; j < q.k; j++)
{
if (strcmp(l[i].next, l[j].add) == 0)
{
temp = l[j];
l[j] = l[i + 1];
l[i + 1] = temp;
break;
}
}
}
if (q.m == 1)
{
for (i = 0; i < q.k; i++)
{
printf("%s %d %s\n", l[i].add, l[i].data, l[i].next);
} return 0;
}
pnode tail;
strcpy(tail.next, l[q.k - 1].next);
for (j = q.k / q.m; j > 0; j--)
{
for (i = (j) * (q.m) - 1; i > (j - 1) * q.m; i--)
{
strcpy(l[i].next, l[i - 1].add);
}
} int p = 0;
for (j = 0; j < q.k / q.m; j++)
{
p = 0;
for (i = j * q.m; p < q.m / 2; i++)
{ temp = l[i];
l[i] = l[(j + 1) * q.m - p - 1];
l[(j + 1) * q.m - p - 1] = temp;
p++;
}
}
for (i = q.m - 1; i < q.k-1; i = i + q.m)
{
strcpy(l[i].next, l[i + 1].add);
} strcpy(l[q.k - 1].next, tail.next);
for (i = 0; i < q.k; i++)
{
printf("%s %d %s\n", l[i].add, l[i].data, l[i].next);
} return 0;
}

pat 乙级 1025 反转链表的更多相关文章

  1. PAT乙级 1025. 反转链表 (25)

    1025. 反转链表 (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个常数K以及一个单链表L,请 ...

  2. PAT乙级真题及训练题 1025. 反转链表 (25)

    PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...

  3. PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)

    PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)   http://www.patest.cn/contests/pat-b-practise/1025 ...

  4. PAT 1025 反转链表 (25)(STL-map+思路+测试点分析)

    1025 反转链表 (25)(25 分) 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4, ...

  5. PAT (Basic Level) Practice (中文)1025 反转链表 (25分)

    1025 反转链表 (25分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→ ...

  6. PAT-乙级-1025. 反转链表 (25)

    1025. 反转链表 (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个常数K以及一个单链表L,请 ...

  7. PAT (Basic Level) Practice 1025 反转链表 分数 25

    给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...

  8. PAT乙级1025

    题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805296180871168 题解 第一遍没有全部AC,最后1个 ...

  9. PAT 乙级-1025 链表反转

    给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5→6,即最后 ...

  10. PAT 1025 反转链表

    PAT (Basic Level) Practise 1025 Github链接:https://github.com/H-BING/object-oriented/tree/master/PAT10 ...

随机推荐

  1. 1分钟理清楚C++类模板和模板类区别

    1.定义区别 类模板和模板类主要关注点是后一个单词. 类模板:主要描述的是模板,这个模板是类的模板.可以理解为一个通用的类,这个类中的数据成员,成员函数的形参类型以及成员函数的返回值类型不用具体的指定 ...

  2. Jmeter之非GUI下执行脚本

    1.进入jmeter 应用所在路径 eg: cd D:\Program Files\apache-jmeter-5.2\bin 2.输入运行命令:jmeter -n -t [jmx脚本路径] -l [ ...

  3. 如何在 .Net 7 中将 Query 绑定到数组

    在 .Net 7 中,我们可以通过绑定数组的方式来接收来自查询字符串的参数.这样就不需要再使用逗号分隔的字符串来获取参数了. 代码演示 假设我们需要从 query 上接受多个 id 并返回查询的结果. ...

  4. JavaWeb项目编译前后的目录结构

    JavaWeb项目编译前后的目录结构 编译前 页面和视图都放在webapp目录下 编译后 webapps WEB-INF

  5. 对于goland相对较新一些版本新建项目时没用go mod模式选项的坑

    前言 对于一些小白在网上看很早的一些go视频,使用goland2020.3.x版本或者其之前版本创建新项目,里面会有GO Modules(vgo)这个选项,也就是gomod模式创建新项目,然而对于现在 ...

  6. Hive详解(04) - hive函数的使用

    Hive详解(04) - hive函数的使用 系统内置函数 查看系统自带的函数 hive> show functions; 显示自带的函数的用法 hive> desc function u ...

  7. Hadoop详解(03)-Hadoop编译源码-了解

    Hadoop详解(03)-Hadoop编译源码-了解 准备工作 CentOS联网 配置CentOS能连接外网.Linux虚拟机ping www.baidu.com 是畅通的 jar包准备(hadoop ...

  8. JQuery拖拽移动

    /** * zzh_2022032101_拖拽移动 * @param obj 目标对象 / #id / .class * @param moveOut 是否可以移出边界 */ function dra ...

  9. 孤独的照片【USACO 2021 December Contest Bronze】

    孤独的照片 Farmer John 最近购入了 \(N\) 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一. 奶牛目前排成一排,Farmer John 想要为 ...

  10. Less常用功能使用

    Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充.Less 可以运行在 Node 或浏览器端. L ...