lanqiao OJ 1447 砝码称重

简介: lanqiao OJ 1447 砝码称重

1.砝码称重 - 蓝桥云课 (lanqiao.cn)

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std ;
const int N = 110 , M = 1e5+10 ;
int f[N][M*2] ;//由于砝码重量可能越界  比如说在j = 99999 的时候 砝码的重量是10000 就越界了
               //取前i个砝码看可以称重j的情况是否可以
 
int a[N] ;
 
int main(){
  int n ; cin >> n ;
  for(int i = 1 ; i <= n ;i ++) cin >>a[i] ;
  f[0][0] = 1 ;
  for(int i = 1 ; i <= n ; i ++) {
    for(int j = 0 ; j <= 100000 ; j ++){
            //由三种情况转化而来
            //1.如果前n-1个砝码就可以做到那n个砝码也能做到
            //2.如果钱n-1个砝码可以称重j-w 则加上第n个砝码就可以称重j了
            //2.如果前n-1个砝码可以称重j+w 则放在对面减去第n个砝码就可以称重j了
      f[i][j] = f[i-1][abs(j-a[i])] | f[i-1][j] | f[i-1][j + a[i]] ;
    }
  }
  int ans = 0 ;
  for(int i = 1 ; i <= 100000; i ++) ans += f[n][i] ;
  cout << ans << endl; 
  return 0 ;
}
目录
相关文章
|
1月前
lanqiao OJ 1505 剪邮票
lanqiao OJ 1505 剪邮票
26 0
|
1月前
lanqiao OJ 3513 岛屿个数(2023省赛)
lanqiao OJ 3513 岛屿个数(2023省赛)
14 2
|
1月前
lanqiao OJ 99 分巧克力
lanqiao OJ 99 分巧克力
12 1
|
30天前
lanqiao OJ 2097 青蛙过河
lanqiao OJ 2097 青蛙过河
11 0
|
30天前
lanqiao oj 186 糖果(状态压缩dp)
lanqiao oj 186 糖果(状态压缩dp)
12 0
|
30天前
lanqiao oj 1121 蓝桥公园(floyd)
lanqiao oj 1121 蓝桥公园(floyd)
41 0
|
1月前
|
机器人
lanqiao OJ 118 机器人塔
lanqiao OJ 118 机器人塔
13 0
|
1月前
lanqiao OJ 110 合根植物
lanqiao OJ 110 合根植物
10 0
|
30天前
acwing 2060 奶牛选美
acwing 2060 奶牛选美
25 0
|
6月前
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
41 0