分析操作的性质
在环上进行共鸣操作时,每一轮每个节点的新值等于自身与右邻居原值的按位或。经过 t 轮之后,节点 i 的能量值 ai(t) 会变成初始数组中从 i 开始、连续 t+1 个节点的按位或(下标在模 n 意义下循环)。
形式化地:
问题转化
要求最少共鸣轮数使得所有节点能量值 ≥k,等价于为每一个节点 i 找到一个最小的连续长度 Li(1≤Li≤n),使得以 i 为起点的 Li 个初始节点的按位或 ≥k。
在一个环形排列的装置中,有 n 个节点,编号从 1 到 n,节点 i 的右侧邻居是节点 i+1(节点 n 的右侧邻居为节点 1)。 每个节点有一个初始能量值 ai(非负整数)。
系统可以执行“共鸣”操作:每一轮共鸣中,所有节点同时更新自己的能量值,新值等于它原来的能量值与其右侧邻居原来的能量值的按位或(bitwise OR)。形式化地,令 ai′=ai∣ai+1(对 1≤i<n),an′=an∣a1,然后所有 ai←ai′。
现在给定初始能量值和阈值 k,请你计算最少需要进行多少轮共鸣,才能使得所有节点的能量值都不小于 k。数据保证在有限轮内一定可以达成目标。
约束条件:
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册