专栏文章
题解:P13712 淘汰(Easy ver.)
P13712题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miocqn0f
- 此快照首次捕获于
- 2025/12/02 17:04 3 个月前
- 此快照最后确认于
- 2025/12/02 17:04 3 个月前
分析
先不考虑代价,题目就只有两种操作:
- 把 变为 。
- 把 变为 。
容易考虑其性质:操作任意多次和操作一次的效果是一样的!
那么我们就简化了问题,把操作任意多次转化为了每个操作最多进行一次。 接下来就可以分讨了。
那么我们就简化了问题,把操作任意多次转化为了每个操作最多进行一次。 接下来就可以分讨了。
码
代码
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
int T;
cin>>T;
while(T--){
int x,y,a,b,c,d,cost=LLONG_MAX;
cin>>x>>y>>a>>b>>c>>d;
if(x==y){//不需要操作
cout<<0<<endl;//这个endl居然硬控我
continue;
}
if((x|b)==y)cost=min(cost,d);//操作2一次
if((x&a)==y)cost=min(cost,c);//操作1一次
if(((x&a)|b)==y)cost=min(cost,c+d);//先1后2
if(((x|b)&a)==y)cost=min(cost,c+d);//先2后1
cout<<(cost==LLONG_MAX?-1:cost)<<endl;//可能无解
}
return 0;
}
补充证明
过程
设 是某种可以将 变为 的包含 与 的操作序列。
易得:
使用这两条性质后,我们可以保证 中不存在连续的 与 操作。
又有如下性质: (只需要简单的分配律即可证明)
使用这两条性质后,我们可以保证 中至多只有一对相邻的 和 操作。
所以最终的 满足:
x,\
x\operatorname{AND} a,\
x\operatorname{OR} b,\
(x\operatorname{AND} a) \operatorname{OR} b,\
(x\operatorname{OR} b) \operatorname{AND} a
\right\}$$易得:
使用这两条性质后,我们可以保证 中不存在连续的 与 操作。
又有如下性质: (只需要简单的分配律即可证明)
使用这两条性质后,我们可以保证 中至多只有一对相邻的 和 操作。
所以最终的 满足:
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...