题解 | 数位染色

数位染色

https://www.nowcoder.com/practice/adf828f399de4932955734a4eac12757

//  #牛客春招刷题训练营# https://www.nowcoder.com/discuss/726480854079250432
//  这道题本质是问能不能用给出的数(各个数位)凑出所有数的总和
#include <iostream>
#include <bitset>
#include <string>
using namespace std;

bitset<200> dp;

int main(){
  ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
  string s;//----------字符串输入更好处理
  cin >> s;
  int sum = 0;
  size_t size = s.size();
  for (int i = 0; i < size; i++) sum += s[i] - '0';
  if (sum & 1){//----------奇数的一半带有0.5肯定凑不出
    cout << "No";
    return 0;
  }
  dp[0] = 1;
  for (int i = 0; i < size; i++)
    dp |= (dp << (s[i] - '0'));//--------前置题目小M的天平,通过左移来模拟每种情况加上指定的数字
  if (dp[sum / 2]){
    cout << "Yes";
  }
  else cout << "No";
  return 0;
}

#写题解领奖励##牛客春招刷题训练营#
全部评论

相关推荐

2025-12-27 22:21
门头沟学院 Java
点赞 评论 收藏
分享
2025-11-24 14:22
安徽师范大学 财务
勇敢求职牛牛:然后简历的话,我个人意见(双非本有零星的垃圾offer),学校经历太多了,写了也应该往财务方面靠,然后技能方面多写一点吧,比如ERP的水平,对某些行业的流程(制造业),对数据的逻辑和敏感之类的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务