2361788963


私信TA

用户名:2361788963

访问量:2534

签 名:

等  级
排  名 8717
经  验 1208
参赛次数 0
文章发表 16
年  龄 0
在职情况 学生
学  校 广州软件学院
专  业

  自我简介:

TA的其他文章

解题思路:
与一楼的思路一致,但因为用set会超时,所以采用了以下方法优化

参考代码:

#include<bits/stdc++.h>

using namespace std;

int n;

int g[100005],cut=0,ans;

int main(){

cin>>n;

for(int i=1;i<=n;i++){

int w;

cin>>w;

cut++;

if(g[w]==0) g[w]=cut;

for(int j=1;j<100005;j++){

if(g[j]>0&&g[j]<cut){

if(g[j+w]==0) g[j+w]=cut;

if(g[abs(j-w)]==0) g[abs(j-w)]=cut;

}

}

for(int j=1;j<100005;j++){

if(g[j]>0) ans++;

}

cout<<ans;

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »