傳送門
此題的第乙個版本,n較小,m較大。考慮dfs。複雜度o(2^n).
#include
using
namespace std;
double sum=0;
int a[20]
=,flag=0;
void
dfs(
int step,
double num,
int n)
dfs(step+
1,num+a[step]
,n);
dfs(step+
1,num,n)
;return;}
intmain()
dfs(0,
0,n);if
(flag==1)
cout<<
"yes"
<
else
cout<<
"no"
<
flag=0;
sum=0;
}return0;
}
2580則是第二個版本,n較大,m較小。考慮dp。01揹包問題。
01揹包也有不同的寫法。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lowbit(x) ((x) & -(x))
#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
const
int maxn =
1e4+7;
const
int inf =
0x3f3f3f3f
;typedef
long
long ll;
using
namespace std;
const ll mod =
1e9+7;
const
double pi =
acos(-
1.0)
;inline
intread()
while
(ch >=
'0'&& ch <=
'9')
return x * f;
}int a[maxn]
;int dp[maxn]
;int v[maxn]
;int
main()
for(
int j =
0; j < cnt; j ++
) dp[v[j]]=
1;dp[a[i]]=
1;} cout <<
(dp[sum/2]
?"yes"
:"no"
)<< endl;}}
return0;
}
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lowbit(x) ((x) & -(x))
#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
const
int maxn =
1e4+7;
const
int inf =
0x3f3f3f3f
;typedef
long
long ll;
using
namespace std;
const ll mod =
1e9+7;
const
double pi =
acos(-
1.0)
;inline
intread()
while
(ch >=
'0'&& ch <=
'9')
return x * f;
}int a[maxn]
;bitsetdp;
int v[maxn]
;int
main()
cout <<
(dp[sum/2]
?"yes"
:"no"
)<< endl;}}
return0;
}
這兩種都不算特別正常的01揹包,但是他們有自己的優勢,1的優勢空間複雜度小,2的優勢:時間複雜度和空間複雜度都較小。
下面是01揹包的較為標準的寫法:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lowbit(x) ((x) & -(x))
#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
const
int maxn =
1e4+7;
const
int inf =
0x3f3f3f3f
;typedef
long
long ll;
using
namespace std;
const ll mod =
1e9+7;
const
double pi =
acos(-
1.0)
;inline
intread()
while
(ch >=
'0'&& ch <=
'9')
return x * f;
}int a[maxn]
;int dp[
102]
[maxn]
;int v[maxn]
;int
main()
}}puts
((dp[n]
[sum/2]
?"yes"
:"no"))
;}}return0;
}
還有一種方法:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lowbit(x) ((x) & -(x))
#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
const
int maxn =
1e4+7;
const
int inf =
0x3f3f3f3f
;typedef
long
long ll;
using
namespace std;
const ll mod =
1e9+7;
const
double pi =
acos(-
1.0)
;inline
intread()
while
(ch >=
'0'&& ch <=
'9')
return x * f;
}int a[maxn]
;int dp[maxn]
;int v[maxn]
;int
main()
}puts
((dp[sum/2]
?"yes"
:"no"))
;}}return0;
}
佳能MG2580S清零
注意佳能系列一體機的清零方法差不多都是一樣的。1 先按住 停止 重置 鍵,然後按 電源 鍵開機 別鬆開 2 按 電源 鍵 不放手的同時,鬆開 停止 重置 鍵 此時電源鍵還是按住不放的狀態 3 然後在按5下 停止 重置 鍵,按最後一下的時候按住不放,此時 電源 鍵與 停止 重置 鍵都處於按住不放的狀態...
zzuli 1858 單詞翻轉
time limit 1 sec memory limit 128 mb submit 254 solved 141 submit status web board 在朋友的信裡變成了 yppah 請你編寫程式幫助小明還原來信內容吧。輸入乙個字串,以回車結束。該字串長度不超過100 包含多個單詞,單...
zzuli 2179 緊急營救
冷鋒在非洲完成任務後回到了狼牙特種作戰部隊。我們知道在戰狼二結尾,冷鋒正在北極執行任務,而部隊發現了龍小雲在c國的訊息,讓冷鋒盡快趕往c國。我們知道現在地球上共有n個國家和地區,編號分別為1,2,3.n。國家與國家之間的可能通航班 可能不止一次 也可能沒有通航班。共有m次航班,冷鋒已經知道了這m次航...