cxk不会二进制 (贪心)
cxk不会二进制
Description 最近cxk迷上了二进制,他很菜,有道简单的题不会做,挂在这里求大佬做一下:
以二进制形式给出两个数字:x,y。令s = x + y * 2 ^ k。输出能使 s 倒过来字典序最小的k。例如:x = 110(2进制),
y = 11(2进制) ,当k = 0 时,s0 = x + y * 1 = 1001(2进制) ,反转rev(s0) =
1001,当k=1时,s1 = x + y * 2 = 1100,反转rev(s1) = 0011。s1 < s0 (2 ^ k 是 2
的k次方的意思,乘法、加法都是十进制下的)字典序:比较它们的第一个字母。如果它们不同,那么第一个字母小的字符串就小于另一个字符串。如果第一个字母是相同的,然后比较第二个字母,以此类推。如果一个字符串没有更多的字母可供比较,而另一个字符串有更多的字母可供比较,那么第一个(较短的)字符串将被视为字母序小。(0<1)
例如:00 < 01 < 10 < 11.
Input 输入第一行为t,代表有t组样例(t <= 100)
每组样例包括两行:x、y。
x、y都为一个01字符串。字符串的长度<= 1e5
Output 输出t行,
每行一个数k 使得到的rev(s) 字典序最小
Sample Input 1
5
110
11
1010
11
10001
110
1
1
1010101010101
11110000
Sample Output 1
1
1
3
0
0
思路
怎么让颠倒过来最大,,那么就要让颠倒过来之后,要让第一个 1 的位置尽可能在后面的位置。。剩下的好难叙述,自己想吧
题解
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
const int Len = 1e6 + 5;
int main()
{
ios::sync_with_stdio(false); cin.tie(0);
//freopen("T.txt","r",stdin);
int t;
cin >> t;
string a,b;
while(t --)
{
cin >> a >> b;
int back_0 = 0;
for(int i = b.size() - 1; i >= 0; i --)
if(b[i] == '0')
back_0 ++;
else
break;
int ans = 0;
for(int i = a.size() - 1 - back_0; i >= 0; i --)
{
if(a[i] == '0')
ans ++;
else
break;
}
cout << ans << endl;
}
return 0;
}
cxk不会二进制 (贪心)的更多相关文章
- Codeforces Round #276 (Div. 1) A. Bits 二进制 贪心
A. Bits Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/484/problem/A Des ...
- [NOI2014]起床困难综合症(二进制+贪心)
题目 [NOI2014]起床困难综合症 做法 先用全\(0\)和全\(1\)去运行一下,再在满足\(m\)的限制下,贪心地从高位到低位选择即可
- hdu4435-charge-station(搜索+贪心)
题意&题解: http://www.cnblogs.com/wuminye/p/3245546.html 说实话看了题解觉得很简单,但是比赛的时候真的是毫无头绪. 然而印象中做过一道类似的二进 ...
- bzoj 2165: 大楼【Floyd+矩阵乘法+倍增+贪心】
1<<i的结果需要是long long的话i是long long是没用的--要写成1ll<<i--我别是个傻子吧 虽然写的是二进制贪心,但是我觉得二分可能更好写吧(但是会慢) ...
- LCA(倍增在线算法) codevs 2370 小机房的树
codevs 2370 小机房的树 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 小机房有棵焕狗种的树,树上有N个节点, ...
- 最近公共祖先 LCA 倍增法
[简介] 解决LCA问题的倍增法是一种基于倍增思想的在线算法. [原理] 原理和同样是使用倍增思想的RMQ-ST 算法类似,比较简单,想清楚后很容易实现. 对于每个节点u , ancestors[u] ...
- PYTHON_DAY_02
今日内容: 01 列表内置方法 '''''' ''' 列表: 定义: 在[]内,可以存放多个任意类型的值, 并以逗号隔开. 一般用于存放学生的爱好,课堂的周期等等... ''' # 定义一个学生列表, ...
- 实训day02 python
一.数据类型 列表: 定义:在[]内,可以存放多个任意类型的值,并以逗号隔开: 一般用于存放学生的爱好,课堂的周期等. 定义一个学生列表,可存放多个学生 students = ['A','B','C' ...
- day02 python函数基础
'''''''''列表: 定义: 在[]内,可以存放多个任意类型的值, 并以逗号隔开. 一般用于存放学生的爱好,课堂的周期等等...'''# 定义一个学生列表,可存放多个学生# list(['钱垚', ...
随机推荐
- Mac笔记本使用小道解答集
如何设置Mac默认应用程序 https://www.jianshu.com/p/0f912e6c846c 苹果本安装微软雅黑 下载微软雅黑字体Mac版 解压.ttf 拖拽放入 我的电脑/资源库/fon ...
- Xml反序列化记录
1.概述 公司项目遇到一个需要对接webservice的,webservice大部分用的都是xml来传输的,这里记录一下xml反序列化遇到的问题 2.xml工具类 xml序列化: public sta ...
- JAVA 16bit CRC_CCITT
JAVA 16bit CRC_CCITT public class CRC_CCITT { static int CRC16_ccitt_table[] = { 0x0000, 0x1189, 0x2 ...
- 2018-05-04 圣杯布局 and 双飞翼布局,display:flex
看到一个神奇的布局,啥都不说了 直接贴代码 要让main在中间,left在左边,可以通过Flex容器下的项目的属性“order”属性来设置:对于order属性:定义项目的排列顺序,越小越靠前,默认为0 ...
- href="#"和href=“javascript:void(0)”的区别
void是javascript中的关键字,该操作符指定要计算一个表达式但是不返回值. <a href="javascript:void(0);">点我没有反应的!< ...
- 数据挖掘入门系列教程(三)之scikit-learn框架基本使用(以K近邻算法为例)
数据挖掘入门系列教程(三)之scikit-learn框架基本使用(以K近邻算法为例) 简介 scikit-learn 估计器 加载数据集 进行fit训练 设置参数 预处理 流水线 结尾 数据挖掘入门系 ...
- 智慧港口——基于二三维一体化GIS的港口可视化监管平台
“智慧港口”是以现代化基础设施设备为基础,以云计算.大数据.物联网.移动互联网.智能控制等新一代信息技术与港口运输业务深度融合为核心,以港口运输组织服务创新为动力,以完善的体制机制.法律法规.标准规范 ...
- 基于osg的python三维程序开发(一)
背景: osg是一款开源的三维引擎,在过去多年的发展中积累了大量的用户,该引擎基于场景树的管理,使用方法简单.但是对长期使用python作为开发工具的朋友来说, 有一定门槛. 下面的小程序,演示了如何 ...
- 【python系统学习10】布尔值
python的数据类型有好多个,前边写过字符串.整数和浮点数这三种. 本节来整理另一种简单数据类型--布尔值 布尔值(bool) 布尔值和其数据值 计算机可以用数据进行判断,若判断为真则执行特定条件中 ...
- JVM05——JVM类加载机制知多少
我们已经讲过 JVM 相关的很多常见知识点,感兴趣的朋友可以在我的往期文章中查看.接下来将继续为各位带来 JVM 类加载机制.关注我的公众号「Java面典」了解更多 Java 相关知识点. 类生命周期 ...