【2018寒假集训Day 1】【位运算】生成字符串

GESP C++三级试卷2023年6月 GESP C++三级试卷2023年6月+参考答案 阅读详情

生成字符串(strs)
【问题描述】
假设字符串只由字符“0”,“1”,“”组成,其中字符“”表示该字符可由
字符“0”或“1”替代。
现有一些字符串,根据这些字符串生成所有可生成的字符串。如:
{10,1,0 }可生成{10,01,11,00 }
{101,001,*01}可生成{101,001}
注意后一个例子中“*01”并没有生成新的字符串。
【输入格式】strs.in
第一行是两个整数 m,n(1≤m≤15,1≤n≤2500)。m 表示字符串的长度,n
表示字符串的个数。
以下 n 行每行各有一个字符串。文件中各行的行首、行末没有多余的空格。
【输出格式】strs.out
一个整数,表示所能生成的字符串的个数。
【输入样例】
2 3
10
*1
0*
【输出样例】
4
【解题思路】
显而易见,这题就是枚举+去重,枚举很简单,BFS可以轻松解决,但是判重是本题的重点,生成字符串后再往前一个一个比对是否出现过很浪费时间。
所以,可以利用把字符串压缩成一个整数,这些字符串都是01串,我们可以将其转换成数字后转换为十进制整数,再用数组计数,可以大幅度缩小需要的空间。
【参考程序】

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int m,count[16],a[70000],sum,n;
string st;
int change(string num)
{
    int ans=0;
    for (int i=0;i<m;i++)
    if (num[i]=='1') ans+=count[i];
    return ans;
}
void dfs(string st,int p)
{
    if (p>=m) 
    {
        int tmp=change(st);//转换进制 
        a[tmp]++;//数组计数 
        return ;
    }
    if (st[p]!='*') 
    {
        dfs(st,p+1);
        return ;    
    }//不是星号,直接往下一层。 
    st[p]='1';//用1代替星号 
    dfs(st,p+1);
    st[p]='0';//用0代替星号 
    dfs(st,p+1);
}
int main()
{
    freopen("strs.in","r",stdin);
    freopen("strs.out","w",stdout);
    cin>>m>>n;
    count[0]=1;
    for (int i=1;i<m;i++) count[i]=count[i-1]<<1;//为二进制转换做准备 
    for (int i=1;i<=n;i++)
    {
        cin>>st;
        dfs(st,0);
    }
    for (int i=0;i<count[m-1]*2;i++) if (a[i]>0) sum++;//统计 
    cout<<sum;
    return 0;
}
读入字符串,根据要求输出0或1 题目 从键盘读入一个字符串,若遇到字母,则输出0; 若遇到数字则输出1;否则不输出。例如:输入ab2&amp;3@c,输出00110 代码 #include &lt;stdio.h&gt; #include &lt;string.h&gt; #define max 100 int main(){ char a[max]; int i=0; printf("请输入字符串:"); gets(... 阅读详情

相关推荐

SAP S/4HANA 物料分类账(ML)/实际成本核算(Actual Costing)——底表全景 & CKMLCP 执行后数据变化

插入 ML 重估凭证行项目:Dr/Cr 库存科目(期末库存调整)、Dr/Cr COGS/消耗科目(消耗重估)、Cr/Dr ML 重估抵消科目(PRY/PRV 类逻辑)also STPRS/VERPR/PEINH/LBKUM 等(但 S/4 很多“真理”在 ACDOCA)MLPP / MLPPF / MLCR / MLCRF / MLCD / CKMLMV003/004 等。Material Ledger Document(行项目明细:收货/发票价差/结算写入/重估相关)间接(PUP在CKMLCR;

weixin_52203666的博客 577

NOIP模拟 生成字符串

  【问题描述】           我们规定涉及的字符串只由字符"0","1","*"组成,其中字符"*"表示该字符可由字符"0"或"1"替代           现有一些固定长度的字符串,根据这些字符串生成所有可生成的相同长度的不重复的字符串。如:           {10,*1,*0}可生成{10,11,01,00}           {101,001,*01}可生成{

Michael_GLF的博客 414

机器人动力学与控制学习笔记(一)————机器人控制概述

一、概述 1、机器人控制的目的 对自由运动机器人来说,控制的目的是要控制机器人手端的位置和姿态(以后统一简称为位姿),即所谓位置控制问题。这时希望机器人手端所达到的位置称为期望位置或期望轨迹。期望轨迹可以在机器人任务空间中给出,也可以通过逆运动学关系转化为机器人关节空间中的期望轨迹。期望轨迹通常有两种形式:一种是一个固定位置(即固定点),另一种是一条随时间连续变化的轨迹。自由运动机器人位置控制的目的,是要使机器人手端从任意起始位置出发都能到达期望轨迹。当期望轨迹是固定点时的位置控制称为定...

冰与火的青春的博客 6879

<Sicily> 生成字符串

一、题目描述 假设一个字符串只由字符‘0’,‘1’,‘?’组成,其中字符‘?’表示该字符可由字符‘0’或‘1’替代。 现有一些字符串,根据这些字符串生成所有可生成的字符串。 如:{10,?1,0? }可生成{10,01,11,00} {101,001,?01}可生成{101,001} 注意后一个例子中‘?01’并没有生成新的字符串。 二、输入 输入包含多组测试数据。 每组数据的第...

晨曦的博客 333

[Multisim][模电实验]简易函数信号发生器的设计与实现_北京邮电大学2019级信通院电子电路实验下

本文记述了笔者设计并实现以±12V供电电压输出1KHZ~10KHZ频率连续可调的方波、三角波和正弦波的过程。其中,方波输出电压峰峰值为12V(误差<20%),占空比可调、三角波输出电压峰峰值为8V(±20%),正弦波输出电压峰峰值≥1V。

lgc0208的博客 4万+

iPhone免越狱Git服务器搭建教程-iSH

iPhone免越狱Git服务器搭建教程

jts666的博客 4427

2018/06/26测试

算法标签:模拟+搜索+动态规划+哈希

forever_dreams的博客 441

YOLO26 多任务统一架构:检测 / 分割 / 姿态 / OBB 设计

YOLO26提出了一种多任务统一架构,整合了目标检测、实例分割、姿态估计和旋转框检测(OBB)四大计算机视觉任务。该架构采用共享Backbone和Neck的设计,配合轻量级任务特定Head,解决了传统方法中多模型并行带来的高开发成本、大内存占用和低推理效率问题。核心设计包括:1)共享特征提取层实现参数复用;2)模块化Head结构支持灵活任务组合;3)统一接口实现单模型多任务处理。实验表明,该架构在保持各任务性能的同时显著提升了系统效率,为多任务视觉系统提供了新的实现范式。

一键难忘的博客 700

省实集训总结 DAY1(深搜+DP+宽搜)

问题 E: 生成字符串(strs) 【问题描述】 假设字符串只由字符“0”,“1”,“”组成,其中字符“”表示该字符可由字符“0”或“1”替代。 现有一些字符串,根据这些字符串生成所有可生成的字符串。如: {10,1,0 }可生成{10,01,11,00 } {101,001,*01}可生成{101,001} 注意后一个例子中“*01”并没有生成新的字符串。 【输入格式】 第一行是两个整数m,...

C_plus_的博客 489

YOLO项目从零开始:超详细运行教程(图文保姆级教学)

至此,我们已经完整跑通了YOLO项目的安装与启动流程,无论你是零基础小白还是刚入门的AI新兵,只要按部就班操作,也能轻松实现目标检测项目的落地。

一键难忘的博客 4797

【2025华为OD机考真题】- 简易内存池(B卷-200分)(C版)

🔔本文收录于「最新最全华为OD机试真题(C版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅

**My Coding Family** 961

问题 E: 【字符串】生成字符串

你的忏悔或许会让你心安,但未必别人如此。 题目描述 假设字符串由字符“0”,“1”,“*”组成,其中字符“*”表示该字符可由字符“0”或“l”替代。 现有一些字符串,根据这些字符串生成所有可生成的字符串。如: {10,*1,0*)可生成{10,01,11,00} {101,001,*01)可生成{10l,001) 注意后一个例子中“*01”并没有生成新的字符串。 输入 第1行是两个整...

0k-ok 1083

AgentScope Java 2.0 项目实战: 从零构建自己的个人AI助手“小龙虾“

本文系统介绍如何基于Spring Boot WebFlux、React 18和TypeScript,从零搭建一个本地化的个人AI助手管理平台——AgentScope Paw。项目支持多Agent创建与管理、SSE流式对话、工作区文件CRUD、技能市场、子智能体孵化、AI辅助起草Agent配置等核心功能,并深度集成钉钉、企业微信、飞书、GitHub等IM通道。

program哲学 1423

<OJ_Sicily>生成字符串

回溯算法求解生成字符串

Vipin_Pei的博客 1221

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

2018年7月暑假搜索与剪枝专题(1)

       这个暑假,老师布置了4套《搜索与剪枝》的题目,现在完成了第一套,先写个总结。。。(特别皮)        PS:此文章默认读者学过DFS的,否则出门左转"百度优先搜索"学DFS。。。 问题 A: 桐桐的全排列 时间限制: 1 Sec  内存限制: 128 MB 题目描述 今天,桐桐的老师布置了一道数学作业,要求列出所有从数字1到数字n的连续自然数的排列,要求所产生的任...

SHIP&GOAT的博客 1442

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

API 字符与字符串的运用(1)

public class StringDemo1 {     public static void main(String[] args) {         /*         //Character字符包装器类         char number = '3';         char letter = 'f';         System.out.println("这些都

714

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

回溯法:字符串转换

问题描述:        通过栈交换字母顺序。给定两个字符串,要求所有的进栈和出栈序列(i表示进栈,o表示出栈),使得字符串2在求得的进出栈序列的操作下,变成字符串1。输出结果需满足字典序。例如TROT 到 TORT: [ i i i i o o o o i o i i o o i o ]   输入 给定两个字符串,第一个字符串是源字符串,第二个字符是目标目标字符串。  

qq_18415779的专栏 1233

C++笔试题汇总(6)

1.引言本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分 析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最 简单的strcpy 函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个 strcpy 函数吗?我们都觉得自己能,可是我们写出的strcpy 很可能只能拿到10 分中的2 分。 读者可从本文看到strcpy 函数从2 分到1

Discussion2004的专栏 5万+

出栈顺序问题

规律是:答案中出栈的第一个元素是在原来的次序中是第几个,那么他的前面的元素必然都还在栈中。 如EDCBA是可能的,因为E在第一个,E是原序列中的最后一个,那ABCD必在栈中只能按栈规则出,即DCBA。 如DCEAB的顺序是不可能的,因为如果D是首个,那么ABC必在栈中,无论E在什么时候入栈和出栈,D之后的出栈顺序必有CBA的大致顺序,可见不会出现这种顺序。...

coolwriter的博客 892

100道经典的c语言面试题

100 条经典C语言笔试题目   题目来源: 1、中兴、华为、慧通、英华达、微软亚洲技术中心等中 外企业面试题目; 2、C 语言面试宝典(林锐《高质量编程第三版》)。 说明: 1、部分C 语言面试题中可能会参杂部分和C++ 相关的知 识,为了保持题目的灵活性故保留,但选题最终还是 会以C 语言题目为主体; 2、以上公司的面试题目已成为国内中小型企业公司出题 模板; 3、由于本人的能力有限加上...

wjw博客 14万+

C++判断出栈顺序

C++判断出栈顺序

coolsunxu的博客 1722

c语言一由0和1构成字符串,//C语言:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回。...

//函数fun:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回。1 #include 2 #pragma warning (disable:4996)3 #define N 164 /**********************found***********************/5 int fun( char s[]) //形参不要使用定值6 { ...

weixin_39567169的博客 1073

python思考题实验题整理

思考题实验题整理 第2章 思考题 下列哪些是合法的变量名 A、6a2b、aBc、abc-123、ab_123、_ _、hello world 合法:A、aBc、ab_123 思考题:#TempConvert_1.py 让用户输入摄氏度C,输入对应的华氏度F 公示:F = C *1.8 + 32 样例: 请输入摄氏度:25 25对应的华摄度为:77.0 C = eval(input("请输入摄氏度:")) F = C * 1.8 + 32 print(C,"对应的华摄度为:",F) 程序结

weixin_40184069的博客 5万+

一道字符串的题

题目描述 对于字符串str,其中绝对不含有字符’.’和‘*’。再给定字符串exp,其中可以含有’.’或’‘*’,’*’字符不能是exp的首字符,并且任意两个’*‘字符不相邻。exp中的’.’代表任何一个字符,exp中的’*’表示’*‘的前一个字符可以有0个或者多个。请写一个函数,判断str是否能被exp匹配(注意:输入的数据不保证合法,但只含小写字母和‘.’和‘*’)。 package ...

xinshuai111的博客 642
上一篇: 【2018寒假集训 Day1】【位运算】桐桐的运输方案
下一篇: 【2018寒假集训 Day1】【位运算】翻转游戏
苟岂
博客等级 码龄10年 20粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值