解题思路:记住是环形的晾衣杆,直接不用思考,选择循环链表,虽然单链表也可以,但是怕出错,直接模拟每次晾衣服就OK
注意事项:每次记得清除上一组的数据,防止WA(wrong answer)
参考代码:
#include<iostream>//直接循环链表模拟,直接当暴力模拟党 一遍过 using namespace std; struct Node { int NO; //代表第几个夹子 int ocp=0;//占用的情况 struct Node* next;//链表节点指针,指向下一个 }; int main() { int n;cin>>n;//有多少个夹子 Node *head=new Node; head->next=head; head->NO=1;//初始化头节点 直接把他当作第一个夹子 for(int i=n;i>=2;i--) { Node* temp=new Node; temp->next=head->next; head->next=temp; temp->NO=i;//通过尾插法插入链表节点,所以i会倒序 细品 } int m;//m个数据 while(cin>>m) { Node* p=head; while(m--) { int x;cin>>x;//衣服长度 while(x) { p->ocp=1; p=p->next; x--; } p->ocp=2;//此时刚好p指向中间隔着的夹子,直接设置ocp为2即可 p=p->next;//继续指向下一个夹子 } int idx;cin>>idx;//需要查询的节点的下标 p=head; while(p->NO!=idx) p=p->next;//找到我们的下标 cout<<p->ocp<<endl;//直接输出他的占用情况 p=head; while(p->next!=head) { p->ocp=0;//记得每次一组数据求完要清空上一组的数据 p=p->next; } p->ocp=0;//最后一个节点还没清清除,再手动清除就OK } return 0; }
没有思路可言,直接逻辑模拟
0.0分
2 人评分
C语言训练-求具有abcd=(ab+cd)2性质的四位数 (C语言代码)浏览:562 |
【出圈】 (C语言代码)浏览:794 |
三角形 (C++代码)递推浏览:755 |
三角形 (C语言代码)浏览:903 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:533 |
回文数字 (C语言代码)浏览:2509 |
1035 题解浏览:778 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:629 |
字符逆序 (C语言代码)浏览:612 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:753 |