我在uva 過了但在這裡
您的答案為: NO 正確答案為: YES
您的答案為: NO 正確答案為: YES
我的程式碼如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
getchar();
while(t--)
{
string s;
getline(cin,s);
vector<int>w;
int weigh=0;
stringstream ss(s);
int n;
while(ss>>n)
{
//cout<<"weigh"<<n<<" ";
w.push_back(n);
weigh+=n;
}
//cout<<weigh<<" ";
if(weigh%2) {cout<<"NO\n";continue;
}
weigh/=2;
int l[weigh+1];
memset(l,0,sizeof(l));
for(int i=0;i<w.size();i++)
{
for(int j=weigh;j>=0;j--)
{
if(w[i]>j) break;
if(l[j]<l[j-w[i]]+w[i]) l[j]=l[j-w[i]]+w[i];
}
}
//for(int i=0;i<=weigh;i++) cout<<l[i]<<" ";
//cout<<"\n";
if(l[weigh]==weigh) cout<<"YES\n";
else cout<<"NO\n";
}
}
您的答案為: 1 7 正確答案為: YES
您的答案為: 1 7 正確答案為: YES
看來確實有誤。前面的數字不重要(多打的),後面的數字代表的是總重。
而總重為奇數時不可能分一半,應為 NO 而非 YES。
看作者什麼時候更新囉。
您的答案為: 1 7 正確答案為: YES
您的答案為: 1 7 正確答案為: YES
看來確實有誤。前面的數字不重要(多打的),後面的數字代表的是總重。
而總重為奇數時不可能分一半,應為 NO 而非 YES。
看作者什麼時候更新囉。
真是抱歉,測資以更正。