D. The Wu(数据范围)

news2024/11/17 21:26:04

Problem - D - Codeforces

Childan正在编造一个传奇故事并试图出售他的伪造品——一条带有强烈“Wu”感的项链给Kasoura家族。但是,Kasoura先生正在质疑Childan故事的真实性。因此,他将询问有关Childan所谓的“个人珍藏”项链的一些问题。

这个“个人珍藏”是一个由m个“01-字符串”组成的多重集合S。

“01-字符串”是包含n个字符“0”和“1”的字符串。例如,如果n=4,则字符串“0110”、“0000”和“1110”都是“01-字符串”,但“00110”(有5个字符而不是4个)和“zero”(不允许的字符)则不是。

注意,多重集合S可以包含相同的元素。

经常,Kasoura先生会提供一个“01-string”t,并询问Childan有多少个字符串s在多重集合S中,使得对于对(s,t),其“Wu值”不大于k。

Mrs. Kasoura和Mr. Kasoura认为,如果si = ti(1≤i≤n),则字符对的“Wu值”等于wi,否则为0。字符对的“Wu值”是每个字符对的“Wu值”的总和。请注意,每个“01-字符串”的长度都是相等的n。

例如,如果w=[4,5,3,6],“Wu”(“1001”,“1100”)为7,因为这些字符串仅在第一和第三位置上具有相等的字符,因此w1 + w3 = 4 + 3 = 7。

您需要帮助Childan回答Kasoura先生的查询。也就是找到多重集合S中的字符串数量,使得对于对的“Wu值”不大于k。

输入

第一行包含三个整数n、m、q(1≤n≤12,1≤q,m≤5×105)-“01-strings”的长度,多重集合S的大小和查询数量。

第二行包含n个整数w1、w2、…、wn(0≤wi≤100)-第i个字符的值。

每个接下来的m行包含长度为n的“01-string”s - 多重集合S中的字符串。

每个接下来的q行包含长度为n和整数k(0≤k≤100)的“01-string”t - 查询。

Examples

Input

Copy

2 4 5
40 20
01
01
10
11
00 20
00 40
11 20
11 40
11 60

Output

Copy

2
4
2
3
4

Input

Copy

1 2 4
100
0
1
0 0
0 100
1 0
1 100

Output

Copy

1
2
1
2

题解:
串的数量和询问的次数都很多,说明答案应该会被预处理,但是这么大的数据该怎么预处理

我们可以观察到n的范围只有12,并且每个位置只会有01

我们枚举所有串2^12 * 2^12

再加上比较的过程*12,时间复杂度大概在1e8,而评测机一般1s可以跑1e8次,题目给我们限制的是2s,

所以刚好可以过

#include <cstdio>
#include <cstring>
#include <algorithm>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
typedef long long ll;
 #define int long long
typedef pair<int,int> PII;
typedef unsigned long long ULL;
const int N = 3e5 + 10;
int mod = 1e9 + 7;
int cnt[N];
int w[N];
int sum[80004][104];
void solve()
{
	int n,m,q;
	cin >> n >> m >> q;
	for(int i = 1;i <= n;i++)
	{
		cin >> w[n - i];
	}
	for(int i = 1;i <= m;i++)
	{
		string s;
		cin >> s;
		int res = 0;
		for(int j = 0;j < s.size();j++)
		{
			res = res*2;
			if(s[j] == '1')
			{
				res++;
			}
		}
		cnt[res]++;
	}
	for(int i = 0;i < (1 << n);i++)
	{
		for(int j = 0;j < (1 << n);j++)
		{
			int res = 0;
			for(int k = 0;k < n;k++)
			{
				if((i&(1 << k)) == (j&(1 << k)))
				{
					res += w[k];
				}
			}
			if(res <= 100)
			sum[i][res] += cnt[j];
		}
		for(int j = 1;j <= 100;j++)
		sum[i][j] += sum[i][j - 1];
	}
	while(q--)
	{
		string s;
		int x;
		cin >> s >> x;
		int res = 0;
		for(int j = 0;j < s.size();j++)
		{
			res = res*2;
			if(s[j] == '1')
			{
				res++;
			}
		}
		cout << sum[res][x] <<"\n";
	}
}
signed main()
{
	ios::sync_with_stdio(0 );
	cin.tie(0);cout.tie(0);
	int t = 1;
//	cin >> t;
	while(t--)
	{
		solve(); 
	}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/548475.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

k8s系列(三)——补充内容

k8s架构补充 高可用集群副本数最好是 > 3 奇数个 master节点 scheduler 调度器&#xff0c;负责介绍任务&#xff0c;选择合适的节点进行分配任务 决定将任务分配至哪个node节点中&#xff0c;与api server进行交互 api server 所有服务访问的统一入口 压力巨大&…

计算机组成原理-计算机系统概述

目录 一&#xff0c;基本组成 二、各部件工作原理 2.1存储器 2.2运算器 2.3控制器 2.4输入设备 2.5输出设备 一条指令的工作原理 三、计算机系统的层次结构 三种基本语言 四、计算机性能指标 一&#xff0c;基本组成 “存储程序”的概念&#xff0c;指将指令以二进制代码的…

English Learning - L3 作业打卡 Lesson2 Day14 2023.5.18 周四

English Learning - L3 作业打卡 Lesson2 Day14 2023.5.18 周四 引言&#x1f349;句1: A brown out is an expression for a reduction in electric power.成分划分弱读连读爆破语调 &#x1f349;句2: Brown outs happen when there is too much demand for electricity.成分…

字节薪酬体系曝光,实在是太强了,真的不服不行...

曾经的互联网是PC的时代&#xff0c;随着智能手机的普及&#xff0c;移动互联网开始飞速崛起。而字节跳动抓住了这波机遇&#xff0c;2015年&#xff0c;字节跳动全面加码短视频&#xff0c;从那以后&#xff0c;抖音成为了字节跳动用户、收入和估值的最大增长引擎。 自从字节…

波奇学Linux:时间指令,查找指令,压缩指令,热键

日志&#xff1a;时间&#xff0c;日志等级&#xff0c;日志具体信息&#xff0c;其他信息用来记录程序信息 时间指令 data指令显示时间 修改时间显示格式 时间戳&#xff1a; date %s 时间戳&#xff1a;统一的时间格式&#xff0c;因为有时差原因&#xff0c;时间相对于各…

Python系列之文件操作和函数

感谢点赞和关注 &#xff0c;每天进步一点点&#xff01;加油&#xff01; 目录 一、文件操作 1.1 Shell里的文件操作 1.2 Python文件操作的步骤 1.3 Python打开和关闭文件 1.3.1 open 函数 1.4 文件定位 1.5 Python文件访问模式 1.5.1 只读模式 1.5.2 只写模式 1.5.…

大厂笔试真题解析

文章目录 2023/5/6 华为第一题&#xff1a;喷墨水2023/5/16 华为第二题&#xff1a;表达式计算 2023/5/6 华为第一题&#xff1a;喷墨水 模拟题&#xff0c;代码未提交&#xff0c;样例过 输入处理&#xff1a;双字节十六进制转二进制 十六进制转十进制再转二进制&#xff0c;…

Baklib盘点:企业做知识管理时遇到的困惑类型有哪些?

作为一家专注于企业知识管理的公司&#xff0c;Baklib深入了解了企业在进行知识管理时可能遇到的各种困惑。在此&#xff0c;我们盘点了企业做知识管理时遇到的困惑类型&#xff0c;并就如何解决这些困惑提出了建议。 企业做知识管理时遇到的困惑类型 知识流失 许多企业面临…

跨时钟域数据同步

跨时钟信号直接传输在信号跳变时违背本地时钟域的时序要求&#xff08;建立时间约束&#xff0c;保持时间约束&#xff09;&#xff0c;容易产生亚稳态&#xff0c;无法确定亚稳态何时结束以及结束时保持在何种状态上。 用同步器抑制亚稳态的往下传播的概率&#xff0c;根据情…

一文详解Pytorch中的Tensor操作

何为Tensor&#xff1f; Tensor的英文原义是张量&#xff0c;PyTorch官网对其的定义如下&#xff1a; 也就是说&#xff0c;一个Tensor是一个包含单一数据类型的多维矩阵。通常&#xff0c;其多维特性用三维及以上的矩阵来描述&#xff0c;例如下图所示&#xff1a;单个元素为…

CloudCompare二次开发之如何通过PCL进行点云曲面重建?

文章目录 0.引言1.CloudCompare界面设计重建(reconstruct)按钮2.使用贪婪三角化进行曲面重建&#xff08;Surface_Rec&#xff09; 0.引言 因笔者课题涉及点云处理&#xff0c;需要通过PCL进行点云数据一系列处理分析&#xff0c;查阅现有网络资料&#xff0c;对常用PCL点云曲面…

SD webui 手记

源代码地址&#xff1a; https://github.com/AUTOMATIC1111/stable-diffusion-webui git拉取代码后&#xff0c;windows下支持根目录直接运行 webui-user.bat&#xff0c;前提本地需要先安装python环境&#xff0c;略过&#xff0c;我们直接跑源码玩 安装依赖 pip install …

Linux 指令(二)+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 对于指令的学习&#xff0c;是一个漫长的过程&#xff0c;因为一般在后台服务器上为了减少刷新图形化界面消耗资源都是呈现出命令行的形式&#xff0c;对此我们必选要掌握好Linux的指令。今天我们接着上一章的指令来继续学习更多的指令。 话不多说安全带系好&#xff0c;发…

字节给我狠狠上了一课:危机来的时候你连准备时间都没有!

各大互联网公司的接连裁员&#xff0c;政策限制的行业接连消失&#xff0c;让今年的求职雪上加霜&#xff0c;想躺平却没有资本&#xff0c;还有人说软件测试岗位饱和了&#xff0c;对此很多求职者深信不疑&#xff0c;因为投出去的简历回复的越来越少了。甚至还有不少大厂直接…

【Linux】基本指令,拥抱Linux的第一步

[Linux]常见指令 Linux基本指令指令的本质ls指令pwd指令cd指令touch指令mkdir指令(重要)rmdir&&rm指令(重要)man指令&#xff08;重要&#xff09;cp指令&#xff08;重要&#xff09;mv指令&#xff08;重要&#xff09;重定向cat指令more指令less指令&#xff08;重要…

【C++模板】——template

C模板 模板的引入函数模板函数模板的实例化模板参数匹配原则 类模板类模板的定义格式类模板的实例化 &#x1f340;小结&#x1f340; &#x1f389;博客主页&#xff1a;小智_x0___0x_ &#x1f389;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1…

Unity之OpenXR+XR Interaction Toolkit如何自定义VR按键

一.前言 上一篇文章我们介绍了Unity的新版本InputSyste如何使用,这一篇文章,我们主要说一下,在新版基于OpenXR的VR项目中,如何自定义VR按钮的功能。 二.Samples介绍 我们使用XR Interaction Toolkit插件时,它的几个Samples是非常有用的。如下所示: 它们分别是: 1.Sta…

MySQL 教程---菜鸟教程

文章目录 MySQL 教程登录 MySQL数据库操作数据类型创建数据表删除数据表插入数据查询数据 MySQL 教程 关系型数据库管理系统&#xff08;RDBMS&#xff09; RDBMS 术语&#xff1a; 数据库&#xff1a;数据库是一些关联表的集合。数据表&#xff1a;表是数据的矩阵。在一个数…

python 中常见变量类型

数值 a 10 b 123 … 字符串 在python中 用单引号’‘和双引号""括起来的都是字符串,不使用引号括起来的不是字符串&#xff0c;字符串是使用最多的数据类型&#xff0c;用来表示一段文本信息。 比如&#xff1a; a ‘123’ b “123” 字符串之间可以用加法运算…

dubbo处理自定义异常

dubbo处理自定义异常 背景 在实际项目中&#xff0c;我们不可避免地需要使用自定义的异常&#xff0c;一般这个异常会继承RuntimeException&#xff0c;然后我们通过RestControllerAdvice注解&#xff0c;拦截业务异常类&#xff0c;做一些处理&#xff0c;但是在使用dubbo构…