NYOJ 1058 部分和問題

2021-07-16 20:53:15 字數 1954 閱讀 1735

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:2 描述

給定整數a1、a2、.......an,判斷是否可以從中選出若干數,使它們的和恰好為k。

輸入

首先,n和k,n表示數的個數,k表示數的和。

接著一行n個數。

(1<=n<=20,保證不超int範圍)

輸出如果和恰好可以為k,輸出「yes」,並按輸入順序依次輸出是由哪幾個數的和組成,否則「no」

樣例輸入

4 13

1 2 4 7

樣例輸出

yes

2 4 7

int num[20];

long n, k;

int flag;

bool vis[20];

bool dfs(long sum, int cnt)

vis[cnt] = false; // 不加則為false

if(dfs(sum, cnt+1))

vis[cnt] = true; //加上則為true

if(dfs(sum + num[cnt], cnt+1))

return false;

}

#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mod 1000000007

#define fir first

#define sec second

#define fin freopen("/home/ostreambaba/文件/input.txt", "r", stdin)

#define fout freopen("/home/ostreambaba/文件/output.txt", "w", stdout)

#define mes(x, m) memset(x, m, sizeof(x))

#define pii pair#define pll pair#define inf 1e9+7

#define inf 0x3f3f3f3f

#define pi 4.0*atan(1.0)

#define lowbit(x) (x&(-x))

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

#define max(a,b) a>b?a:b

typedef long long ll;

typedef unsigned long long ull;

const double eps = 1e-9;

const int maxn = 22;

const int maxm = 10000005;

using namespace std;

inline int read()

while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();

return x*f;

}int num[maxn];

bool vis[maxn];

int n,k;

bool flag;

void dfs(int cnt,int sum)

if(sum==k)

}printf("\n");

flag=true;

return;

}if(flag)

for(int i=cnt;i<=n;++i)

}}int main()

dfs(1,0);

if(!flag)

}return 0;

}

nyoj1058 部分和問題

部分和問題 時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述給定整數a1 a2 an,判斷是否可以從中選出若干數,使它們的和恰好為k。輸入首先,n和k,n表示數的個數,k表示數的和。接著一行n個數。1 n 20,保證不超int範圍 輸出如果和恰好可以為k,輸出 yes 並按輸入...

nyoj 1058 部分和問題

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 給定整數a1 a2 an,判斷是否可以從中選出若干數,使它們的和恰好為k。輸入 首先,n和k,n表示數的個數,k表示數的和。接著一行n個數。1 n 20,保證不超int範圍 輸出如果和恰好可以為k,輸出 yes 並按輸入順序依次...

NYOJ 1058部分和問題

描述 給定整數a1 a2 an,判斷是否可以從中選出若干數,使它們的和恰好為k。輸入 首先,n和k,n表示數的個數,k表示數的和。接著一行n個數。1 n 20,保證不超int範圍 輸出如果和恰好可以為k,輸出 yes 並按輸入順序依次輸出是由哪幾個數的和組成,否則 no 樣例輸入 4 13 1 2 ...