subset

#include <fstream>
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <set>
#include <vector>
#include <algorithm>
#include <queue>
#include <math.h>
using namespace std;
int n;
int sum1,sum2,ans;
int totl=0;
void sdd(int s){
	if(sum2==sum1){
		ans++;
		return;
	}
	if(sum2>sum1 || s==0)
	return;

	sum2=sum2+s;
	sdd(s-1);
	sum2=sum2-s;
	sdd(s-1);
}
int main(){
	ofstream fout ("subset.out");
    ifstream fin ("subset.in");
    fin>>n;
    for(int i=1;i<=n;i++){
    	totl += i;
	}
	if(totl%2){
		fout<<0<<endl;
		return 0;
	}else{
		sum1=totl/2;
		sum2=n;
		sdd(n-1);
		fout<<ans<<endl;
	}
}

輸入數據爲31時超時,作個代碼的記錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章