本题的意思是,给你1/2,1/2,1,2,4……2^(k-1) ,让你在左边的数列中添加+号或者-号,使得最终的答案为n即可。

思路:

我们知道上面这些数直接如果全部都填+号的话,那么最终得到的数为2^k,而如果我们把其中的一个数如2^(j)前面的+号改成-号的话,那么结果将减少2*2^(j),我们从这个角度出发,考虑r = 2^(k) - n,也就是需要把和为r/2的数前面的+变成-。那么我们只需要把(r/2)的二进制表示中为1的位对应的出现在数列中的数前面的+改成-就好了。

代码实现:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
#define int long long
int ops[66];
main(){int T;scanf("%lld",&T);while(T--){memset(ops,0,sizeof(ops));int n,k;cin>>k>>n;int r = ((int)1<<k) - n;int cnt = 1;while(r){if(r&1){ops[cnt] = 1;}r >>= 1;cnt++;}for(int i = 1 ;i <= k+1;i++){if(i != 1){cout<<' ';}if(ops[i]){cout<<'-';}else{cout<<'+';}}cout<<endl;}return 0;
}

北方大学 ACM 多校训练赛 第十五场 数字游戏相关推荐

  1. 北方大学 ACM 多校训练赛 第十五场 欢度6.18

    把式子变成a[i]+1 = p(a[i-1]+1)+q[a[i-2]+1],矩阵快速幂搞定.复杂度o(logn) #include <iostream> #include <cstd ...

  2. 北方大学 ACM 多校训练赛 第十五场 买花

    显然是一个比较简单的离线查询问题. 本质上是对区间求集合的问题,按照区间右端点从小到大对区间进行排序,然后用一个指针curr表示当前正在考虑区间的最右侧位置,针对排好序区间[tarl,tarr],先查 ...

  3. 北方大学 ACM 多校训练赛 第十五场 蜘蛛牌A

    题目描述 XCX最近迷上了玩蜘蛛牌.蜘蛛牌是windowsxp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比它大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌 ...

  4. 北方大学 ACM 多校训练赛 第四场 题解

    A. 恶魔包毁灭世界 已知一张二分图,问哪些边是二分图的可行边? 先跑最小流,再把残余网络建图,几个重要结论是: ·最小割的可行边(满流&&2点不在一个SCC中) ·最小割的必行边(可 ...

  5. 北方大学 ACM 多校训练赛 第五场(D. 节操大师 - 二分)

    Description MK和他的小伙伴们(共n人,且保证n为2的正整数幂)想要比试一下谁更有节操,于是他们组织了一场节操淘汰赛.他们的比赛规则简单而暴力:两人的节操正面相撞,碎的一方出局,而没碎的一 ...

  6. 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他...

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I ...

  7. 2018牛客网暑假ACM多校训练赛(第六场)I Team Rocket 线段树

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round6-I.html 题目传送门 - https://www.no ...

  8. UPC个人训练赛第十五场(AtCoder Grand Contest 031)

    传送门: [1]:AtCoder [2]:UPC比赛场 [3]:UPC补题场 参考资料 [1]:https://www.cnblogs.com/QLU-ACM/p/11191644.html B.Re ...

  9. 中国石油大学ACM俱乐部开放训练赛

    文章目录 中国石油大学ACM俱乐部开放训练赛 A. sciorz画画(凸多边形最优三角型剖分,区间DP) B. 奎奎发红包(贪心) C. 关于我转生变成史莱姆这档事(DFS) F. 求和(矩阵构造+矩 ...

最新文章

  1. 指针应用-----链表二
  2. IDEA中进行SpringBoot整合spring-ws开发webservice接口后期要修改xsd文件流程
  3. ubuntu 16.04 apache 开启Rewrite功能
  4. MySQL数据库基础(简介、操作规范、基本指令)
  5. 求生之路2正版服务器ip,求生之路2怎么看ip地址
  6. PHP实现微信企业付款
  7. Http client to POST using multipart/form-data
  8. 错误:created a ThreadLocal with key of type ……but failed to remove it when the web application was sto
  9. 入门React第二天(函数式组件传值)
  10. oracle dataguard 日志传输,从alert日志看Oracle 11g DataGuard日志传输
  11. win7计算机亮度怎么调节,win7系统屏幕亮度怎么修改调整
  12. 手撸架构,Nginx 面试40问
  13. 中科院计算机所副研究员,中科院计算技术研究所副研究员 谭光明
  14. VAD语音分割算法原理与简单实现
  15. 大数据必学Java基础(一):Java体系结构、特性和优势
  16. “org.springframework.beans.factory.BeanCreationException: Error creating bean with name xxx“问题解决
  17. airpods二代降噪吗_华强北 苹果二代三代 蓝牙耳机airpods。不跳电,真降噪。
  18. 【精彩回顾】迪拜BSV全球区块链大会Day2
  19. proteus仿真arduino控制两位数码管
  20. Envisioneer家装设计软件测评

热门文章

  1. Linux语言写的高通滤波,高通滤波器c语言实现
  2. 三相全桥整流电路_三相桥式全控整流电路
  3. C++中字符串的截取 str.substr(a,b);
  4. 买卖股票类问题动态规划解法(Leetcode题解-Python语言)
  5. [Java基础]反射获取成员方法并使用练习
  6. C++set容器-构造和赋值
  7. 数据结构与算法--代码完整性案例分析
  8. Codeforces Round #595 (Div. 3) F. Maximum Weight Subset 树形dp
  9. 【NOIP2017】逛公园【最短路DAG】【dp】【拓扑排序】
  10. Help Jimmy POJ - 1661