zzuli 2580 落落大方3

2021-10-25 04:17:27 字數 4502 閱讀 5352

傳送門

此題的第乙個版本,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次航...