From 1d5f2e3abdeae95d63726c40c9861a0edbc02699 Mon Sep 17 00:00:00 2001 From: dhx000 <136692698@qq.com> Date: Sat, 22 Oct 2016 13:07:08 +0800 Subject: [PATCH] Add files via upload --- B.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ L.cpp | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 B.cpp create mode 100644 L.cpp diff --git a/B.cpp b/B.cpp new file mode 100644 index 0000000..3eecc64 --- /dev/null +++ b/B.cpp @@ -0,0 +1,63 @@ +#include + +using namespace std; +int a[100]; +long long int n,m; +bool s=false; +long long int b[100]; +bool dfs(long long int remain,long long now,int now_layer) +{ + if ((now_layer==0)&&(remain==0)) return true; + if (now_layer==0) return false; + if (remain==0) return false; + if (remain>=2*now) return false; + if (remain+2*now<=0) return false; + long long nextint=now/2; + if (remain>0) + { + remain=remain-now; + int xx=now_layer-1; + a[xx]=1;//"+" + b[xx]=now; + return dfs(remain,nextint,now_layer-1); + } + else + { + remain=remain+now; + int xx=now_layer-1; + a[xx]=2;//"-" + b[xx]=now; + return dfs(remain,nextint,now_layer-1); + } + +} +int main() +{ + int t; + cin>>t; + for (int tt=1;tt<=t;tt++) + { + cin>>n>>m; + + s=false; + long long int min_number=1<<(m-1); + long long int max_number=(1<=min_number;i--) + { + if (dfs(n,i,m)) + { + s=true; + break; + } + } + cout<<"Case #"< +#include +#include +using namespace std; +int ans; +int x,y; +int gcd(int a,int b) +{ + while (b) + { + int t=b; + b=a%b; + a=t; + } + return a; +} + +int main() +{ + int t; + scanf("%d",&t); + for (int tt=0;tt