uva101 The Blocks Problem

简介: uva101 The Blocks Problem
#include <stdio.h>#include <stdlib.h>#include <string.h>#define LOCAL#define MAXN 30typedefstructnode{
intdata;
structnode*pre, *next;
}*Node;
Nodelink[MAXN] ;
intn;
voidinit();
Nodesearch(intdata, int*pos);
voidfreespace();
intmain()
{
charstr1[5], str2[5];
intsrc, dst;
Nodea, b, p, q;
intflag;
inti;
intpos1, pos2;
#ifdef LOCALfreopen("c://uva_in.txt", "r", stdin);
#endifscanf("%d", &n);
init();
while (scanf("%s", str1) && (strcmp(str1, "quit") !=0))
    {
scanf("%d%s%d", &src, str2, &dst);
a=search(src, &pos1);
b=search(dst, &pos2);
if (strcmp(str1, "move") ==0&&strcmp(str2, "onto") ==0)
flag=1;
elseif (strcmp(str1, "move") ==0&&strcmp(str2, "over") ==0)
flag=2;
elseif (strcmp(str1, "pile") ==0&&strcmp(str2, "onto") ==0)
flag=3;
elseif (strcmp(str1, "pile") ==0&&strcmp(str2, "over") ==0)
flag=4;
if (flag==1&&pos1!=pos2)
        {
p=a->next;
a->next=NULL;
while (p)
            {
q=p->next;
p->next=NULL;
p->pre=link[p->data ];
link[p->data ]->next=p;
p=q;
            }
p=b->next;
b->next=NULL;
while (p)
            {
q=p->next;
p->next=NULL;
p->pre=link[p->data];
link[p->data]->next=p;
p=q;
            }
a->pre->next=NULL;
a->pre=b;
b->next=a;
        } elseif (flag==2&&pos1!=pos2)
        {
p=a->next;
a->next=NULL;
while (p)
            {
q=p->next;
p->next=NULL;
p->pre=link[p->data];
link[p->data]->next=p;
p=q;
            }
while (b->next)
b=b->next;
a->pre->next=NULL;
a->pre=b;
b->next=a;
        } elseif (flag==3&&pos1!=pos2)
        {
p=b->next;
b->next=NULL;
while (p)
            {
q=p->next;
p->next=NULL;
p->pre=link[p->data];
link[p->data]->next=p;
p=q;
            }
a->pre->next=NULL;
a->pre=b;
b->next=a;
        } elseif (flag==4&&pos1!=pos2)
        {
while (b->next)
b=b->next;
a->pre->next=NULL;
a->pre=b;
b->next=a;
        }
    }
for (i=0; i<n; i++)
    {
p=link[i]->next;
printf("%d:", i);
while (p)
        {
printf(" %d", p->data);
p=p->next;
        }
printf("/n");
    }
return0;
}
voidinit()
{
inti;
Nodep;
for (i=0; i<n; i++)
    {
p= (Node)malloc(sizeof(structnode));
p->data=i;
p->next=NULL;
link[i] = (Node)malloc(sizeof(structnode));
link[i]->next=p;
p->pre=link[i];
    }
}
Nodesearch(intdata, int*pos)
{
inti;
Nodep;
for (i=0; i<n; i++)
    {
p=link[i]->next;
while(p)
        {
if (p->data==data)
            {
*pos=i;
returnp;
            }
p=p->next;
        }
    }
returnNULL;
}
voidfreespace()
{
inti;
Nodep, q;
for (i=0; i<n; i++)
    {
p=link[i]->next;
while(p)
        {
q=p->next;
free(p);
        }
free(link[i]);
    }
}
目录
相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch CIFAR10图像分类 Swin Transformer篇(一)
Pytorch CIFAR10图像分类 Swin Transformer篇(一)
|
机器学习/深度学习 数据可视化 算法
Pytorch CIFAR10图像分类 Swin Transformer篇(二)
Pytorch CIFAR10图像分类 Swin Transformer篇(二)
|
计算机视觉 开发者 Python
OpenCV合并图像中加权和与覆盖的讲解与实战(附Python源码)
OpenCV合并图像中加权和与覆盖的讲解与实战(附Python源码)
545 0
|
10月前
|
机器学习/深度学习 算法 PyTorch
PyTorch 实现MobileNetV1用于图像分类
本实验基于PyTorch和昇腾平台,详细讲解了如何使用MobileNetV1模型对CIFAR10数据集进行图像分类。内容涵盖MobileNetV1的特点、网络架构剖析(尤其是深度可分离卷积)、代码实现及训练过程。通过该实验,读者可以掌握轻量级CNN模型在移动端或嵌入式设备中的应用,并了解其在资源受限环境下的高效表现。实验包括数据预处理、模型训练与测试等环节,帮助用户快速上手并优化模型性能。
340 53
|
9月前
|
机器学习/深度学习 算法 安全
用PyTorch从零构建 DeepSeek R1:模型架构和分步训练详解
本文详细介绍了DeepSeek R1模型的构建过程,涵盖从基础模型选型到多阶段训练流程,再到关键技术如强化学习、拒绝采样和知识蒸馏的应用。
982 3
用PyTorch从零构建 DeepSeek R1:模型架构和分步训练详解
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
239 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
人工智能 API 知识图谱
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
本文介绍了使用不同模型和平台体验GraphRAG的过程。首先通过OpenAI的GPT-4O Mini模型对沈从文的《边城》进行了分析,展示了如何安装GraphRAG并配置参数,最终实现了对文本的有效查询。随后,文章探讨了在国内环境下使用SiliconCloud作为替代方案的可能性,以《三国演义》为例,演示了使用SiliconCloud模型进行相同操作的步骤。此外,还讨论了使用本地模型如Ollama和LM Studio的可能性,尽管受限于硬件条件未能实际运行。最后,提出了混合使用在线对话模型API与本地或在线嵌入模型的方法,并列举了一些能够使GraphRAG流程跑通的大模型。
533 10
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
|
移动开发 JavaScript 数据可视化
|
监控 Java API
使用Java检测当前CPU负载状态的技术博客
使用Java检测当前CPU负载状态的技术博客
385 0
|
运维 数据可视化 Python
PYTHON中用PROPHET模型对天气时间序列进行预测与异常检测
PYTHON中用PROPHET模型对天气时间序列进行预测与异常检测