2361788963


私信TA

用户名:2361788963

访问量:2293

签 名:

等  级
排  名 8349
经  验 1180
参赛次数 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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区