nyoj1058 poj 1564(深搜部分和)

2021-07-04 09:56:58 字數 1399 閱讀 4216

//ac

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

//#include //基本輸入流

//#include //基本輸出流

//#include //基於字串的流

//#include //stl 通用模板類

//#include //複數處理

//#include //浮點環境

//#include //整數格式轉換

//#include //布林環境

//#include //整型環境

//#include //通用型別數學巨集

#define l(a,b,c) for(int a = b;a >= c;a --)

#define m(a,b,c) for(int a = b;a <= c;a ++)

#define n(a,b) memset(a,b,sizeof(a));

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

#define minn(a,b)   ((a)<(b)?a:b)

const int max=1<<30;

const int min=-max;

using namespace std;

int n,k,sum,a[100],b[100];

bool ok=false;

void dfs(int m)

m(i,0,n-1)

if(b[i])

printf("\n");

}m(i,m,n-1)

}int main()

return 0;

}//貼上

#include

#include

#include

using namespace std;  

int n,len,a[20],b[20],cnt;  

int cmp(int a,int b)  

void dfs(int x,int posa,int sum,int posb)       //posb統計位數

{  int i;  

if(sum>n)   //此時停止,進行下次

return;  

if(sum == n)        //輸出

{  cnt++;  

for(i = 0; i

poj1564解題報告

第一次寫部落格,而且是組長強制要求,趕出來的,可能有含糊的地方,但是我會以後再認真分享我的心得的 題意 就是給定乙個n,還有m個數,看看由m個數中任選相加為n的數以特定格式輸出 思路 dfs 但是具體有個東西要注意,那就是要從短到長,從大到小輸出,所以,先選大數再選小數,而給出的數是從大到小,所以也...

NYOJ 1058 深度搜尋

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

dfs模板 去重poj1564

按照降序排序給一組數字,和乙個數t。算出所有t的和的方案 比如1 2 3 4,t為4,t可以是4,也可以是1 3 簡單的dfs題,但是不容易想到如何去重。膜拜大佬 這個模板挺好寫的,就是dfs,然後加起來等於t就輸出,但是不容易想到處理方式。include include include inclu...