题解 2548: [CSP-J2020] 优秀的拆分

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

优秀的拆分简单题解

解题思路:先找到小于等于n的最高2次幂,在找与其差值的2次幂,逐个输出即可。注意事项:1<<(power+1)=1*2的(power+1)次方参考代码:#includeintmain(){intn;scanf("%d",&n);if(n%2!=0){printf("-1\n");re

利用二进制编码解答

###二进制编码规则解答#include#include#include#includeusingnamespacestd;intmain(){intn;cin>>n;vectorarr;if(n&1){cout=0;--i){cout

[CSP-J2020] 优秀的拆分--DFS+剪枝

#题解没有搜索解法所以写了个######其实根本没必要,老老实实位运算不香嘛####tip-1:1当前凑的数已经大于了n,没必要再继续下去if(sum==n)//凑出了n,从大到小输出选择的数,因为选数从大的开始选,直接正序输出{for(inti=0;i

天才的写法

摘要:解题思路:拆分为不同的2的幂次数,可以先算出来比n小的2的所有幂次,在进行取数操作注意事项:参考代码:n = int(input())i = 1a = []b = []while 2**i <= n:……

2548: [CSP-J2020] 优秀的拆分

摘要:解题思路:注意事项:参考代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;char s[1000];char a[……

2548:优秀的拆分

解题思路:利用二进制注意事项:参考代码:n=int(input())a=list(str(bin(n)))#二进制a=a[2:]#去掉0ba.reverse()z=[]ifint(a[0])==1:print('-1')else:foriinrange(len(a)):ifint(a[