pat 乙级 1025 反转链表
目前无法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 反转链表的更多相关文章
- PAT乙级 1025. 反转链表 (25)
1025. 反转链表 (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个常数K以及一个单链表L,请 ...
- PAT乙级真题及训练题 1025. 反转链表 (25)
PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...
- PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
PAT (Basic Level) Practise (中文)-1025. 反转链表 (25) http://www.patest.cn/contests/pat-b-practise/1025 ...
- 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, ...
- 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→ ...
- PAT-乙级-1025. 反转链表 (25)
1025. 反转链表 (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个常数K以及一个单链表L,请 ...
- 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,则输出应该 ...
- PAT乙级1025
题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805296180871168 题解 第一遍没有全部AC,最后1个 ...
- 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,即最后 ...
- PAT 1025 反转链表
PAT (Basic Level) Practise 1025 Github链接:https://github.com/H-BING/object-oriented/tree/master/PAT10 ...
随机推荐
- 你的项目使用Optional了吗?
1.基本概念 java.util.Optional<T>类本质上就是一个容器,该容器的数值可以是空代表一个值不存在,也可以是非空代表一个值存在. 2.获取对象 2.1 相关方法 2.2 案 ...
- java中的instanceof方法
本文主要讲述java中的instanceof()方法. 示例代码如下: public class InstanceTest { public static void main(String[] arg ...
- Jmeter 之在linux中监控Memory、CPU、I/O资源等操作方法
在做性能测试时,单纯的只看响应时间.错误率.中间值远远不够的,有时需要监控服务cpu.内存等指标来判断影响性能的瓶颈在哪. 操作步骤: 一.Linux下配置jmeter环境 1.在linux环境下安装 ...
- [常用工具] Python视频解码库DeFFcode使用指北
DeFFcode是一种跨平台的高性能视频帧解码器,通过内部封装ffmpeg,提供GPU解码支持,几行python代码就能够快速解码视频帧,并具有强大的错误处理能力.DeFFcode的APIs支持多种媒 ...
- Vue 修改对象(数组)没有立即生效
在写项目时遇到了给数组赋值后,出现赋值延时的问题,解决办法如下 // Vue 不能检测以下变动的数组: // 当你利用索引直接设置一个项时,例如: vm.items[indexOfItem] = ne ...
- P8474 「GLR-R3」立春
简要题意 \(\tau(\sigma)\) 表示排列 \(\sigma\) 的逆序对个数,求: \[\sum_{i \in \operatorname{permutation(n)}}2^{\tau( ...
- Z-Blog后台getshell
Z-Blog后台getshell 本人所有文章均为技术分享,均用于防御为目的的记录,所有操作均在实验环境下进行,请勿用于其他用途,否则后果自负. 0x00 环境部署 文件下载地址 打开phpstudy ...
- .NET 入门到高级路线
.NET 入门到高级路线 [c# 基础语法](# CSharp基础语法) [.NET Core 基础知识](# .NET Core 基础知识) [ASP.NET Core 基础知识概述](# ASP. ...
- 默认方法:and-默认方法:or
默认方法:and 既然是条件判断,就会存在与.或.非三种常见的逻辑关系.其中将两个Predicate条件使用"与"逻辑连接起来实现"并且"的效果时,可以使用de ...
- Unity之GPS定位(高德解析)
Unity之GPS定位 Unity之GPS定位(高德解析) 前言 开篇 Unity版本及使用插件 正题 创建场景 写脚本 把脚本挂载到场景中 打包发布场景 安装真机并且测试 代码中的==Key==怎么 ...