1455: 罗马游戏
时间:2022-05-08
本文章向大家介绍1455: 罗马游戏,主要内容包括1455: 罗马游戏、Description、Input、Output、Sample Input、Sample Output、HINT、Source、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
1455: 罗马游戏
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 721 Solved: 272
Description
罗马皇帝很喜欢玩杀人游戏。 他的军队里面有n个人,每个人都是一个独立的团。最近举行了一次平面几何测试,每个人都得到了一个分数。 皇帝很喜欢平面几何,他对那些得分很低的人嗤之以鼻。他决定玩这样一个游戏。 它可以发两种命令: 1. Merger(i, j)。把i所在的团和j所在的团合并成一个团。如果i, j有一个人是死人,那么就忽略该命令。 2. Kill(i)。把i所在的团里面得分最低的人杀死。如果i这个人已经死了,这条命令就忽略。 皇帝希望他每发布一条kill命令,下面的将军就把被杀的人的分数报上来。(如果这条命令被忽略,那么就报0分)
Input
第一行一个整数n(1<=n<=1000000)。n表示士兵数,m表示总命令数。 第二行n个整数,其中第i个数表示编号为i的士兵的分数。(分数都是[0..10000]之间的整数) 第三行一个整数m(1<=m<=100000) 第3+i行描述第i条命令。命令为如下两种形式: 1. M i j 2. K i
Output
如果命令是Kill,对应的请输出被杀人的分数。(如果这个人不存在,就输出0)
Sample Input
5 100 90 66 99 10 7 M 1 5 K 1 K 1 M 2 3 M 3 4 K 5 K 4
Sample Output
10 100 0 66
HINT
Source
题解:呵呵呵呵呵呵呵呵呵和~~~~这不是左偏树模板题么。。
直接建立一棵左偏树乱搞搞即可。。。(不过我还是头一次写需要维护父亲节点的左偏树,看样子还有点麻烦,不过也还好,就是多几条语句)
1 /**************************************************************
2 Problem: 1455
3 User: HansBug
4 Language: Pascal
5 Result: Accepted
6 Time:4028 ms
7 Memory:35384 kb
8 ****************************************************************/
9
10 var
11 i,j,k,l,m,n:longint;
12 a,lef,rig,fix,fat,mak:array[0..1500000] of longint;
13 ch:char;
14 function min(x,y:longint):longint;
15 begin
16 if x<y then min:=x else min:=y;
17 end;
18 function max(x,y:longint):longint;
19 begin
20 if x>y then max:=x else max:=y;
21 end;
22 procedure swap(var x,y:longint);
23 var z:longint;
24 begin
25 z:=x;x:=y;y:=z;
26 end;
27 procedure merge(var x,y:longint);
28 begin
29 if x=0 then
30 begin
31 fat[y]:=fat[x];fat[x]:=0;
32 swap(x,y);
33 end;
34 if y=0 then exit;
35 if a[y]<a[x] then
36 begin
37 fat[y]:=fat[x];fat[x]:=0;
38 swap(x,y);
39 end;
40 merge(rig[x],y);
41 fat[rig[x]]:=x;
42 fix[x]:=min(fix[lef[x]],fix[rig[x]])+1;
43 if fix[lef[x]]<fix[rig[x]] then swap(lef[x],rig[x]);
44 end;
45 function getfat(x:longint):longint;
46 begin
47 while fat[x]<>0 do x:=fat[x];
48 exit(x);
49 end;
50 begin
51 readln(n);
52 fillchar(lef,sizeof(lef),0);
53 fillchar(rig,sizeof(rig),0);
54 fillchar(fix,sizeof(fix),0);
55 fillchar(fat,sizeof(fat),0);
56 fillchar(mak,sizeof(mak),0);
57 for i:=1 to n do read(a[i]);
58 readln;
59 readln(m);
60 for i:=1 to m do
61 begin
62 read(ch);
63 case upcase(ch) of
64 'M':begin
65 readln(j,k);
66 if (mak[j]=1) or (mak[k]=1) then continue;
67 j:=getfat(j);k:=getfat(k);
68 if j=k then continue;
69 merge(j,k);
70 end;
71 'K':begin
72 readln(j);
73 if mak[j]=1 then
74 begin
75 writeln(0);
76 continue;
77 end;
78 j:=getfat(j);
79 mak[j]:=1;
80 writeln(a[j]);
81 merge(lef[j],rig[j]);
82 j:=lef[j];
83 fat[j]:=0;
84 end;
85 end;
86 end;
87 readln;
88 end.
- Python生成词云图,TIIDF方法文本挖掘: 词频统计,词云图
- C/C++——vector的基本操作总结
- 数据库负载急剧提高的应急处理(二) (r9笔记第55天)
- 社团划分——有向图的Label Propagation算法
- Python基础——网络编程
- 分区表的一个持续改进方案(r9笔记第53天)
- python jieba分词(结巴分词)、提取词,加载词,修改词频,定义词库
- MySQL中的NULL和空串比较 (r9笔记第52天)
- Core-periphery decomposition--核心-外围模型R代码整理
- 停止数据库没有响应的问题分析(r9笔记第51天)
- Hive——巧用transform处理复杂的字符串问题
- 停止数据库没有响应的问题分析(r9笔记第50天)
- 一个SQL语句引发的ORA-00600错误排查(一) (r9笔记第64天)
- 一个SQL语句引发的ORA-00600错误排查(二)(r9笔记第65天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SPSS中的等级线性模型Multilevel linear models研究整容手术数据
- Python花式表白
- Python中基于网格搜索算法优化的深度学习模型分析糖尿病数据
- WordPress运行内存不足的解决方式
- ggplot2 |legend参数设置,图形精雕细琢
- miRBase物种名缩写
- Python中基于网格搜索算法优化的深度学习模型分析糖尿病数据
- 在R语言中使用航空公司复杂网络对疫情进行建模
- R语言用关联规则和聚类模型挖掘处方数据探索药物配伍中的规律
- ggplot2|theme主题设置,详解绘图优化-“精雕细琢”
- ggalluvial|炫酷桑基图(Sankey),你也可以秀
- R|批量循环处理同一格式文件-csv,txt,excel
- 误差线怎么画,写不写代码as you like
- Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化
- Forest plot(森林图) | Cox生存分析可视化