| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
不明白怎么会TLE的呢!测试数据全过呢!个人觉得用DFS比较简单啊!。#include <stdarg.h>
#include <iostream>
#include <vector>
using namespace std;
vector<int> input_number;
vector<int> zhsz;
vector<bool> used;
bool dfs(int left)
{
for(int i=0;i<int(zhsz.size());i++)
{
if(used[i]==true)
{
continue;
}
if(left==zhsz[i])
{
return true;
}
else if(left<zhsz[i])
{
continue;
}
else
{
used[i]=true;
if(dfs(left-zhsz[i])==true)
{
return true;
}
else
{
used[i]=false;
if(i==zhsz.size()-1)
{
return false;
}
}
}
}
return false;
}
int main()
{
int jlcs=1;
m1:
int sum=0,js=0;
input_number.clear();
for(int i=0;i<6;i++)
{
int n;
cin>>n;
input_number.push_back(n);
if(n==0)
{
js+=1;
}
}
if(js==6)
{
goto m2;
}
for(int i=5;i>=0;i--)
{
for(int j=0;j<input_number[i];j++)
{
zhsz.push_back(i+1);
used.push_back(false);
sum+=i+1;
}
}
if(dfs(sum/2)==true)
{
cout<<"Collection #"<<jlcs<<":"<<endl<<"Can be divided.";
}
else{
cout<<"Collection #"<<jlcs<<":"<<endl<<"Can't be divided.";
}
jlcs+=1;
goto m1;
m2:
system("pause");
}
用DFS我感觉很好算! 不知道为什么TLE了
谁可以给组变态的数据!。。。
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator