zoukankan      html  css  js  c++  java
  • 即时战略游戏编队

    不打字了,直接贴图片吧!我只想说,这sb的题目,你把输入描写清楚好不,到底输不输入n啊,元素顺序是怎么样的啊,真扯淡,最后只过了40%,我都不知道怎么过的。输入顺序都是我自己瞎蒙的。

    你看他的输入,还用什么大括号括起来,到底是什么意思。

    分析:简单的dp,有限背包问题。先计算所有数的总和,然后除以2,记为s,然后计算和为s的组合方式都多少种,符合题目描述的判重方式。

     1 /*
     2 ID: y1197771
     3 PROG: test
     4 LANG: C++
     5 */
     6 #include<bits/stdc++.h>
     7 #define pb push_back
     8 #define FOR(i, n) for (int i = 0; i < (int)n; ++i)
     9 #define dbg(x) cout << #x << " at line " << __LINE__ << " is: " << x << endl
    10 typedef long long ll;
    11 using namespace std;
    12 typedef pair<int, int> pii;
    13 const int maxn = 1e6 + 10;
    14 int dp[11][maxn / 2];
    15 void solve() {
    16     int n;
    17     cin >> n;
    18     vector<int> cnt(n + 1), val(n + 1);
    19     int s = 0;
    20     for (int i = 1; i <= n; i++) {
    21         cin >> cnt[i];
    22 
    23     }
    24     for (int i = 1; i <= n; i++) {
    25         cin >> val[i];
    26         s += cnt[i] * val[i];
    27     }
    28     dp[0][0] = 1;
    29     s /= 2;
    30     for (int i = 1; i <= n; i++) {
    31         for (int k = 1; k <= cnt[i]; k++) {
    32             for (int j = 1; j <= s; j++) {
    33                 dp[i][j] += dp[i - 1][j];
    34                 //cout << j << " " << k * val[i] << endl;
    35                 if(j >= k * val[i])
    36                     dp[i][j] += dp[i - 1][j - k * val[i] ];
    37             }
    38         }
    39         //for (int j = 0; j <= s; j++)
    40             //cout << j << " " << dp[i][j] << endl;
    41     }
    42     cout << dp[n][s] << endl;
    43 
    44 }
    45 int main() {
    46     //freopen("test.in", "r", stdin);
    47     //freopen("test.out", "w", stdout);
    48     solve();
    49     return 0;
    50 }
  • 相关阅读:
    Office 2007在安装过程中出错-解决办法
    Sql日期时间格式转换
    大型网站架构演变和知识体系
    作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的
    Java 入门基础
    技术类面试、笔试题汇总
    怎样玩转千万级别的数据
    数据库性能优化:SQL索引
    最后一公里极速配送
    编辑-滴滴算法大赛算法解决过程
  • 原文地址:https://www.cnblogs.com/y119777/p/5917799.html
Copyright © 2011-2022 走看看