ACdream 1095 EOF女神的相反数(数学:二进制处理)

2024-06-14 03:18

本文主要是介绍ACdream 1095 EOF女神的相反数(数学:二进制处理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

EOF女神的相反数

Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)
Submit Statistic Next Problem
Problem Description

      作为女神,EOF是很喜欢照镜子的~同样在数学中,EOF也是很喜欢相反数的。不过她既然是女神,她认知的相反数和我们凡人怎么能一样呢?

      给定一个十进制数A,EOF女神定义的相反数就是把这个数转化为二进制之后,忽略高位的0,然后作轴对称,例如对于十进制的数123(1111011),它的相反数是111(1101111)。EOF女神就打算以此来考验前来觐见的勇士。

Input

      首先是一个正整数T,表示测试数据的组数。

      对于每组测试数据,只有一个正整数A(A<=10^18)

Output

      对于每组测试数据,输出EOF女神眼中相反数。

Sample Input
2
123
5201314
Sample Output
111
2284921
Source
mathlover
Manager
mathlover
Submit Statistic

初看这道题感觉好牛逼的样子...我还特意去找bitset的用法

结果用暴力做就可以再见

我的代码总是错,原因应该就是移位操作符的用法有问题

百度百科:运算符为双目运算符,结合方向为从左到右,作用是把一个整型数的所有位向左移动指定的位数,移动到左边界之外的多余二进制位会被丢弃,并从右边界移入0。

可能就是因为把不为0的二进制位丢掉了吧,但是对于64位最多不就移动63次么...实在想不通

#include <cstdio>
#include <cstring>
#include <iostream>
#define LL long long
using namespace std;int main(void) {LL T, n, ans, tmp;int str[1000];int num, cnt, cur;cin >> T;while(T--) {cin >> n;cnt = 0;memset(str, 0, sizeof(str));while(n) {if(n & 1)str[cnt++] = 1;else str[cnt++] = 0;n >>= 1;}
//        cout << str << endl;tmp = 1;ans = 0;for(int i=cnt-1; i>=num; --i) {ans += (str[i]*tmp);tmp *= 2;}cout << ans << endl;/*这里是我的做法,问题应该出在移位操作ans = 0;cur = 0;for(int i=cnt-1; i>=num; --i) {tmp = (str[i])<<cur;ans += tmp;cur++;}cout << ans << endl;*/}return 0;
}


之前特意在网上查了下bitset用法

用bitset写了一个,结果因为最后处理数据和上面的方法一样,所以老是wa

现在改了下处理方法就A掉了

代码如下:

#include <cstdio>
#include <bitset>
#include <iostream>
#include <algorithm>
#define MAXN 10010
#define LL long long
using namespace std;int main(void) {LL n;int T;scanf("%d", &T);while(T--) {cin >> n;bitset<64> b (n);string str = b.to_string();
//        cout << str << endl;int cnt = 0;while(str[cnt] != '1')++cnt;string chs(str, cnt, str.size()-cnt+1);
//        cout << chs << endl;LL ans = 0;LL tmp = 1;for(int i=0; i<chs.size(); ++i) {ans += (chs[i]-'0')*tmp;tmp *= 2;}cout << ans << endl;}return 0;
}





这篇关于ACdream 1095 EOF女神的相反数(数学:二进制处理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059228

相关文章

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤