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 ;
}
目录
相关文章
|
3天前
lanqiao OJ 1505 剪邮票
lanqiao OJ 1505 剪邮票
10 0
|
3天前
lanqiao OJ 3513 岛屿个数(2023省赛)
lanqiao OJ 3513 岛屿个数(2023省赛)
9 2
|
1天前
lanqiao oj 186 糖果(状态压缩dp)
lanqiao oj 186 糖果(状态压缩dp)
5 0
|
2天前
lanqiao OJ 2097 青蛙过河
lanqiao OJ 2097 青蛙过河
6 0
|
3天前
|
机器人
lanqiao OJ 118 机器人塔
lanqiao OJ 118 机器人塔
6 0
|
1天前
lanqiao oj 1121 蓝桥公园(floyd)
lanqiao oj 1121 蓝桥公园(floyd)
6 0
|
2天前
acwing 2060 奶牛选美
acwing 2060 奶牛选美
6 0
|
1天前
lanqiao OJ 健身
lanqiao OJ 健身
5 0
|
3天前
lanqiao OJ 110 合根植物
lanqiao OJ 110 合根植物
6 0
|
5月前
|
存储
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
25 0