poj 1250 解题(链表法)

http://poj.org/problem?id=1250

题意大意

住宿床位有限,按顺序入住,用ABC等代表单个人,第1次出现代表入住,第2次出现代表离开

输入:
1 ABCBCA 
代表有1个床位,
A入住,
B入住,入住失败
C入住,入住失败
B离开,共1人离开(未住店)
C离开,共2人离开(未住店)
A离开

计算有几个人来了没床位离开了

思路

用2个链表存储床位上的人,等待队列的人

人如果在上述2个链表中就删除,不在就插入队列

代码

#include <iostream>
using namespace std;
struct node
{char data;node* next;node():data('\0'),next(NULL){}node(char ch):data(ch),next(NULL){}~node(){ }
};
struct list
{node* p_head;size_t listLength;list():p_head(NULL),listLength(0){}~list(){ eraseAll();}void eraseAll(){if(p_head){node *delnode = p_head, *tempnode = p_head;while(tempnode->next != NULL){tempnode = delnode->next;delete delnode;delnode = tempnode;}listLength = 0;}}void push_front(char &ch){node *tempNode = new node(ch);listLength++;tempNode->next = p_head;p_head = tempNode;}node* find(char& ch){node* temp = p_head;if(p_head){while(temp != NULL && temp->data != ch){temp = temp->next;}} else{temp = NULL;}return temp;}void delNode(char &ch){node* tempnode = p_head, *delnode;delnode = find(ch);if(delnode && delnode != p_head){while(tempnode->next != delnode){tempnode = tempnode->next;}tempnode->next = delnode->next;delete delnode;listLength--;}else{if(delnode == p_head && delnode){p_head = delnode->next;delete delnode;listLength--;}}}
};int main()
{list beds,waitlist; //床位队列,等待队列node *tempnode = NULL;size_t numsofbed, walkedaway = 0;char ch;while(cin >> numsofbed && numsofbed)    //输入床位数,且不为0{cin.get();  //拿掉空格while(cin.get(ch) && ch != '\n')    //输入每个人{tempnode = beds.find(ch);   //去床位队列查找人if(tempnode)    //找到了这个人,床位上这个人离店{beds.delNode(ch);}else    //没有在床位上找到该人,则该人需要住店{if(beds.listLength < numsofbed) //床位有空余{beds.push_front(ch);    //这个人住下}else    //床位满了{if(waitlist.find(ch))   //这个人已经在等待队列里{waitlist.delNode(ch);   //等不了了,离开等待队列walkedaway++;}else    //这个人不在等待队列里,可以等待{waitlist.push_front(ch);}}}}if(walkedaway == 0){cout << "All customers tanned successfully." << endl;}else{cout << walkedaway << " customer(s) walked away." << endl;}beds.eraseAll();waitlist.eraseAll();walkedaway = 0;numsofbed = 0;}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样高效阅读一份深度学习项目代码?

犹豫很久要不要把读代码这个事情专门挑出来写成一篇推文。毕竟读代码嘛&#xff0c;大家可能都会读。而且笔者个人读的和写的代码量也并不足以到指导大家读代码的程度。但笔者还是决定大胆地写一点&#xff1a;就当是给自己设立今后读代码的标准&#xff0c;也将一些之前未能践…

令人拍案叫绝的Wasserstein GAN

本文后续&#xff1a;Wasserstein GAN最新进展&#xff1a;从weight clipping到gradient penalty&#xff0c;更加先进的Lipschitz限制手法 在GAN的相关研究如火如荼甚至可以说是泛滥的今天&#xff0c;一篇新鲜出炉的arXiv论文《Wasserstein GAN》却在Reddit的Machine Learnin…

java架构师进阶之独孤九剑:数据结构以及书籍推荐

这是整个java架构师连载系列&#xff0c;分为9大步骤&#xff0c;我们现在还在第一个步骤&#xff1a;程序设计和开发->数据结构与算法。 “ 如果说 Java 是自动档轿车&#xff0c;C 就是手动档吉普。数据结构呢&#xff1f;是变速箱的工作原理&#xff0c; 你完全可以不…

中文文本蕴含计算项目(88万中文文本蕴含数据集+中文文本蕴含模型)

ChineseTextualInference ChineseTextualInference project including chinese corpus build and inferecence model, 中文文本推断项目,包括88万文本蕴含中文文本蕴含数据集的翻译与构建,基于深度学习的文本蕴含判定模型构建. 项目地址:https://github.com/liuhuanyong/Chine…

论文浅尝 | 打通推荐系统与知识图谱: 第一个公开的大规模链接数据集合

本文转载自&#xff1a;RUC智能情报站&#xff0c;知乎专栏链接&#xff1a;https://zhuanlan.zhihu.com/RucAIBox前言&#xff1a;近年来&#xff0c;知识图谱&#xff08;KB&#xff09;被广泛应用于推荐系统&#xff08;RS&#xff09;&#xff0c;但尚未有公开将推荐系统物…

数据结构--链表--判断一个字符串是否为回文串(单向链表,双向链表)

回文串为首尾对称的字符串&#xff1a; 如a&#xff0c;aba&#xff0c;abba等 单链表思路 1.将字符读入链表 2.找到链表中点 3.将链表从中点断开成2条&#xff0c;将后半条反转 4.比较两条链表是否相等&#xff08;比较次数以少的为准&#xff08;长度为奇数时&#xff…

丁香园在语义匹配任务上的探索与实践

前言语义匹配是NLP领域的基础任务之一&#xff0c;直接目标就是判断两句话是否表达了相同或相似意思。其模型框架十分简洁&#xff0c;通常包含文本表示和匹配策略两个模块&#xff0c;因而很容易扩展到相关应用场景&#xff0c;如搜索、推荐、QA系统等。此类模型通常依赖数据驱…

19本高并发编程书籍推荐

Java并发编程实战 &#xff08;java并发的圣经&#xff09; 多处理器编程的艺术 &#xff08;并发编程的各种算法&#xff0c;java实现&#xff0c;有点难度&#xff09; 并发的艺术 &#xff08;多核处理器的共享内存模型中的各种算法&#xff09; Java虚拟机并发编程 &#x…

Wasserstein metric的通俗解释

Wasserstein metric的通俗解释​关注他166 人赞同了该文章本文收录在无痛的机器学习第二季目录。Wasserstein GAN可以算是GAN界的一大突破了&#xff0c;有关它的介绍和使用心得的文章也已经满天飞了&#xff0c;感兴趣的童鞋随便一搜就能好多&#xff0c;今天就不说太多大家说…

肖仰华 | 领域知识图谱落地实践中的问题与对策

本文转载自公众号&#xff1a;知识工场。肖仰华教授2万字长文为您深度剖析领域知识图谱&#xff0c;对领域知识图谱技术与落地应用中的一系列关键问题做了系统的梳理与解答。肖仰华博士&#xff0c;复旦大学计算机科学与技术学院教授&#xff0c;博士生导师&#xff0c;知识工场…

数据结构--链表--约瑟夫环问题(单向循环链表)

问题&#xff1a;一群人站成一个圆圈&#xff0c;从一个人开始报数&#xff0c;1&#xff0c; 2 &#xff0c;。。。m&#xff0c;报到m的拉出去砍了&#xff0c;求被砍的顺序和最后一个活下来的。 利用单向循环链表实现 C代码如下&#xff1a;&#xff08;参考书籍&#xff…

献给新一代人工智能后浪——《后丹》

一只小狐狸带你解锁炼丹术&NLP秘籍视频来源&#xff1a;AIZOO《后丹》那些口口声声&#xff0c;掉包调参侠的人&#xff0c;应该看着你们像我一样&#xff0c;我看着你们&#xff0c;满怀羡慕。人类积攒了几十年的科技&#xff0c;所有的模型、数据、框架和显卡&#xff0c…

神经网络算法学习---mini-batch++++mini-batch和batch的区别

Batch_Size&#xff08;批尺寸&#xff09;是机器学习中一个重要参数&#xff0c;涉及诸多矛盾&#xff0c;下面逐一展开。 首先&#xff0c;为什么需要有 Batch_Size 这个参数&#xff1f; Batch 的选择&#xff0c;首先决定的是下降的方向。如果数据集比较小&#xff0c;完全…

进阶阿里架构师:算法、编程语言、数据库、架构设计!书单推荐!

阿里架构师必读书单 数据结构与算法&#xff1a;算法、算法导论等。 编程语言&#xff1a;java编程思想、java核心技术等 模式与设计&#xff1a;设计模式、代码重构、深入理解java虚拟机 数据库&#xff1a;mysql优化、oracle、redis实战、mongodb权威指南等。 架构设计&a…

刘知远 | 语义表示学习

本文转载自公众号&#xff1a;人工智能图灵。刘知远&#xff0c;清华大学计算机系副教授、博士生导师。主要研究方向为表示学习、知识图谱和社会计算。2011年获得清华大学博士学位&#xff0c;已在ACL、IJCAI、AAAI等人工智能领域的著名国际期刊和会议发表相关论文60余篇&#…

数据结构--链表--LRU缓存

LRU&#xff08;Least Recently Used&#xff09;缓存策略&#xff1a; 通俗的讲就是&#xff0c;最近使用的放在最前面&#xff0c;不经常使用的放后面&#xff0c;满了就删除 C代码实现 //用单链表实现LRU策略 2019.3.17 #include <iostream> #include <string…

透过现象看机器学习:奥卡姆剃刀,没有免费的午餐,丑小鸭定理等

一只小狐狸带你解锁炼丹术&NLP 秘籍本文对PAC学习理论、没有免费的午餐定理、丑小鸭定理、奥卡姆剃刀原理等机器学习中有名的理论或定理进行了详细的梳理。在机器学习中&#xff0c;有一些非常有名的理论或定理&#xff0c;这些理论不仅有助于我们从本质理解机器学习特性&a…

NAACL 2019最佳论文:量子概率驱动的神经网络

今天要介绍的文章与当前大火的 BERT 同获最佳论文&#xff0c;摘得 NAACL 2019 最佳可解释NLP论文&#xff08;Best Explainable NLP Paper&#xff09;。NAACL 与 ACL 和 EMNLP 并称之为 NLP 三大顶会&#xff0c;去年 ELMO 获得 outstanding paper&#xff0c;今年一共有五篇…

互联网优秀架构师必读书单V2.0

一篇文章搞懂高级程序员、架构师、技术经理、技术总监、CTO&#xff0c;从薪资到技能要领的区别&#xff0c;我提到了架构师的准确定义和所需工作年限&#xff0c;以及最重要的架构师的职责等。 从程序员进阶到架构师&#xff0c;6大核心技能详解&#xff0c;提到了从程序员进…

领域应用 | NLP 和知识图谱:金融科技领域的“双子星”

本文转载自公众号&#xff1a;恒生技术之眼。自然语言处理&#xff08;Natural Language Processing, NLP&#xff0c;语义计算&#xff09;和知识图谱&#xff08;Knowledge Graph, KG&#xff0c;知识计算&#xff09;作为认知智能的关键技术&#xff0c;正成为智能金融浪潮中…