当前位置:网站首页>E - Many Operations (按位考虑 + dp思想记录操作后的结果
E - Many Operations (按位考虑 + dp思想记录操作后的结果
2022-08-05 00:08:00 【__Rain】
E - Many Operations
思路:
虽然第 i i i 次操作的初始值是第 i − 1 i-1 i−1 次操作后的结果,但是按位考虑,开始操作时每一位只能是 0 0 0 或者 1 1 1,并且每次操作顺序每次都是一样的
可以想到用 d p dp dp 思想记录下来每一位按顺序操作后的结果
f [ i ] [ j ] [ k ] f[i][j][k] f[i][j][k] 表示第 j j j 位初始值为 k k k ,进行 i i i 次操作后的值
code:
#include<bits/stdc++.h>
#define endl '\n'
#define ll long long
#define ull unsigned long long
#define ld long double
#define all(x) x.begin(), x.end()
#define mem(x, d) memset(x, d, sizeof(x))
#define eps 1e-6
using namespace std;
const int maxn = 2e5 + 9;
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
ll n, m;
bool f[maxn][30][2];
// f[i][j][k] 表示第j位初始值为k,进行 i 次操作后的值
void work()
{
cin >> n >> m;
vector <int>t(n + 1), a(n + 1);
for(int i = 1; i <= n; ++i){
cin >> t[i] >> a[i];
}
for(int i = 0; i < 30; ++i){
f[0][i][0] = 0;
f[0][i][1] = 1;
}
for(int i = 1; i <= n; ++i){
for(int j = 0; j < 30; ++j){
int x = (a[i] >> j & 1);
for(int k = 0; k < 2; ++k){
if(t[i] == 1){
f[i][j][k] = f[i-1][j][k] & x;
}
else if(t[i] == 2){
f[i][j][k] = f[i-1][j][k] | x;
}
else {
f[i][j][k] = f[i-1][j][k] ^ x;
}
}
}
}
for(int i = 1; i <= n; ++i){
int ans = 0;
for(int j = 0; j < 30; ++j){
int k = (m >> j & 1);
if(f[i][j][k]) ans += 1 << j;
}
cout << ans << endl;
m = ans;
}
}
int main()
{
ios::sync_with_stdio(0);
// int TT;cin>>TT;while(TT--)
work();
return 0;
}
边栏推荐
- 【手撕AHB-APB Bridge】~ AMBA总线 之 AHB
- 【论文笔记】—低照度图像增强—Unsupervised—EnlightenGAN—2019-TIP
- lua 如何 实现一个unity协程的工具
- 数据类型-整型(C语言)
- uniapp动态实现滑动导航效果demo(整理)
- KT6368A蓝牙的认证问题_FCC和BQB_CE_KC认证或者其它说明
- RK3399平台开发系列讲解(内核调试篇)2.50、嵌入式产品启动速度优化
- Security software Avast and Symantec NortonLifeLock merge with UK approval, market value soars 43%
- Mysql_14 存储引擎
- 怎么将自己新文章自动推送给自己的粉丝(巨简单,学不会来打我)
猜你喜欢
手写分布式配置中心(1)

小黑leetcode之旅:95. 至少有 K 个重复字符的最长子串

Privacy Computing Overview

what?测试/开发程序员要被淘汰了?年龄40被砍到了32?一瞬间,有点缓不过神来......

标识符、关键字、常量 和变量(C语言)

学会反射后,我被录取了(干货)

Huggingface入门篇 II (QA)

导入JankStats检测卡帧库遇到问题记录

Cloud native - Kubernetes 】 【 scheduling constraints

【Valentine's Day special effects】--Canvas realizes full screen love
随机推荐
基于Appian低代码平台开发一个SpaceX网站
Mysql_12 多表查询
Flask框架 根据源码分析可扩展点
KT148A voice chip ic working principle and internal architecture description of the chip
入门3D游戏建模师知识必备
Handwritten Distributed Configuration Center (1)
Cython
矩阵数学原理
找不到DiscoveryClient类型的Bean
LeetCode Hot 100
线程三连鞭之“线程的状态”
ansible学习笔记分享-含剧本示例
【LeetCode】滑动窗口题解汇总
How to burn the KT148A voice chip into the chip through the serial port and the tools on the computer
[LeetCode] Summary of Matrix Simulation Related Topics
IDEA 文件编码修改
中日颜色风格
Basic web in PLSQL
golang 协程的实现原理
KT6368A蓝牙的认证问题_FCC和BQB_CE_KC认证或者其它说明