【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

双向链表模拟题。
移动的时候,要注意它就在所需要的位置的情况。那种情况不移动。
(如果已经在所需位置了,还用链表的插入方式强行移动的话,会WA到死..)

【代码】

#include <bits/stdc++.h>
using namespace std;
#define ll long long const int N = 1e5; int n, m,flag;
pair <int, int> v[N+10]; void cr(int x0,int y0,int z0,int x,int z) //x0,y0,z0 x_z 把y0插入到_位置
{
v[x0].second = z0;v[z0].first = x0;
v[x].second = y0; v[z].first = y0;
v[y0].first = x, v[y0].second = z;
} int main()
{
/*freopen("F:\\rush.txt", "r", stdin);
freopen("F:\\rush_out.txt", "w", stdout);*/
int kase = 0;
while (~scanf("%d%d", &n, &m))
{
v[0].second = 1;
for (int i = 1; i <= n; i++)
v[i].first = i - 1, v[i].second = i + 1;
v[n + 1].first = n;
flag = 0;
printf("Case %d: ", ++kase);
for (int i = 1; i <= m; i++)
{
int ope,x,y;
scanf("%d", &ope);
if (flag && ope <= 2) ope = 3 - ope;
switch (ope)
{
case 4:
{
flag = !flag;
break;
}
case 1:
{
scanf("%d%d", &x,&y);//x移动到y的左边
if (x == v[y].first) break;
cr(v[x].first, x, v[x].second, v[y].first, y);
break;
}
case 2:
{
scanf("%d%d", &x, &y);//x移动到y的右边
if (x == v[y].second) break;
cr(v[x].first, x, v[x].second, y, v[y].second);
break;
}
case 3:
{
scanf("%d%d", &x, &y);
int temp;
if (v[y].second != x)//y_x || xy
{
//记录x的左边是什么temp
//把x插入到y的右边
//在把y插入到temp的右边
temp = v[x].first;
cr(v[x].first, x, v[x].second, y, v[y].second);
if (y!=v[temp].second)cr(v[y].first, y, v[y].second, temp, v[temp].second);
}
else //yx
{
//把y插入到x的右边
temp = v[x].second;
cr(v[y].first, y, v[y].second, x, v[x].second);
}
break;
}
default:
break;
}
}
ll ans = 0, cnt = 0;
if (!flag)
for (int i = v[0].second;i != n + 1; i = v[i].second)
{
cnt++;
if (cnt & 1) ans += i;
}
else
for (int i = v[n+1].first; i != 0; i = v[i].first)
{
cnt++;
if (cnt & 1) ans += i;
}
printf("%lld\n", ans);
}
return 0;
}

最新文章

  1. URL、URN、URI的区别?
  2. mysql 定时任务
  3. [每日电路图] 7、设计一个PCB的流程及细节&#183;总结——给外行的同学或刚入行的同学一个宏观鸟瞰电路板设计的大致流程的文章
  4. idea 生成代码中带参数final修饰
  5. 对AccessViolationException的一些总结
  6. 通讯录CoreData数据库实现版
  7. Oracle 11g之创建和管理表练习
  8. POJ 1836 Alignment 水DP
  9. jemalloc 快速上手攻略
  10. 分布式唯一id:snowflake算法思考
  11. Spark:性能调优
  12. 4.Centos7安装JDK8以及环境配置
  13. MongoDB启动文件配置参数详解
  14. eclipse快捷键调试总结 -转--快捷键大全
  15. Luogu1084 NOIP2012D2T3 疫情控制 二分答案、搜索、贪心、倍增
  16. 源码编译安装nginx
  17. 解决方案:android monkeyrunner:Timeout while trying to create chimp mananger(device = MonkeyRunner.waitForConnection()一直报错的问题)
  18. JavaScript 异步进化史
  19. NAND FLASH和LCD电路图
  20. Polymorphic form--多态表单

热门文章

  1. android图像处理系列之五-- 给图片添加边框(中)
  2. 50.Node.js 连接 MySQL
  3. Android Retrofit+RxJava 优雅的处理服务器返回异常、错误
  4. DbSet&lt;&gt;.Find()
  5. LuoguP2756 飞行员配对方案问题(最大流)
  6. 解决 Ubuntu 下解压 .zip 文件时出现乱码
  7. http 协议上传文件multipart form-data boundary 说明--转载
  8. socket 笔记(一)
  9. 【Uva 11080】Place the Guards
  10. 洛谷 P2908 [USACO08OPEN]文字的力量Word Power