当前位置:网站首页>Csp-j-2020-excellent split multiple solutions
Csp-j-2020-excellent split multiple solutions
2022-07-05 05:20:00 【Korloa】
Title Description
Generally speaking , A positive integer can be split into the sum of several positive integers .
for example ,1=1,10=1+2+3+4 etc. . For positive integers n A specific split of , Let's call it alpha “ first-class ”, If and only if under this split ,n It's broken down into a number of Different Of 2 Of Positive integer The next power . Be careful , a number x Can be expressed as 2 The positive integer power of , If and only if x Can pass a positive integer 2 Multiply together to get .
for example ,

Is an excellent split . however , It's not an excellent split , because 1 No 2 The positive integer power of .
Now? , Given a positive integer n, You need to judge all the splits of this number , Is there a good split . If exist , Please give us the specific split plan .
Input
There is only one line of input , An integer n, Represents the number to be judged .
Output
If all the splits of this number , There are excellent splits . that , You need to output every number in this split from large to small , Separate two adjacent numbers with a space . Can prove that , After specifying the order of splitting numbers , The splitting scheme is unique .
If there is no good split , Output -1.
Examples 1
The sample input 1
6Sample output 1
4 2explain

Is an excellent split . Be careful ,6=2+2+2 Not a good split , Because it's split into 3 The number is not satisfied, and each number is different from each other .
Examples 2
The sample input 2
7Sample output 2
-1Data scale
- about 20% The data of ,n≤10.
- For another 20% The data of , Guarantee n It's odd .
- For another 20% The data of , Guarantee n by 2 The positive integer power of .
- about 80% The data of ,n≤1024.
- about 100% The data of ,

Ideas
Readers can find a rule , For a number N, If it is greater than 1 An even number of , It must meet an excellent split .
For a number of legal excellent split , You will find that you can enumerate from large to small , This becomes a bit operation . Of course, if you don't find it , Just use it DFS
AC Code ( Bit operation is not optimized )
#include<iostream>
using namespace std;
unsigned long long n;
int main(){
cin>>n;
if(n%2==1 || n<2){
cout<<"-1";
return 0;
}
else{
for(unsigned long long i=1<<30;i>0;i>>=1){
if(i<=n){
n=n-i;
cout<<i<<" ";
}
if(n==0)break;
}
}
return 0;
}AC Code ( Bit operation optimization )
#include<cstdio>
signed main(){
int n;
scanf("%d",&n);
if(n%2==1 || n<2){
putchar('-');
putchar('1');
return 0;
}
int i=2;
while(i*2<=n)i<<=1;
while(n!=0){
if(i<=n){
n=n-i;
printf("%d ",i);
}
i>>=1;
}
return 0;
}ha-ha , I used it very informally during the exam DFS, Yes, I'm the good one , Fortunately, the data is not large .
DFS Code Here
#include<cstdio>
int ans[100];
int n,tot=0;
int dfs(int start){
for(int i=start;i<=n;i=i*2){
if(i==n){
printf("%d ",i); // Output in reverse order
for(int j=tot;j>0;j--){
printf("%d ",ans[j]);
}
return 0;
}
else if(i<=n){
n=n-i;
ans[++tot]=i;
dfs(i*2);
tot--; // Restore
n=n+i;
}
else
return 0;
}
}
int main(){
scanf("%d",&n);
if(n%2==1 || n<2){
printf("-1");
return 0;
}
else
dfs(2);
return 0;
}Thank you for your support
边栏推荐
- Pause and resume of cocos2dx Lua scenario
- How can the Solon framework easily obtain the response time of each request?
- Reverse one-way linked list of interview questions
- 支持多模多态 GBase 8c数据库持续创新重磅升级
- Django reports an error when connecting to the database. What is the reason
- Haut OJ 1347: addition of choice -- high progress addition
- Double pointer Foundation
- Demonstration of using Solon auth authentication framework (simpler authentication framework)
- Binary search basis
- Solon 框架如何方便获取每个请求的响应时间?
猜你喜欢

sync.Mutex源码解读

第六章 数据流建模—课后习题

C语言杂谈1

Merge sort
![[to be continued] [depth first search] 547 Number of provinces](/img/c4/b4ee3d936776dafc15ac275d2059cd.jpg)
[to be continued] [depth first search] 547 Number of provinces

Use of snippets in vscode (code template)

Learning notes of "hands on learning in depth"

Romance of programmers on Valentine's Day

Support multi-mode polymorphic gbase 8C database continuous innovation and heavy upgrade

Binary search basis
随机推荐
Unity card flipping effect
PMP考生,请查收7月PMP考试注意事项
How can the Solon framework easily obtain the response time of each request?
[转]:Apache Felix Framework配置属性
[paper notes] multi goal reinforcement learning: challenging robotics environments and request for research
Use the command character to close the keyboard command of the notebook
《动手学深度学习》学习笔记
[interval problem] 435 Non overlapping interval
Optimization scheme of win10 virtual machine cluster
Reverse one-way linked list of interview questions
Simple HelloWorld color change
Generate filled text and pictures
[转]MySQL操作实战(一):关键字 & 函数
Applet live + e-commerce, if you want to be a new retail e-commerce, use it!
room数据库的使用
[轉]: OSGI規範 深入淺出
嵌入式数据库开发编程(五)——DQL
Add level control and logger level control of Solon logging plug-in
Heap sort summary
Yolov5 adds attention mechanism