当前位置:网站首页>(2022牛客多校四)D-Jobs (Easy Version)(三维前缀或)
(2022牛客多校四)D-Jobs (Easy Version)(三维前缀或)
2022-08-08 23:06:00 【AC__dream】
题目:
样例输入:
3 5
2 1 1 2 2 1 2
3 1 3 2 2 3 1 2 3 3
2 2 3 1 3 2 1
191415411
样例输出:
34417749
题意:有n个公司,第i个公司有mi个工作,每个工作对三个能力分别有数值要求,必须三个能力都达标才能胜任这份工作。一个人只要能胜任一个公司的任意一份工作那么他都能进入这个公司。
q次询问,每次询问一个三元组,代表一个人三个能力的数值,求这个人可以去多少个公司工作,强制在线。
对于每个公司我们不可能都处理一遍前缀和,因为10*400*400*400肯定会超时,由于我们只需要知道能否胜任某个公司的某个工作而不是全部的工作都要胜任,而且我们要存储多个公司的信息,所以我们只需要用二进制维护一下就行,对于第t个公司我们用第t位二进制位去维护该信息,这样的话就可以使得公司与公司之间互补干扰。然后直接O(1)查询即可。
下面是代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
#include <random>
using namespace std;
const int N=401,mod=998244353;
int f[N][N][N],s[2000005];
int lastans=0,seed;
inline int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int main()
{
int n,m;
n=read();m=read();
for(int i=1;i<=n;i++)
{
int t;
t=read();
for(int j=1;j<=t;j++)
{
int a,b,c;
a=read(),b=read(),c=read();
f[a][b][c]|=(1<<i);
}
}
for(int i=1;i<=400;i++)
for(int j=1;j<=400;j++)
for(int k=1;k<=400;k++)
f[i][j][k]|=f[i][j][k-1]|f[i][j-1][k]|f[i-1][j][k];
seed=read();
std::uniform_int_distribution<> u(1,400);
std::mt19937 rng(seed);
s[0]=1;
for(int i=1;i<=m;i++)
s[i]=1ll*s[i-1]*seed%mod;
long long anss = 0;
for(int i=1;i<=m;i++)
{
int IQ=(u(rng)^lastans)%400+1; // The IQ of the i-th friend
int EQ=(u(rng)^lastans)%400+1; // The EQ of the i-th friend
int AQ=(u(rng)^lastans)%400+1; // The AQ of the i-th friend
lastans=0;
for(int i=1;i<=n;i++)
lastans+=f[IQ][EQ][AQ]>>i&1;
anss = (anss+1ll*lastans*s[m-i]%mod)%mod;
}
printf("%lld\n", anss);
return 0;
}
边栏推荐
猜你喜欢
Kubernetes 资源核心原理
(2022牛客多校五)D-Birds in the tree(树形DP)
(2022牛客多校四)H-Wall Builder II(思维)
Virtual router redundancy protocol VRRP - double-machine hot backup
Low-Light Image Enhancement via a Deep Hybrid Network阅读札记
CTF攻防世界
【YOLOv5】6.0环境搭建(不定时更新)
应用层协议——RADIUS
Kubernetes资源编排系列之四: CRD+Operator篇
2022牛客多校六 M-Z-Game on grid(动态规划)
随机推荐
4399 it operations intern interview experience
Xcode 创建一个Dylib 插件deb项目
Dynamic Host Configuration Protocol DHCP (DHCPv4)
flutter 基本类写法
用模态框 实现 注册 登陆
MySQL query problem?
word文档标题怎么自动编号?
如何使用 Eolink 实现 API 文档自动生成
Hi3516 use wifi module
2022杭电多校六 1006-Maex (树形DP)
2022牛客多校六 M-Z-Game on grid(动态规划)
[Bug solution] ValueError: Object arrays cannot be loaded when allow_pickle=False
发送封包的函数都有哪些?OD如何下断?
C语言 库函数汇总2019.10.31
Button Wizard Delete File Command
设计分享|基于单片机的P0口驱动LED闪烁
你了解你每天都在用的NAT吗?
Kubernetes 资源编排系列之二: Helm 篇
JSDay1-合并两个有序数组
机器学习建模高级用法!构建企业级AI建模流水线