目前无法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. salesforce零基础学习(一百二十三)Transaction Security 浅入浅出

    本篇参考: https://help.salesforce.com/s/articleView?id=sf.enhanced_transaction_security_policy_types.htm ...

  2. 源码解读之TypeScript类型覆盖检测工具type-coverage

    因为团队内部开启了一个持续的前端代码质量改进计划,其中一个专项就是TS类型覆盖率,期间用到了type-coverage这个仓库,所以借这篇文章分享一下这个工具,并顺便从源码阅读的角度来分析一下该工具的 ...

  3. excel甘特图制作

    1.插入图表   1 1.选中数据区域(3列,如图所示)--点击插入--推荐的图表--堆积条形图 END 2.甘特图制作   1 2.点击图表工具--设计--选择数据. 轴标签区域改为--确定项目.. ...

  4. 运维、监控、AIOps的几个重要观点

    监控是整个运维乃至整个产品生命周期中最重要的一环,通过配置合理的告警机制,采集准确的监控指标,来提前或者尽早发现问题,解决问题,进而保证产品的稳定,提升用户的体验.『分布式实验室』特约记者艾尔斯兰(下 ...

  5. 连接MySql时提示%d format: a number is required, not str

    代码: sql = "select * from appelementinfo" coon = pymysql.connect(user='root', password='', ...

  6. 使用命令行运行用例时提示python.exe: Error while finding module specification for 'testcase_1.Test'.....

    文件路径 输入命令 D:\demo>python -m unittest unittest_1/testcase_1.Test结果提示 ModuleNotFoundError: No modul ...

  7. AWVS漏洞扫描器的使用

    前言 AWVS是一款强大的web漏洞扫描工具,扫描速度快,可针对特定的漏洞进行扫描测试,用于在按全人员对指定企业进行安全扫描以及测试人员对web应用检测漏洞. AWVS使用以及功能介绍 这里介绍的是使 ...

  8. 【转载】EXCEL VBA 选取非连续的单元格区域——Areas集合

    出处:http://www.360doc.com/content/21/1113/17/77710807_1004011085.shtml 前面我们讲的大多是**并操作单个的单元格,或者是连续的单元格 ...

  9. 启动springboot项目报错Unable to start embedded Tomcat

    1.问题描述 最近在学习springcloud的时候,在父工程下新建一个model后,引入dashboard相关依赖后启动报错 2.产生原因 产生原因有可能就是pom.xml中下载的jar包版本冲突 ...

  10. 使用java代码调用rabbitmq接口进行新增编辑mq用户、虚拟机vhost、动态创建交换机exchange、队列queue以及设置权限,绑定vhost与exchange等操作

    使用java代码操作rabbitmq时,首先需要一个有创建用户等权限的管理员账号,需要在rabbitmq的后台管理页面手动创建这个账号,系统推荐的这几个tag可以让账号有rabbitmq后台管理页面的 ...