解题思路:
与一楼的思路一致,但因为用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 人评分
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:772 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:534 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:606 |
【计算球体积】 (C语言代码)浏览:1102 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:537 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:545 |
母牛的故事 (C语言代码)浏览:943 |
矩阵乘方 (C语言代码)浏览:1029 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:760 |
C语言程序设计教程(第三版)课后习题4.9 (Java代码)浏览:613 |