codeforces 1017D The Wu(状压+预处理)

KiCad 7.0 + 嘉立创打样:从原理图到实物,打造你的双LLCC68 LoRa串口透传板 本文详细介绍了使用KiCad 7.0设计双LLCC68 LoRa串口透传板的完整流程,从原理图设计到嘉立创打样。重点解析了AVR+LLCC68组合的优势、双模块布局的电磁兼容设计、SPI接口配置及射频走线技巧,并提供了实测数据和常见问题解决方案,帮助开发者高效实现物联网设备的低功耗远距离通信。 阅读详情

传送门:codeforces 1017D

题意:给你n m q,表示在这一组数据中所有的01串长度均为n,然后给你一个含有m个元素的multiset,之后有q次询问。每次询问会给你一个01串t和一个给定常数k,让你输出串t和multiset里面多少个元素的“Wu”值不超过k。对于“Wu”值的定义:如果两个01串s和t在位置i上满足s[i]==t[i],那么加上w[i],处理完s和t的所有n位之后的结果即为这两个01串的“Wu”值。

样例解释:第1行为n,m,q;第2行为w[1]...w[n],表示01串第i位的权值为w[i];之后m行为multiset里的m个01串;之后q行为q次询问。以样例1中的第一次询问为例:t=00,k=20。与multiset中的每个元素比较(假设第i个元素为m[i]):

m[1]:01,与00相同的是第一位,所以权值s=w[1]=40;

m[2]:01,与00相同的是第一位,所以权值s=w[1]=40;

m[3]:10,与00相同的是第二位,所以权值s=w[2]=20;

m[4]:11,没有某一位与00相同,所以权值s=0;

而上述四种比较结果中s<=20的是后两种,所以输出2。之后的询问以此类推。

思路:发现m,q都特别大(1e5),而n只有1-12,即长度最长的01串只有12位,所以可以考虑状压来表示每一个01串的状态,共有2^12种状态。这样可以通过枚举询问中t和multiset中s转化为10进制数后的值来进行预处理,而每一次要处理n位,所以复杂度为O((2^n)*(2^n)*n),最坏情况大约是2e8。保存一个二维数组sum[4096][100],sum[i][j]表示询问中输入的t对应的二进制数i在与multiset中的元素s匹配时结果为j的元素个数。详见代码。

AC代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int w[15],cnt[4100],sum[4100][105];
void solve(){
    int n,m,q;scanf("%d%d%d",&n,&m,&q);
    for(int i=1;i<=n;i++) scanf("%d",&w[i]);
    for(int i=1;i<=m;i++){
        char s[15];scanf("%s",s);
        int x=0;
        for(int j=0;j<n;j++) if(s[j]=='1') x+=1<<(n-j-1);
        cnt[x]++;
    }
    for(int i=0;i<(1<<12);i++){
        for(int j=0;j<(1<<12);j++){
            if(!cnt[j]) continue;
            int x=0;
            for(int k=0;k<12;k++){
                if((i&(1<<k))==(j&(1<<k))) x+=w[n-k];
                if(x>100) break;
            }
            if(x<=100) sum[i][x]+=cnt[j];
        }
    }
    while(q--){
        char s[15];int k;scanf("%s%d",s,&k);
        int x=0;for(int i=0;i<n;i++) if(s[i]=='1') x+=1<<(n-i-1);
        int ans=0;for(int i=0;i<=k;i++) ans+=sum[x][i];
        printf("%d\n",ans);
    }
}
int main(void){
    solve();
    return 0;
}

 

LightTools中VBA宏的编写入门 LightTools和VBA联动 阅读详情

相关推荐

QDMA工程搭建/windows驱动编译与性能测试

请注意,根据您的目标操作系统,您可能需要在windows启动配置中启用测试签名的驱动程序,以便启用此驱动程序的安装。右键单击设备,选择更新驱动程序软件,然后选择构建的QDMA驱动程序的文件夹(通常为。创建一个新工程,在IP Catalog中搜索QDMA,双击创建qdma ip核。驱动程序安装安装驱动程序最简单的方法是通过Windows的“设备管理器”。如果系统提示未经验证的驱动程序发布者,请选择无论如何安装此驱动程序软件。本节主要介绍QDMA驱动在Windows系统的源文件、编译和安装过程。

qq_28455081的博客 2287

Codeforces Round 1017 (Div. 4)-H

思路:观察到,k的范围比较小,1e5之内,然后题目里面又跟其约数有关系,再加上4s的逆天时限,很自然又想到1e5之内的数的约数很少,最多几百个,考虑暴力枚举k每个约数,然后找到合法的位置(离l最近但是不超过r),可以先存一下每个a[i]出现的下标然后利用stl容器自带的二分解决,最后算一下贡献就做完了。知识点:惊人的观察力。

low_keysml的博客 334

不只是抓取:用五指灵巧手(ROH-A001/RH56)玩转ROS2下的力控与混合控制

本文深入探讨了在ROS2环境下使用五指灵巧手(ROH-A001/RH56)实现力控与混合控制的实战技巧。从硬件通信协议解析到ROS2节点开发,详细介绍了力感知架构、实时数据处理和混合控制策略,帮助开发者在Ubuntu系统中高效实现精密操作。通过鸡蛋抓取等实例,展示了力控技术在机器人灵巧操作中的关键作用。

weixin_28221501的博客 287

Codeforces Round 1017 (Div. 4) (A~E)

因此,敲击左边鼓的声音可能是 "L "或 “LL”,敲击右边鼓的声音可能是 "R "或 “RR”。接下来的每一天,瘟疫都会传播到***个健康的家庭,而这些家庭都紧挨着一个受感染的家庭。“LR”,那么点击的结果可能是 “LR”、“LRR”、"LLR "和 "LLRR "中的任何一个,但字符串 "LLLR "或 "LRL "则不可能。我们观察到对于n阶的行列式,副对角线的元素相同,因此只需要输出网格的第一行和最后一列,并在这之前输出MEX。敲击左边的鼓可以记录为 “L”,敲击右边的鼓可以记录为 “R”。

2301_79841364的博客 869

毫米波与太赫兹:十射线模型建模

Pt=1,只考虑地面和前后两面墙的反射,反射系数为0.7。用matlab设计程序并实现该功能。,总计考虑10条路径,求出接收功率随。

SupermarketX的博客 785

LS-DYNA超高速碰撞仿真入门:从SPH算法配置到铝靶板穿孔分析(附K文件模板)

本文详细介绍了使用LS-DYNA中的SPH(光滑粒子流体动力学)算法进行超高速碰撞仿真的完整流程。以铝弹丸撞击铝靶板为例,从SPH算法原理、LS-PrePost前处理、材料模型与状态方程设置,到接触定义、边界条件及K文件生成,提供了系统的入门指导和关键参数调试经验,帮助工程师高效模拟材料破碎、穿孔等极端变形问题。

h0i1j2k3l的博客 733

Codeforces Round 1017 (Div. 4)题解

性质,我们只需要知道,在二进制状态下,某一位的结果与其对应的其他数该位情况相关,并且与该位分别有多少个数相关,有多少个数答案就是几倍。因此,敲击左边鼓的声音可能是 “L” 或 “LL”,敲击右边鼓的声音可能是 “R” 或 “RR”。例如,如果 $p = $ “LR”,那么敲击的结果可能是 “LR”、“LRR”、“LLR” 和 “LLRR” 中的任何一个,但字符串 “LLLR” 或 “LRL” 则不可能。敲击左边的鼓可以记录为 “L”,敲击右边的鼓可以记录为 “R”。右侧,上下也是不同的,符合题意。

Silenceneo的ACM坎坷之路(已退役) 1530

StarUML最新版汉化与破解二合一教程:5分钟搞定永久使用

本文提供StarUML最新版的高效使用指南,涵盖从安装到深度定制的全流程优化方案。包括软件获取最佳实践、界面个性化设置、核心建模技巧、团队协作策略及性能优化建议,帮助架构师和开发团队提升UML建模效率。特别推荐版本控制集成和文档自动化输出方案,适用于各类规模的项目开发。

weixin_42530732的博客 452

Codeforces 1017A The Rank

#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;math.h&gt; #include &lt;string&gt; using namespace std; int n; int main() { scanf("%d", &amp;n); in...

Polanwind 175

【硬刚Hadoop】HADOOP MAPREDUCE(1):概述

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的Hadoop部分补充。 1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 2MapReduce优缺点 2.1 优点 1)MapReduce易于编程 它简单的实现一些接口,就可以完成一个分布式程序..

微信搜:import_bigdata,大数据领域硬核原创作者 463

基于MATLAB的小波包分解(WPD)算法详解

本文详细介绍了基于MATLAB的小波包分解(WPD)算法。WPD作为信号处理领域的重要技术,继承并发展了小波分析的优点,通过正交镜像滤波器组将信号分解为不同频率子带,形成完整的二叉树结构。相比传统小波变换,WPD具有更精细的频带划分、自适应基选择能力和更高的灵活性,特别适合分析非平稳信号。文章系统阐述了WPD的数学原理、算法实现流程及其在机械故障诊断、生物医学信号处理等领域的应用。通过MATLAB代码示例展示了WPD的具体实现方法,并分析了不同参数设置对分解效果的影响,为工程实践提供了有价值的参考。

qq_42212808的博客 292

CodeForces - 1017D The Wu CodeForces 打表预处理

题意:给你m个长度为n的01串,和n个价值wi,代表如果一个01串和某个给定的01串如果第i位相同,那么这两个字符串所匹配的值就+wi,有q个询问,每次询问一个01串 和一个数k,求该串与哪些给定的串匹配值不超过k。输出其数量。 这个题数据量如果小,就是个水题,但是n是12,m和q都是5e5,k最大为100,数据量有点大,但是还是水题,为什么,因为01串最长才12,一共也才4000种状态,k最大...

ccsu_cat 325

国科大学习资料--计算机视觉--期末考试解析

国科大学习资料–计算机视觉(胡占义)–期末考试解析 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

无名何许人的博客 2467

CodeForces - 1017D Round #502 D. The Wu(状压预处理)

D. The Wu time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Childan is making up a legendary story and trying to sell...

weixin_30341745的博客 116

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

codeforces 1017 problem D. The Wu

D. The Wu time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Childan is making up a legendary story and trying to sell his forgery —...

JiaYao的博客 384

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Codeforces 1017D. The Wu (暴力)

Description 很多时候,数据范围是一道题目的突破口,但有时,也会是出题人迷惑你的陷阱。 现在,cgg给你01串集合S,S中包含m个长度为n的01串。(01串就是只包含’0’,'1’两种字符的字符串) 给你一个长度为n的数组w,两个01串之间存在一种W值,两个01串的第i位相同的话,W值就会加上wi,否则W值加0。例如:w = [4,5,3,6],“1001”,"1100"的W值就等于w1+w3=4+3=7,因为两串的第一位和第三位相同。 现在要进行q次询问,每次给你一个长度为n的01串t和整数k,

chr1stopher 213

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

The Wu CodeForces - 1017D [状压+暴力]

题意:给出n, m, q,然后有n个权值w1…wnw1…wnw_1\dots w_n,然后输入m个长度为n的二进制串,q次询问,每次询问输入两个值,一个二进制串,一个k,询问的回答为,二进制串与所输入的m个串的“Wu”值小于等于k的数字有多少个。Wu值的计算:二进制中哪一位相同就加上哪一位相应的权值。 题解:考虑n最大为12,也就是最多有212=4096212=40962^{12} = 40...

Zephyr的博客 224

codeforces 1017 D. The Wu (预处理)

题目:http://codeforces.com/contest/1017/problem/D 题意:有m个长度为n的二进制数,对应每个位子都有个价值w[i],询问q次,包括一个二进制串和总价值k,询问的二进制串与每个提供的二进制串比较,若某位置上的数相同则加w[i],问总价值符合&lt;=k的串有几个。 思路:因为二进制串长度为n,n的范围很小,1&lt;&lt;12=4096,所以最多只...

hxc2101的博客 396

Codeforces 1017D The Wu(预处理)

题目链接:The Wu 题意 有一个元素个数为 mmm 的 010101 串集合,集合内的 010101 串可以重复出现,且每一个串的长度都为 nnn,对于两个 010101 串 sss 和 ttt,它们产生的价值为 vs,t=∑ni=1(si==ti?wi:0)vs,t=∑i=1n(si==ti?wi:0)v_{s,t}=\sum_{i=1}^n(s_i==t_i?w_i:0),现在有...

Dmaxiya 438

codeforces 1017D. The Wu 思维

链接 题意比较简单,对于两个长为N的串s,t,他们配对,会按照以下规则产生”Wu”的东西。规则如下: if si == ti : res += wi; 会得到一个综合。然后题目就是给你M个长度为N的串,以及有Q此询问,每个询问,给你个长度为N的T串,和整数K。问你M个串中有多少个串与该串匹配会产生小于K的”Wu” 思路:因为N&lt;=12,所以最多只有4096中串,对于每个N,我们找...

henuzxy 405

Codeforces 1017D The Wu(状态压缩+预处理)

题意: 给你n m q,表示在这一组数据中所有的01串长度均为n,然后给你一个含有m个元素的multiset,之后有q次询问。每次询问会给你一个01串t和一个给定常数k,让你输出串t和multiset里面多少个元素的“Wu”值不超过k。对于“Wu”值的定义:如果两个01串s和t在位置i上满足s[i]==t[i],那么加上w[i],处理完s和t的所有n位之后的结果即为这两个01串的“Wu”值。 ...

weixin_30707875的博客 128

The Wu CodeForces - 1017D(状态压缩)

The Wu CodeForces - 1017D Childan is making up a legendary story and trying to sell his forgery — a necklace with a strong sense of “Wu” to the Kasouras. But Mr. Kasoura is challenging the truth of C...

codeswarrior的博客 293

Codeforces Round #502 D. The Wu

题目地址:http://codeforces.com/contest/1017/problem/D 因为集合里和询问中有许多重复的,可以进行预处理,复杂度大概是4096 * 4096 * 12 1096ms的代码: #include&lt;bits/stdc++.h&gt; using namespace std; typedef long long LL; const int inf = ...

qq_36386435的博客 184

CodeForces - 1017D The Wu

题面在这里! 比较显而易见的暴力,O(2^(2n) + 2^n * 100) 就可以直接做了 #include<bits/stdc++.h> #define ll long long using namespace std; const int N=4105; #define pb push_back inline int getint(){ ...

weixin_30784141的博客 90

Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)-D. The Wu

D. The Wu http://codeforces.com/contest/1017/problem/D 题意:给你有n个字符的01串,串中每个位置都有一个价值,同事给你有m个字符串的集合,集合中的串有n个字符,也都是01串,给你q个询问,每行有一个01串,还有一个整数k,将这个串和集合中的串进行比较,如果两个串中某一个位置的字符相同,那么就加上这一位的价值,问你在集合s中有多少个串与这个...

Ma_tx 335

Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)D. The Wu

题目链接:http://codeforces.com/contest/1017/problem/D 题目大意:长度为n的01字符串。每一位都有他的价值a[i]. 如果两个01字符串对应位置的值相同,那么就可以加上这一位对应的价值。 现在给出m个01字符串,和q个询问。 对于每一个询问,问给出的字符串与m个字符串之间,价值小于k的个数。 题目思路:(1≤n≤12, 1≤q,m≤5⋅10^5...

qq_36782366的博客 308
上一篇: codeforces 987E Petr and Permutations(结论+逆序对)
下一篇: codeforces 1080D Olya and magical square (思维+数学)(模拟)
Stupid_Turtle
博客等级 码龄9年 25粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值