今天是第三天

传送门

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
#include<cmath>
#include<queue>
#include<deque>
using namespace std;
int r[2000101],l[2000101],dis[2000101],fa[2000101];
long long tree[2000100];
int find(int x)
{if (x==fa[x]) return x;return fa[x]=find(fa[x]);
}
int MG(int a,int b)
{if (!a||!b) return b+a;if (tree[a]<tree[b]||(tree[a]==tree[b]&&a>b)) swap(a,b);r[a]=MG(r[a],b);if (dis[l[a]]<dis[r[a]]) swap(l[a],r[a]);fa[l[a]]=fa[r[a]]=fa[a]=a,dis[a]=dis[r[a]]+1;return a;
}
void Del(int x)
{int L=l[x],R=r[x];fa[L]=L,fa[R]=R;l[x]=r[x]=dis[x]=0;MG(MG(L,R),find(x));return;
}
bool wj[2000100];
int n,m,t,w;
long long k;
int main()
{scanf("%d%d%d",&t,&w,&k);while (t--){fa[0]=dis[0]=l[0]=r[0]=0;memset(wj,0,sizeof(wj));scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) cin>>tree[i],fa[i]=i,r[i]=l[i]=dis[i]=0;for (int i=1;i<=m;i++){int opt;scanf("%d",&opt);if (opt==2){int x;scanf("%d",&x);tree[x]=0;Del(x);}if (opt==3){int x;long long y;scanf("%d%lld",&x,&y);x=find(x);tree[x]-=tree[x]>y?y:tree[x];Del(x);}if (opt==4){int x,y;scanf("%d%d",&x,&y);x=find(x),y=find(y);if (x!=y) MG(x,y);}}long long ans=0,mx=0;for (int i=1;i<=n;i++){int z=find(i);if (wj[z]) continue;wj[z]=1;mx=max(mx,tree[z]);ans+=tree[z];}if (w==2) ans-=mx;if (w==3) ans+=mx;if (ans==0) cout<<"Gensokyo 0\n";else if (ans<=k) cout<<"Heaven "<<ans<<endl;else cout<<"Hell "<<ans<<endl;}return 0;
}

洛谷水题实况(P4971 断罪者)相关推荐

  1. 洛谷水题实况(B2119 删除单词后缀)

    系列第二天. 之前做了一下游戏,所以拖更了. 传送门 #include<bits/stdc++.h> using namespace std; char str[33]; int len; ...

  2. 洛谷刷题C语言:数字反转、再分肥皂水、三角形面积、Apples Prologue/苹果和虫子、数的性质

    记录洛谷刷题QAQ,一些不大优雅的代码 一.[深基2.例7]数字反转 题目描述 输入一个不小于 100100100 且小于 100010001000,同时包括小数点后一位的一个浮点数,例如 123.4 ...

  3. [USACO18JAN]Lifeguards P 洛谷黑题,单调队列优化DP

    传送门:戳我 这道题有两个版本,S和P,S是K等于1的情况,显然可以用线段树水过. P版本就难了很多,洛谷黑题(NOI/NOI+/CTSC),嘿嘿. 我自己也不是很理解,照着题解写了一遍,然后悟到了一 ...

  4. 2021寒假——洛谷刷题计划(35题)

    (希望大家不要Copy) AC:Accept,程序通过. CE:Compile Error,编译错误. PC:Partially Correct,部分正确. WA:Wrong Answer,答案错误. ...

  5. 洛谷刷题C语言:FILIP、修改数组、Fun、Šifra、Erinnerung

    记录洛谷刷题QAQ [COCI2009-2010#3] FILIP 题目描述 给你两个十进制正整数 a,ba, ba,b,输出将这两个数翻转后的较大数. 「翻转」在本题中的定义详见「说明 / 提示」部 ...

  6. 深入理解 操作系统 LRU算法(以洛谷P1540题为例)

    LRU算法 LeastRecentlyUsedLeast Recently UsedLeastRecentlyUsed 算法,意为"最近最少使用",这是操作系统内存管理部分重要的一 ...

  7. 深入理解 操作系统 SJF算法(以洛谷P1223题为例)

    CPU Scheduling Algorithms 重要的CPU调度算法如下: FCFS Scheduling(First-Come, First-Served) SJF Scheduling(Sho ...

  8. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  9. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

最新文章

  1. 谷歌放出AI平民化大招: 李飞飞宣布推出AutoML云平台,让普通企业也能用上深度学习
  2. mongodb studio 3t 破解无限使用脚本
  3. [云炬创业基础笔记]第九章企业的法律形态测试3
  4. 谁有正版的matlab,matlab正版
  5. java ee 分页_【JavaEE】JavaEE分页实践
  6. android网络通信之SOAP教程实例汇总
  7. 基于云存储网关的Veeam备份归档上云方案
  8. 【源码】2012年斗地主算法大全
  9. error C2086: “int WINGDIAPI”: 重定义
  10. 【转】DLL中类的显式链接
  11. Windows 7密码重设盘的内部原理浅析
  12. C语言解决累加和累乘问题
  13. CentOS 6 安装最新的 Redis 2.8 ,安装 TCMalloc
  14. 重装opencv3.2.0后catkin_make遇到问题-解决方案
  15. 非广告,运维派送红包,参与就有!
  16. matlab数值计算习题解析,第3章MATLAB数值计算-习题
  17. 手机android安装程序,Android手机程序安装指南
  18. 什么是AVIF?如何在你的网站上使用AV1格式图像
  19. Oracle 日期时间查询
  20. 重磅!西安交通大学使用脑机接口技术实现了高位截瘫失语患者“说”出“心里话”

热门文章

  1. php的orm框架,PHP有什么ORM框架?
  2. Redis(七)--分片技术详解
  3. Liunx-Ubuntu重启网卡的三种方法:
  4. 完全立方体计算的多路数组聚集
  5. 详谈为什么架构设计禁止 IP 直连
  6. 了解行业信息的数据渠道
  7. 用excel画简单曲线图的实践
  8. 房晟陶:面试高管,这一个问题就能测出其成色
  9. 科技型小微企业研发费用补助资金申报解答,20万补助
  10. PC端微信多开bat脚本