北方大学 ACM 多校训练赛 第十五场 数字游戏
本题的意思是,给你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 多校训练赛 第十五场 数字游戏相关推荐
- 北方大学 ACM 多校训练赛 第十五场 欢度6.18
把式子变成a[i]+1 = p(a[i-1]+1)+q[a[i-2]+1],矩阵快速幂搞定.复杂度o(logn) #include <iostream> #include <cstd ...
- 北方大学 ACM 多校训练赛 第十五场 买花
显然是一个比较简单的离线查询问题. 本质上是对区间求集合的问题,按照区间右端点从小到大对区间进行排序,然后用一个指针curr表示当前正在考虑区间的最右侧位置,针对排好序区间[tarl,tarr],先查 ...
- 北方大学 ACM 多校训练赛 第十五场 蜘蛛牌A
题目描述 XCX最近迷上了玩蜘蛛牌.蜘蛛牌是windowsxp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比它大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌 ...
- 北方大学 ACM 多校训练赛 第四场 题解
A. 恶魔包毁灭世界 已知一张二分图,问哪些边是二分图的可行边? 先跑最小流,再把残余网络建图,几个重要结论是: ·最小割的可行边(满流&&2点不在一个SCC中) ·最小割的必行边(可 ...
- 北方大学 ACM 多校训练赛 第五场(D. 节操大师 - 二分)
Description MK和他的小伙伴们(共n人,且保证n为2的正整数幂)想要比试一下谁更有节操,于是他们组织了一场节操淘汰赛.他们的比赛规则简单而暴力:两人的节操正面相撞,碎的一方出局,而没碎的一 ...
- 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他...
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I ...
- 2018牛客网暑假ACM多校训练赛(第六场)I Team Rocket 线段树
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round6-I.html 题目传送门 - https://www.no ...
- UPC个人训练赛第十五场(AtCoder Grand Contest 031)
传送门: [1]:AtCoder [2]:UPC比赛场 [3]:UPC补题场 参考资料 [1]:https://www.cnblogs.com/QLU-ACM/p/11191644.html B.Re ...
- 中国石油大学ACM俱乐部开放训练赛
文章目录 中国石油大学ACM俱乐部开放训练赛 A. sciorz画画(凸多边形最优三角型剖分,区间DP) B. 奎奎发红包(贪心) C. 关于我转生变成史莱姆这档事(DFS) F. 求和(矩阵构造+矩 ...
最新文章
- 指针应用-----链表二
- IDEA中进行SpringBoot整合spring-ws开发webservice接口后期要修改xsd文件流程
- ubuntu 16.04 apache 开启Rewrite功能
- MySQL数据库基础(简介、操作规范、基本指令)
- 求生之路2正版服务器ip,求生之路2怎么看ip地址
- PHP实现微信企业付款
- Http client to POST using multipart/form-data
- 错误:created a ThreadLocal with key of type ……but failed to remove it when the web application was sto
- 入门React第二天(函数式组件传值)
- oracle dataguard 日志传输,从alert日志看Oracle 11g DataGuard日志传输
- win7计算机亮度怎么调节,win7系统屏幕亮度怎么修改调整
- 手撸架构,Nginx 面试40问
- 中科院计算机所副研究员,中科院计算技术研究所副研究员 谭光明
- VAD语音分割算法原理与简单实现
- 大数据必学Java基础(一):Java体系结构、特性和优势
- “org.springframework.beans.factory.BeanCreationException: Error creating bean with name xxx“问题解决
- airpods二代降噪吗_华强北 苹果二代三代 蓝牙耳机airpods。不跳电,真降噪。
- 【精彩回顾】迪拜BSV全球区块链大会Day2
- proteus仿真arduino控制两位数码管
- Envisioneer家装设计软件测评
热门文章
- Linux语言写的高通滤波,高通滤波器c语言实现
- 三相全桥整流电路_三相桥式全控整流电路
- C++中字符串的截取 str.substr(a,b);
- 买卖股票类问题动态规划解法(Leetcode题解-Python语言)
- [Java基础]反射获取成员方法并使用练习
- C++set容器-构造和赋值
- 数据结构与算法--代码完整性案例分析
- Codeforces Round #595 (Div. 3) F. Maximum Weight Subset 树形dp
- 【NOIP2017】逛公园【最短路DAG】【dp】【拓扑排序】
- Help Jimmy POJ - 1661