bitset HDU6515 Coding Problem
Coding Problem
题目大意:给你一个字符串,每个字母的ASCII二级制颠倒过来组成一个01数组。
然后这个数组每六位组成一个数字的ASCII输出
bitset
此处参考了这份博客:https://www.cnblogs.com/magisk/p/8809922.html
bitset大概就是一个二进制数组,每个位置只占1bit,想一下状压dp?
bitset的原理大概是将很多数压成一个,从而节省空间和时间(暴力出奇迹)
构造
构造时可以直接指定大小,也可以使用string和字符串数组来进行构造
需要注意的是,在使用字符串构造时,字符串中只能包含01,否则会抛出异常
bitset<4> bitset1; //无参构造,长度为4,默认每一位为0
bitset<8> bitset2(12); //长度为8,二进制保存,前面用0补充string s = "100101";
bitset<10> bitset3(s); //长度为10,前面用0补充
char s2[] = "10101";
bitset<13> bitset4(s2); //长度为13,前面用0补充cout << bitset1 << endl; //0000
cout << bitset2 << endl; //00001100
cout << bitset3 << endl; //0000100101
cout << bitset4 << endl; //0000000010101
性质
它支持所有的位运算操作:^
&
|
>>
等
bitset的函数
bit.size() 返回大小(位数)
bit.count() 返回1的个数
bit.any() 返回是否有1
bit.none() 返回是否没有1
bit.set() 全都变成1
bit.set(p) 将第p + 1位变成1(bitset是从第0位开始的!)
bit.set(p, x) 将第p + 1位变成x
bit.reset() 全都变成0
bit.reset(p) 将第p + 1位变成0
bit.flip() 全都取反
bit.flip(p) 将第p + 1位取反
bit.to_ulong() 返回它转换为unsigned long的结果,如果超出范围则报错
bit.to_ullong() 返回它转换为unsigned long long的结果,如果超出范围则报错
bit.to_string() 返回它转换为string的结果
题解
需要注意的坑点是这道题不能有换行符,行尾有空格
代码如下
#include <bits/stdc++.h>
using namespace std;string change(char c)
{bitset<8> b((int)c);stringstream str;string s;str << b;str >> s;reverse(s.begin(), s.end());return s;
}int main(void)
{string s;cin >> s;for (int i = 0; i < s.size(); i+= 3) {string ts = change(s[i]) + change(s[i + 1]) + change(s[i + 2]);for (int j = 0; j < ts.size(); j+= 6) {bitset<6> B(ts, j, 6);printf("%d ", B);}}return 0;
}
bitset HDU6515 Coding Problem相关推荐
- Coding Problem 模拟
Problem Description Here is the logic.I am the brother of mata Chuang.Mata chuang is the brother of ...
- 2019中山大学程序设计竞赛
Problem A 题意:有一个长度为n的随机排列以及m个min.max操作.问最后一个操作的结果的期望 * n! 的结果. 题解: 枚举k,考虑计算结果 >= k 的排列有几个. 此时数字本质 ...
- 自学成才翁_作为一名自学成才的开发者从“我的旅程”中吸取的教训
自学成才翁 The path of the self-taught developer is tough and filled with uncertainty. There is no straig ...
- 软件访问转向本地_我是如何从完整的初学者转向软件开发人员的,以及如何做到的...
软件访问转向本地 by Madison Kanna 麦迪逊·卡纳(Madison Kanna) 我是如何从完整的初学者转向软件开发人员的,以及如何做到的 (How I went from comple ...
- 在给定总和K的二叉树中找到级别
Description: 描述: The article describes how to find the level in a binary tree with given sum K? This ...
- 什么样的代码是好代码_什么是好代码?
什么样的代码是好代码 编码最佳实践 (Coding Best-Practices) In the following section, I will introduce the topic at ha ...
- python 科学计算机_在这个免费的虚拟俱乐部中学习计算机科学和Python的基础知识
python 科学计算机 Are you learning how to code in 2020? 您是否正在学习2020年编码? Or are you already working as a d ...
- 软件工程专业实习可以做什么_想要获得软件工程实习机会? 这里有一些想法可以帮助您...
软件工程专业实习可以做什么 by Tatiana Doyle 塔蒂亚娜·道尔(Tatiana Doyle) 想要获得软件工程实习机会? 这里有一些想法可以帮助您. (Looking to land a ...
- 我为期一个月的GitHub的经验教训
by JS 由JS 我为期一个月的GitHub的经验教训 (Lessons from my month-long GitHub commit streak) "I want to learn ...
最新文章
- 请注意更新TensorFlow 2.0的旧代码
- webstorm更改scss输出路径
- Java多线程知识点整理(线程池)
- python中内存管理机制一共分为多少层_python 内存管理机制
- 5.7 matlab数据插值与曲线拟合的比较
- imageNamed和imageWithContextOfFile的区别?哪个性能高
- 施一公:为什么要独立思考、为什么要尊重科学?
- 嵌入网站的挖矿代码——Webmine
- Vue整合nginx:(1)开发环境npm run dev下,通过nginx解决前后端分离造成的跨域问题
- 配置nginx作为下载站点
- Angr安装与使用之使用篇(十五)
- Qt 批量替换指定文本为目标文本
- yuki翻译器钩子_YUKI游戏翻译工具下载 YUKI GALGAME翻译器v0.14 最新版
- 实用前端可视化工具库
- 【CSS】浅谈 CSS 中常用的相对长度单位 em, rem
- Latex参考文献的代码
- 新闻网站项目静态页面--详情页
- Excel教程:这三个excel筛选技巧,你肯定没用过 -Excel入门
- java mqtt发布_使用kura或MQTT将消息发布到kapua
- 科普:网格屏是什么意思?LED网格屏怎么安装
热门文章
- 【剑指offer】顺时针打印矩阵
- 如何在使用新技术前评估其浏览器兼容性
- 【转】statfs获得硬盘使用情况 模拟linux命令 df
- linux+postfix+extmail+dovecot搭建邮件服务器
- JAVA条件表达式的陷阱
- 社会生活中常用的14条著名法则
- 以太坊,EOS和其他DApps的总数达到2,432,但没有大规模采用
- css 网格布局_我从CSS网格布局中学到的东西
- react 快速上手开发_React中测试驱动开发的快速指南
- ai css 线条粗细_如何训练AI将您的设计模型转换为HTML和CSS