我降维错了吗?还是不能?
查看原帖
我降维错了吗?还是不能?
817704
Inferior_dust楼主2023/7/14 16:33

这是降维了的代码

#include <bits/stdc++.h>
using namespace std ;

int f[100001] ;
//int f2[110][110] ;


int jdz ( int x ) {
	return x >= 0 ? x : -x ;
}



int main ( )
{
//	f[1][0] = 0 ;
	memset ( f , 0 , sizeof ( f ) ) ;
	int m = 0 ;
	int sum =  0 ;
	int n ;
	cin >> n ;
	int a[110] ;
	for ( int i = 1 ; i <= n ; i ++ ) {
		cin >> a[i] ;
		m += a[i] ;
	}
	for ( int i = 1 ; i <= n ; i ++ ) {
		for ( int j = m ; j >= 1 ; j -- ) {
			
			f[j] = f[j] ;
			if ( j == a[i] ) f[j] = 1 ;
			else if ( f[j + a[i] ] ) f[j] = 1 ;
			else if ( f[ jdz ( j - a[i] ) ] ) f[j] = 1 ;
			
		}
	}
	int MAXX = 0 ;
	for ( int i = 1 ; i <= m ; i ++ ) {
		if ( f[i] ) MAXX ++ ;
	}
	
	
	cout << MAXX ;
	
	return 0 ;
}
2023/7/14 16:33
加载中...