https://www.luogu.com.cn/problem/CF1427E

首先设y=x<<ty=x<<ty=x<<t,使得y的最低位与xxx对齐
然后令z=x⊕yz=x \oplus yz=x⊕y, 再令o=z+yo=z+yo=z+y
然后令o⊕(y<<1)⊕xo\oplus(y<<1)\oplus xo⊕(y<<1)⊕x就可以得到yyy的第二低位
然后一路往上把yyy消得只剩下最低位,即xxx的最高位

然后把xxx的最高位消掉即可

一路消下去就是答案

code:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct A {ll x, y, o;
};
vector<A> ans;
ll calc(ll x) {ll y = x, sy = x >> 1;while(sy) {ans.push_back((A){y, y, 0});sy >>= 1; y <<= 1;}ans.push_back((A){x, y, 1});ll z = x ^ y;ans.push_back((A){z, y, 0});ll o = y + z;ans.push_back((A){y, y, 0});ll yy = y + y;ans.push_back((A){o, x, 1});ll yq = o ^ x;ans.push_back((A){yy, yq, 1});ll b = yy ^ yq;while(y != (y & -y)) {if(y & b) {ans.push_back((A){y, b, 1});y ^= b;}ans.push_back((A){b, b, 0});b = b + b;}ans.push_back((A){x, y, 1});return x ^ y;
}
ll n;
int main() {scanf("%lld", &n);while(n != 1) n = calc(n);printf("%d\n", ans.size());for(int i = 0; i < ans.size(); i ++) {if(ans[i].o == 0) printf("%lld + %lld\n", ans[i].x, ans[i].y);else printf("%lld ^ %lld\n", ans[i].x, ans[i].y);}return 0;
}

CF1427E Xum相关推荐

  1. CF1427 E. Xum 口胡题解

    题目传送门 由于 x x o r ( x + 1 ) = 1 x\ xor\ (x+1)=1 x xor (x+1)=1,所以我们只需要构造出相邻的两个数即可. 怎么找呢? 根据裴蜀定理可知 gcd ...

  2. 使用正则表达式抽取新闻/BBS网页发表时间

    package org.apache.nutch.parse.html; import java.text.ParseException; import java.text.SimpleDateFor ...

  3. HASH算法不是加密算法

    HASH算法不是加密算法 作者:itwriter出处:博客2011-12-26 07:48 在 CSDN 密码泄漏事件中,网友评论提到密码的明文保存和 MD5 保存问题.目前,很多站点都用 MD5 算 ...

  4. 使用自定义色系美化JfreeChart图表

    JFreeChart所使用的色系生成的图表很难看,笔者深有体会.在使用到JfreeChart的一些项目中经常会有客户提出"能不能由我们自己去设置图表中每个分类的颜色"等等诸如此类的 ...

  5. 浅谈HASH算法与CSDN密码泄漏事件

    在CSDN密码泄漏事件中,网友评论提到密码的明文保存和MD5保存问题.目前,很多站点都用MD5算法保存密码,但对于HASH(哈希)算法的认识还存在很多误区,很有必要重新认识. 一.HASH算法不是加密 ...

  6. 【Luogu】P4462异或序列(莫队)

    题目链接 观察什么时候x到y之间那一段可以被统计 xorsum[x-1]^xorsum[y]=k xorsum[x-1]=xorsum[y]^k||xorsum[y]=xorsum[x-1]^k 莫队 ...

  7. Codeforces Global Round 11——E随机+线性基待补

    A - Avoiding Zero 不难发现如果数组所有元素和为0一定不能满足条件,否则一定能满足. 假设所有元素和不为0尝试以下构造,如果正数和小于负数和的绝对值,那么逆序排列,否则顺序排列,这样一 ...

  8. SpringCloud的学习记录(1)

    最近一段时间重新学习一边SpringCloud,这里简单记录一下. 我用的是IntelliJ IDEA开发工具, SpringBoot的版本是2.1.3.RELEASE. 1. 构建Maven项目 整 ...

  9. com.sec.android.ofvi,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...

    AndroidManifest.xml rI*9%N 01F(g(} .gxN^9 META-INF/CERT.RSA3hb }H[x$w META-INF/CERT.SF "x)J?X c ...

  10. 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下...

    2019独角兽企业重金招聘Python工程师标准>>> 8.10 shell特殊符号&cut命令 特殊符号 "*" 代表零个或多个字符 "?&q ...

最新文章

  1. 爬虫 | 正则表达式提取腾讯教育新闻链接及图片链接
  2. sybase存储过程修改
  3. 把DXF导入到Altium Designer的完美方法
  4. Spring Security构建Rest服务-0702-短信验证码登录
  5. 发现dba_segments和dba_extents中统计段空间大小居然不一样
  6. 移动端常见的一些兼容性问题
  7. 每日一题:leetcode1579.保证图可完全遍历
  8. python安装scrapy_Python安装Scrapy的种种
  9. 删掉SQL Server登录时登录名下拉列表框中的选项
  10. 学习笔记CB012: LSTM 简单实现、完整实现、torch、小说训练word2vec lstm机器人
  11. C++笔记-lambda表达式需要注意的地方
  12. JDBC学习笔记(全)
  13. Python编译、运行、反编译pyc文件
  14. (转)Aladdin PK SimCorp Dimension
  15. 如何获取Linux的主机名和域名?
  16. linux 进程带宽限制,Linux限制网络带宽的占用
  17. ES 创建太多 buckets 错误: trying to create too many buckets. must be less than or equal to: [100000] but w
  18. 商场抽奖软件 android,召唤抽奖系统3.0正式版
  19. python真的能赚钱吗,学python可以赚钱吗
  20. KEIL设置程序起始地址无效解决方法,STM32 IAP程序起始地址

热门文章

  1. 【内存】进程结束后程序员没有释放的内存哪儿去了?
  2. 什么是搜索引擎?搜索引擎有哪些?
  3. 中国农业大学研究生计算机学院宿舍,中国农业大学宿舍条件怎么样
  4. Python入门到放弃
  5. Beyond Compare For MAC安装
  6. 智能手机传感器到底有什么用
  7. html 渐变背景色,渐变文字颜色
  8. MOTO me525 DEFY 2.2 刷机全程详细指导
  9. 普通蓝牙防丢器已过时,onn推出支持苹果 Find My 防丢器
  10. 资深黄金专家李鑫:独创7套算点理论震惊市场