Advertisement
tien_noob

Agent 47 - LightOJ

Jun 9th, 2021
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. //Make CSP great again
  2. #include <bits/stdc++.h>
  3. #define TASK "TESTCODE"
  4. using namespace std;
  5. const int N = 15;
  6. int dp[1 << N], n, b[N];
  7. char a[N][N];
  8. void read()
  9. {
  10.     cin >> n;
  11.     memset(dp, 0x3f, sizeof(dp));
  12.     dp[0] = 0;
  13.     for (int i = 0; i < n; ++ i)
  14.     {
  15.         cin >> b[i];
  16.     }
  17.     for (int i = 0; i < n; ++ i)
  18.     {
  19.         for (int j = 0; j < n; ++ j)
  20.         {
  21.             cin >> a[i][j];
  22.         }
  23.     }
  24. }
  25. int Ceil(int u, int v)
  26. {
  27.     return (u + v - 1)/v;
  28. }
  29. void solve()
  30. {
  31.     for (int mask = 0; mask < (1 << n); ++ mask)
  32.     {
  33.         for (int j = 0; j < n; ++ j)
  34.         {
  35.             if ((mask & (1 << j)) == 0)
  36.             {
  37.                 int damage = 1;
  38.                 for (int k = 0; k < n; ++ k)
  39.                 {
  40.                     if (mask & (1 << k))
  41.                     {
  42.                         damage = max(damage, a[k][j] - '0');
  43.                     }
  44.                 }
  45.                 dp[mask | (1 << j)] = min(dp[mask | (1 << j)], dp[mask] + Ceil(b[j], damage));
  46.             }
  47.         }
  48.     }
  49.     cout << dp[(1 << n) - 1] << '\n';
  50. }
  51. int main()
  52. {
  53.     ios_base::sync_with_stdio(false);
  54.     cin.tie(nullptr);
  55.     //freopen(TASK".INP", "r", stdin);
  56.     //freopen(TASK".OUT", "w", stdout);
  57.     int t = 1;
  58.     bool typetest = true;
  59.     if (typetest)
  60.     {
  61.         cin >> t;
  62.     }
  63.     for (int __ = 1; __ <= t; ++ __)
  64.     {
  65.         cout << "Case " << __ << ": ";
  66.         read();
  67.         solve();
  68.     }
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement