【xdoj难题集】1039: 饭桌上的游戏
# include <stdio.h>
# include <algorithm>
# include <set>
# include <queue>using namespace std;struct man
{int ea, y, z;int lct, rct;
};typedef pair<int , int> P;const int MAX_N = 1005;bool die[MAX_N];
int T, N, M, now, num;
man stu[MAX_N];
set<P> Y, Z;void det(int n)
{if(die[n])return;num--;Y.erase(P(stu[n].y , n));Z.erase(P(stu[n].z , n));stu[stu[n].lct].rct = stu[n].rct;stu[stu[n].rct].lct = stu[n].lct;die[n] = true;if(n == now)now = stu[n].lct;
}inline void chek(int n)
{stu[n].ea--;if(stu[n].ea <= 0)det(n);
}void solve()
{fill(die , die + N , 0);now = 0;num = N;int b = 0;priority_queue<P , vector<P> , greater<P> > que;int i;if(N <= 1){for(i = 0 ; i < M ; i++)scanf("%d", &now);printf("%d\n", N);return;}for(i = 0 ; i < M ; i++){int c;scanf("%d", &c);if(c == 1)chek((*Y.begin()).second);else if(c == 2)chek((*Z.begin()).second);else if(c == 3){b++;que.push(P(i + stu[now].ea - b , now));}else if(c == 4)chek(stu[now].lct);else if(c == 5)chek(stu[now].rct);else chek(now);while(!que.empty()){P ty = que.top();if(ty.first + b > i)break;que.pop();det(ty.second);}int j;if(num == 1){for(j = i + 1 ; j < M ; j++)scanf("%d", &c);printf("%d\n", now + 1);return;}else if(num == 0){for(j = i + 1 ; j < M ; j++)scanf("%d", &c);puts("0");return;}now = stu[now].rct;}puts("-1");
}int main()
{scanf("%d", &T);while(T--){Y.clear();Z.clear();scanf("%d %d", &N, &M);int i, ny, nz;for(i = 0 ; i < N ; i++)scanf("%d", &stu[i].ea);for(i = 0 ; i < N ; i++)scanf("%d", &stu[i].y);for(i = 0 ; i < N ; i++)scanf("%d", &stu[i].z);for(i = 0 ; i < N ; i++){stu[i].lct = i - 1;stu[i].rct = i + 1;Y.insert(P(stu[i].y , i));Z.insert(P(stu[i].z , i));}stu[0].lct = N - 1;stu[N - 1].rct = 0;solve();}return 0;
}
【xdoj难题集】1039: 饭桌上的游戏相关推荐
- 【xdoj难题集】1202 The Offer - Lunatic(附优化版)
说实话2017年的校赛挺难的,最后三道都不简单,这道题一开始吓了我一大跳,想着如果用最短路算法,魔法阵怎么也要上千万条路径,不过之后看到海拔最高只有100之后总算是安心了. 先说一说大体思路,首先肯定 ...
- 【xdoj难题集】1102 xry111挂灯笼
题目 这道题虽然做对的不多,但是我倒是做的异常顺利,直接一遍过,感觉在经历了pfunction之后已经领悟了新一层的dp技巧. 说说思路,就是dp递推,关键是掌握如何递推,首先考虑只有一个挂钩的情况, ...
- 【xdoj难题集】 1059: 英雄联盟
题目链接 这道题做了有一阵了,之前一直不知道是什么问题,今天又回头看了看,试了试精度,发现之前的如果末尾是5会无法进位,改完之后就对了...精度真的是玄学问题,这个问题一定要重视,还是要积累一些经验. ...
- 【xdoj难题集】 1018 Josephus环的复仇的复仇
题目链接 每天都坚持写写 说实话很早就想写这道题了,但是一直不知道怎么解释那个算法,做完之后也看过聚聚的题解,说有一个什么数学结论,然而我研究了这么久都没有研究出什么数学结论,只能再试着看看了.虽然之 ...
- 《为iPad而设计:打造畅销App》——想象iPad上的游戏
本节书摘来自异步社区<为iPad而设计:打造畅销App>一书中的想象iPad上的游戏,作者[英]Chris Stevens,更多章节内容可以访问云栖社区"异步社区"公众 ...
- 帝国时代3 亚洲王朝 酋长合集 Mac版 – 即时战略游戏
<帝国时代3>是一款由Ensemble Studios开发的即时战略游戏,它向玩家展示了不同民族风格迥异的经济体制和作战方式.<帝国时代3>的原版游戏从公元1500年开始,玩家 ...
- 围棋——金字塔上的游戏
围棋--金字塔上的游戏 楔子 我们已经习惯了把围棋盘看成是平面的,因为根本没有必要去把它设想为立体的.可是当我们认真地考虑围棋的内在机理和围棋规则的内涵时,似乎应当做一种视角的变换. 可以发现,围棋盘 ...
- 亚马逊云科技云上的游戏服务:Lumberyard + Amazon GameLift + Twitch
开发一款世界级的游戏是一个非常困难,耗时和昂贵的过程.现在的游戏玩家要求越来越苛刻,他们希望既可以通过各种不同的终端设备来进行游戏 ,又要求游戏具有社交的功能.由于此类游戏的开发期和推广期都很长,因此 ...
- AWS上的游戏服务:Lumberyard + Amazon GameLift + Twitch
开发一款世界级的游戏是一个非常困难,耗时和昂贵的过程.如今的游戏玩家要求越来越苛刻,他们希望既能够通过各种不同的终端设备来进行游戏 ,又要求游戏具有社交的功能. 因为此类游戏的开发期和推广期都非常长. ...
最新文章
- java web程序示例_想要建立一些有趣的东西吗? 这是示例Web应用程序创意的列表。...
- 430亿晶体管,1020万逻辑单元,英特尔发布全球最大容量FPGA,用全新硬件加速AI开发...
- 北科大matlab,北科大matlab第五次作业多项式及其相关计算.doc
- 信息学奥赛一本通 1001:Hello,World | OpenJudge NOI 1.1 01:Hello, World
- CentOS 7下彻底卸载MySQL数据库
- 【重点 递归构造二叉树】LeetCode 95. Unique Binary Search Trees II
- Vue2.x全家桶WebApp
- ubuntu安装libjasper.so.1,libpng12.so.0
- 编程基本功:以输入法为例,谈谈测试案例的设计
- 黑域,黑阈 Permission denied
- 计算机total函数,以一敌十的SUBTOTAL函数,你不会用就太可惜了!
- python写一个简单的CMS识别
- 机器学习算法(三十):强化学习(Reinforcement Learning)
- 一文读懂SDRAM内存模组与基本概念
- iOS开发中图片的模糊处理
- Linux 安装netcdf
- iOS14隐私适配:根据不同的场景需求设置不同的定位精确度
- 遍历HashMap的几种常用方法
- java绘制流程图基本元素,java绘制图片
- java eden_java eden 大小