I am the bone of my sword.

体は剣で出来ている.

Steel is my body, and fire is my blood.

血潮は鉄で 心は硝子.

I have created over a thousand blades.

几たびの戦场を越えて不败.

Unknown to Death.

ただの一度も败走はなく.

Nor known to Life.

ただの一度も理解されない.

Have withstood pain to create many weapons.

彼の者は常に独り 剣の丘で胜利に酔う.

Yet, those hands will never hold anything.

故に、生涯に意味はなく.

So as I pray, Unlimited Blade Works.

その体は、きっと剣で出来ていた.

“无限剑制”

等级:E~A++

种类:??

Unlimited Blade Works。

被称为固有结界的特殊魔术。

在一定时间内,将现实改写为心象世界,至今为止术者见过并能够认知的武器、在这个地方使用过的武器都能瞬间复制、保存。

但是,复制的武器等级会下降一级。

Emiya打算增加自己固有结界内的武器数量。他初始有 5 5 把武器,编号为 1-5 1−5 ,每把武器有 n(n \le 10^5) n(n≤10
5
) 个属性数值 v_i v
i

。Emiya接着制作 m m 把新武器,第 i i 次会选择编号为 a_i,b_i a
i

,b
i

的武器为模板投影出一把新的武器,新的武器的编号为 5+i 5+i ,每一个属性的值为两个模板武器对应属性的值的 max max 或 min min 。同时Emiya想知道新的武器的第 k_i k
i

个属性的数值。但是Emiya还要去做饭,所以需要他的master你来回答这些问题。
输入格式
第 1 1 行两个正整数 n,m n,m 。

第 2 2 到 6 6 行,每行 n n 个正整数,第 i i 个数表示 v_i v
i

第 7 7 到 6+m 6+m 行,每行 4 4 个数 p_i,a_i,b_i,k_i p
i

,a
i

,b
i

,k
i

,其中模板武器为 a_i,b_i a
i

,b
i

, p_i=0 p
i

=0 为 min min , p_i=1 p
i

=1 为 max max ,查询第 k_i k
i

个属性的数值。
输出格式
m m 行,每行 1 1 个整数,表示第 k_i k
i

个属性的数值
样例
样例输入

6 3
1 5 9 3 8 6
4 1 1 4 9 3
8 7 7 8 10 8
9 8 6 9 3 4
5 3 4 1 1 2
0 2 5 6
0 4 3 6
1 7 4 1
样例输出

2
4
9
数据范围与提示
保证对于每一个属性,初始 5 5 把武器该属性的数值不同。

10 % 10% : n \le 10^3,m \le 10^3 n≤10
3
,m≤10
3

另外 20 % 20% : m \le 5 \times 10^3 m≤5×10
3

另外 20 % 20% : a_i \le 5,b_i a
i

≤5,b
i

随机生成

另外 20 % 20% :所有 v_i v
i

值域在 [1,5] [1,5]

100 % 100% : k_i \le n \le 10^5,m \le 10^5,a_i,b_i \le 4+i,v_i \le 10^9 k
i

≤n≤10
5
,m≤10
5
,a
i

,b
i

≤4+i,v
i

≤10
9

来源
robinliu
题解:
可以注意到,对于前五个数相对大小关系相等的两列,对于新制的任意一件武器,传值的操作在同一列相对大小关系上是一样的。
所以可以用哈希值来表示相对大小关系相等的一类列。
修改(传值)时修改哈希值就可以了。
O(120*n);

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define N 100005
using namespace std;
struct node
{int p,s,v;
}cw[N][5];
int n,m,temp,ord[N],w[125][N+7],h[10005],to[N];
bool cmp(int x,int y){return cw[temp][x].v<cw[temp][y].v;}
int main()
{cin>>n>>m;for(int i=1;i<6;++i){for(int j=1;j<=n;++j){cin>>cw[j][i].v;}}int s=0,cnt=0;for(int i=1;i<=n;++i){temp=i;for(int j=1;j<6;++j)ord[j]=j;sort(ord+1,ord+6,cmp);for(int j=1;j<6;++j)cw[i][ord[j]].s=j;s=0;for(int j=1;j<6;++j)s=s*6+cw[i][j].s;for(int j=1;j<6;++j)cw[i][j].p=cw[i][ord[j]].v;// for(int j=1;j<6;++j)cw[i][cw[i][j].s].p=cw[i][j].v;if(!h[s]){h[s]=to[i]=++cnt;for(int j=1;j<6;++j)w[to[i]][j]=cw[i][j].s;}else to[i]=h[s];}for(int i=1+5,p,a,b,k;i<m+6;++i){scanf("%d%d%d%d",&p,&a,&b,&k);if(!p)w[to[k]][i]=min(w[to[k]][a],w[to[k]][b]);else w[to[k]][i]=max(w[to[k]][a],w[to[k]][b]);printf("%d\n",cw[k][w[to[k]][i]].p);for(int j=1;j<=cnt;++j){if(!p)w[j][i]=min(w[j][a],w[j][b]);else w[j][i]=max(w[j][a],w[j][b]);}}return 0;
}

#3498. 无限剑制(ubw)相关推荐

  1. 炽天覆七环Ajax,【经典】无限剑制——Unlimited blade works

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 解析:无限剑制 固有结界·无限剑制,Unlimited Blade Works,士郎和Archer拥有的固有结界的名字,被具现化的世界是有着无数无主的剑之 ...

  2. 鬼谷八荒流派收集(2)流水剑

    贴吧里废话很多,很多小白只是为了看怎么实操的,所以我整理了各大顶级流派的精简版:传送门 后期比风剑爆发更高. 两种流水剑系分支: 其一分支名为万神流水剑,顾明思义,使用神通万神剑,该分支特点是高爆发. ...

  3. 浏览器svg插件_Archer-svgs: 异步加载svg方案

    Github地址: ShanaMaid/archer-svgs 哇哦!无限的svgs!你可以使用archer-svgs去异步加载svg并将它缓存在localStorage里,当你再次使用已经加载过的s ...

  4. Java实现动画逐字打印

    在现代,摒弃传统的会话方式,很多的图形广告或游戏采用了[逐字打印]的效果来展示文字,当然,这样做的目的无非是为了突出内容或吸引眼球. 但是这种实现方式却是值得借鉴的,以下,我给出一个JAVA实现的简单 ...

  5. css3实现六边形列表

    最近在做六边形列表,看到老外写的一个,感觉很不错. https://github.com/web-tiki/responsive-grid-of-hexagons demo:https://codep ...

  6. 死亡爱丽丝服务器维护,《死亡爱丽丝》上线玩家太多 游戏无限期停服维护

    <死亡爱丽丝>这个SE手游大作从6月6日下午开服后就一直处在不停的维护当中.手游开服初期经常维护也不算少见,但<死亡爱丽丝>已经快变成了每天下午开服几个小时的限定体验游戏.更搞 ...

  7. 用计算机弹千鸟,如果获得推演系统,我是先推演千鸟还是如来神掌

    如果获得了推演系统或者推演能力,你会做什么?是推演彩票中奖号码,让自己轻松实现财富自由:还是推演股票走势,让自己成为金融大亨:或者推演武侠神功,过把大侠瘾:又或者推演动漫技能,让二次元降临现实--当然 ...

  8. 鸿蒙渊第五片花叶,《FGO》中国首场大型主题展即将开启售票 - Fate/Grand Order

    <Fate/Grand Order>中国首场大型主题展"Fate/Grand Order EXPO Shanghai"将于2018年1月26日~28日在上海国家会议中心 ...

  9. 80后创业故事之:兄弟散伙,创业失败(转)

    在公司发展进入低谷与瓶颈时,我们也曾不断的调整自己的经营思路.调整产品结构,并且也曾经一度步入平稳发展的阶段. 一.在团队改造方面:由:设计部.市场部,扩充为:企划部.客服部.市场部.管理部.并在很短 ...

最新文章

  1. 语音公司集体杀入AI芯片 2019场景落地战打响!
  2. 【翻译】Ext JS最新技巧——2014-8-13
  3. 算法------长度最小的子数组
  4. 面试题整理10 最小的k个数
  5. 19、Fragment
  6. html表单复选框样式,美化表单——自定义checkbox和radio样式
  7. python获取二维矩阵的每一行的第一个非零元素
  8. 使用Redis存取数据+数据库存取(spring+java)
  9. 南宁公交有两个应用付费通道,互不通用
  10. 论文编写的9个实用软件
  11. Anaconda下载速度慢
  12. 十代主板改win7_微星Z490装win7 Bios设置|微星Z490主板10代CPU装win7
  13. 服务器sas系统盘损坏,磁盘阵列中SCSI、SAS硬盘由于一块或者多块有坏道引起操作系统产生如下故障...
  14. 高通apq8074修改DDR频率
  15. iPhone屏幕尺寸(包含7p)
  16. 机器学习数据集划分留出法,留一法,交叉法,自助法
  17. webpack雪碧图生成
  18. Web前端是什么?Web前端包括哪些技术?
  19. 微信客服消息时间限制
  20. URL传参小用法获取url中的参数

热门文章

  1. Win10的WLAN网络共享给以太网(Ubuntu)
  2. drawlayout侧滑
  3. JS Switch用法
  4. Vue引入TweenMax
  5. 华为(huawei)USG6000的CLI命令行综合配置之安全区域/nat策略/安全策略配置
  6. VUE mixins使用
  7. 零基础搭建影视网站-苹果cms
  8. 赢在数据(R+Hadoop)群电子刊物《数据赢家》第三期出炉
  9. Unity3D .asset资源文件
  10. ART中添加 neg.s neg.d 指令及相关代码