zoukankan      html  css  js  c++  java
  • 创造新世界--全国模拟(二)

    [编程题] 创造新世界
    时间限制:1秒
    空间限制:32768K
    众所周知计算机代码底层计算都是0和1的计算,牛牛知道这点之后就想使用0和1创造一个新世界!牛牛现在手里有n个0和m个1,给出牛牛可以创造的x种物品,每种物品都由一个01串表示。牛牛想知道当前手中的0和1可以最多创造出多少种物品。 
    输入描述:
    输入数据包括x+1行:
    第一行包括三个整数x(2 ≤ x ≤ 20),n(0 ≤ n ≤ 500),m(0 ≤ m ≤ 500),以空格分隔
    接下来的x行,每行一个01串item[i],表示第i个物品。每个物品的长度length(1 ≤ length ≤ 50)
     
     
    输出描述:
    输出一个整数,表示牛牛最多能创造多少种物品
     
    输入例子:
    3 3 1 1 00 100
     
    输出例子:
    2
     
    解题思路:本题先计算每个字符串中0的数目,1的数目,题目为01背包问题
    其中0的个数为n,1的个数为m
    dp[jj][kk]表示jj个0,kk个1能构成的最多的字符串个数
    dp[jj][kk] = max(dp[jj][kk],dp[jj-zero[ii]][kk-one[ii]]+1);
     1 #include <iostream>
     2 #include <vector>
     3 #include <string>
     4 using namespace std;
     5 //统计  字符串中 0 和 1 的个数
     6 void count(string  s,vector<int> &zeros,vector<int> &ones,int i)
     7 {
     8     int numOf0 = 0,numOf1 = 0;
     9     for(int ii=s.size()-1;ii>=0;--ii)
    10     {
    11         if(s[ii] =='0')
    12         {
    13             ++numOf0;
    14         }
    15         else
    16         {
    17             ++numOf1;
    18         }
    19     }
    20     zeros[i] = numOf0;
    21     ones[i] = numOf1;
    22 }
    23 int main()
    24 {
    25     int x,n,m;
    26     cin>>x>>n>>m;
    27     vector<int>  zeros(20,0);
    28     vector<int>  ones(20,0);
    29     int dp[501][501] = {0};
    30     string s;
    31     for(int ii = 0;ii<x;ii++)
    32     {
    33         cin>>s;
    34         count(s,zeros,ones,ii);
    35     }
    36     //动态规划  0-1背包问题
    37     for(int ii = 0;ii<x;ii++)
    38         for(int jj = n;jj>=zeros[ii];--jj)
    39             for(int kk=m;kk>=ones[ii];--kk)
    40             {
    41                 dp[jj][kk] = max(dp[jj][kk],dp[jj- zeros[ii]][kk - ones[ii]]+1);
    42             }
    43     cout<<dp[n][m]<<endl;
    44     return 0;
    45 }
  • 相关阅读:
    二、推导式/自省
    一、Python编码规范(PEP 8)/工程结构化
    十、持续集成(Jenkins+Ant+Jmeter)
    九、Jmeter之逻辑控制器
    八、Jmeter分布式测试
    七、ServerAgent监控服务器资源
    六、场景设计/报告分析
    五、集合点/断言/关联
    .html页面引入vue并使用公共组件
    vue.js页面刷新出现闪烁问题的解决
  • 原文地址:https://www.cnblogs.com/qqky/p/7008813.html
Copyright © 2011-2022 走看看