zoukankan      html  css  js  c++  java
  • 百度之星2017资格赛1003 度度熊与邪恶大魔王

    思路:

    真是菜的不行。

    实现:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 
     6 const int INF = 0x3f3f3f3f;
     7 int dp[11][1001], A[100005], B[100005], K[1005], P[1005], n, m; 
     8 
     9 int main()
    10 {
    11     while (scanf("%d %d", &n, &m) != EOF)
    12     {
    13         for (int i = 0; i < n; i++) scanf("%d %d", &A[i], &B[i]);
    14         for (int i = 0; i < m; i++) scanf("%d %d", &K[i], &P[i]);
    15         memset(dp, 0x3f, sizeof dp);
    16         for (int j = 0; j <= 10; j++)
    17         {
    18             dp[j][0] = 0;
    19             for (int i = 0; i < m; i++)
    20             {
    21                 if (P[i] > j)
    22                 {
    23                     for (int k = 1; k <= 1000; k++)
    24                     {
    25                         dp[j][k] = min(dp[j][k], K[i] * ((k + P[i] - j - 1) / (P[i] - j)));
    26                     }
    27                 }
    28             }
    29         }
    30         
    31         for (int j = 0; j <= 10; j++)
    32         {
    33             for (int i = 1; i < m; i++)
    34             {
    35                 for (int k = 1; k <= 1000; k++)
    36                 {
    37                     if (P[i] > j && k - (P[i] - j) >= 0)
    38                     {
    39                         dp[j][k] = min(dp[j][k], dp[j][k - (P[i] - j)] + K[i]);
    40                     }
    41                 }
    42             }
    43         }
    44         
    45         long long sum = 0;
    46         bool flg = true;
    47         for (int i = 0; i < n; i++)
    48         {
    49             if (dp[B[i]][A[i]] >= INF)
    50             {
    51                 flg = false; break;
    52             }
    53             sum += (long long)dp[B[i]][A[i]];
    54         }
    55         if (!flg) puts("-1");
    56         else printf("%I64d
    ", sum);
    57     }
    58     return 0;
    59 }
  • 相关阅读:
    数据库系统理论概念
    SQL常用函数
    Android中几种常见的定时刷新方式
    Android Resource介绍和使用
    Android 使用Loader示例
    Android框架浅析之锁屏(Keyguard)机制原理
    Android Power Management
    Android中蓝牙的基本使用
    分组ListView使用技巧
    使用CursorLoader异步加载数据
  • 原文地址:https://www.cnblogs.com/wangyiming/p/7296509.html
Copyright © 2011-2022 走看看