pat 乙级 1025 反转链表
2024-10-20 13:29:21
目前无法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;
}
最新文章
- LINUX测试环境部署manggo(六)
- ZOJ3805Machine(二叉树左右子树变换)
- java报表工具FineReport的SQL编辑框的语法简介
- POJ 2492 并查集扩展(判断同性恋问题)
- Java heap dump触发和分析(转)
- return的用处
- SASS组件开发
- 宣布在 Azure 镜像库中正式推出 Windows Server 2012 R2 并降低 Windows Azure 的实例定价
- 【BZOJ2127】happiness(最小割)
- java学习教程与笔记
- java体系架构
- nginx 根据端口不同实现负载均衡
- C#用log4net记录日志
- c# devexpress绘图 三角函数
- 基于Vue、Bootstrap的Tab形式的进度展示
- Python——XPath使用
- JAVA获取系统相关信息
- RF判断列表、字典、整数、字符串类型是否相同方法
- python-股票数据定向爬取
- ics
热门文章
- Blazor 部署 pdf.js 不能正确显示中文资源解决办法
- 搭建漏洞环境及实战——在Windows系统中安装WAMP
- Django(1) - 初识Django框架
- Flink 创始人团队二次收购案!阿里恐成冤大头!
- [LeetCode]对角线遍历
- [WPF]DataContext结果不显示
- 10.关于synchronized的一切,我都写在这里了
- 「HNOI2019」校园旅行
- 反射_Class对象功能_获取Constructor-反射_Class对象功能_获取Method
- SQLSERVER 的四个事务隔离级别到底怎么理解?