例题6-5 UVa12657 双向链表
来源:互联网 发布:淘宝中老年男装 编辑:程序博客网 时间:2024/06/05 06:34
题意:
看白书吧,介绍的很清楚,P144
要点:
好难啊,用两个数组表示双向链表,里面还有很多小技巧,真难,讲不清楚,看书
代码如下:
#include<stdio.h>#define maxn 100050int left[maxn], right[maxn];void link(int l, int r){right[l] = r;left[r] = l;}int main(){int m,n, kase = 0;while (scanf("%d%d", &n, &m) == 2){int i;for (i = 1; i <= n; i++){left[i] = i - 1;right[i] = (i + 1) % (n + 1); //第n个结点的后继指向0}right[0] = 1;left[0] = n;int op, x, y, inv = 0;//inv记录调换次数while (m--){scanf("%d", &op);if (op == 4) inv = !inv; //记录inv次数else {scanf("%d%d", &x, &y);if (inv&&op != 3) op = 3 - op;//调换一次后移动是反的if (op == 1 && x == left[y]) continue; //刚好在左边就不用换了if (op == 2 && x == right[y]) continue; int lx = left[x], rx = right[x], ly = left[y], ry = right[y];if(op==1){link(lx, rx);link(x, y);link(ly, x);}else if (op == 2){link(lx, rx); link(y, x); link(x, ry);}else if (op == 3){if (right[x] == y) { link(lx, y); link(y, x); link(x, ry); }else if (left[x] == y) { link(ly, x); link(x, y); link(y,rx); }else{link(x, ry); link(ly, x);link(lx, y); link(y, rx);}}}}int b = 0;long long ans = 0;for (i = 1; i <= n; i++){b = right[b];if (i % 2 == 1) ans += b; //奇数加起来}if (inv&&n % 2 == 0) //调转一次且个数为偶数时计入的奇数其实是偶数ans = (long long)n*(n + 1) / 2 - ans; //总数-偶数和=奇数和printf("Case %d: %lld\n", ++kase, ans);}}
0 0
- 例题6-5 UVa12657 双向链表
- 例题6-5 UVA12657 双向链表模拟
- Uva12657 Boxes in a Line 【双向链表】【例题6-5】
- UVA12657 Boxes in a Line【双向链表】【数组模拟】
- uva12657 双向链表的实现与痛苦的调试
- uva12657 Boxes in a Line 双向链表
- uva12657 - Boxes in a Line 入门经典II 第六章数据结构基础 例题6-5
- 算法竞赛入门经典 第二版 例题6-5 移动盒子 Boxes in a Line uva12657
- 【日常学习】【模拟双向链表】【疑问】Uva12657 - Boxes in a Line题解
- 链表-双向链表&&UVa12657 Boxes in a Line(移动盒子)的理解与解析
- C++: 实现双向链表(例题讲解)
- UVA12657
- 紫书章六例题五 移动盒子 UVA 12657 (数组模拟双向链表)
- 5--双向链表
- 例题6-4 UVa11988 静态链表
- 静态链表例题
- 链表例题
- 单向链表例题
- CGContext用法详解
- python学习之--取模运算
- 【转】oracle over函数详解
- 小团队版本管理
- Sleep()与wait()的区别
- 例题6-5 UVa12657 双向链表
- phpmcs_v9.6.0_UTF8 base.php文件分析
- CoreLocation基本使用
- App 跳转到App Store,一句代码搞定
- Python读写Json涉及到中文的处理
- svn 查看,删除用户名,密码
- Add Digits
- leetcode:杂项、二分查找等
- http