题解 | #数组分组#

数组分组

http://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86

#include #include #include #include using namespace std; int main() { int n=0; while(cin>>n) { map<int,bool> dp; vector num; int x,sum=0,part=0,low=0; for (int i=0;i<n;i++){ cin>>x; if(x%5 || x%3) num.push_back(x); if(!(x%5)) part+=x; if(x<0) low+=x; sum+=x; } if(sum%2) cout<<"false"<<endl; else{ int target=sum/2-part; for(int i=0;i<num.size();i++) dp[num[i]]=true; for(int i=0;i<num.size();i++) { for(int j=target;j>=low;j--) dp[j]=dp[j] || dp[j-num[i]]; } if(dp[target]) cout<<"true"<<endl; else cout<<"false"<<endl; } num.clear(); } return 0; }

全部评论

相关推荐

12-09 00:19
清华大学 Java
Yilena:项目写的太差了,而且这两个项目也很杂,agent方面我不太了解,但对于后端来说这两个项目竞争力感觉不如烂大街项目。 我觉得首要之急是解决你到底是想搞toc/tob还是agent
不给转正的实习,你还去吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务