zoukankan      html  css  js  c++  java
  • 【SWUST OJ】 698: Independent Task Scheduling

    Independent Task Scheduling

    首先给予dp数组定义

    dp[i][j] 为前i个工作,A工作时间为j时,B的工作时间

    然后这题就变成水题了

    首先状态转移方程为 

    dp[i][j] = min(dp[i-1][j-a[i]],dp[i-1][j] + b[i]);

    然后枚举每一个A所需要的时间直到A机器所有作业时间总和

    取得max(i,dp[n][i]) 为做完所有作业需要的时间, 然后取最小值即为所求

     

    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <stack>
    #include <queue>
    #include <map>
    #include <set>
    #include <vector>
    #include <cmath>
    #include <bitset>
    #include <algorithm>
    #include <climits>
    #include<cstring>
    using namespace std;
    #define Pair pair<int, int>
    #define ULL unsigned long long
    #define LS l,mid,lson
    #define RS mid+1,r,rson
    #define MEM(a,x) memset(a,x,sizeof(a))
    #define W(a) while(a)
    #define gcd(a,b) __gcd(a,b)
    #define LL long long
    #define MOD 1000000007
    #define INF 0x3f3f3f3f
    #define EXP 1e-8
    #define lowbit(x) (x&-x)
    #define girlfriend zy
    #define ll long long
    const int maxn = 100000;
    using namespace std;
    int a[maxn];
    int b[maxn];
    int dp[maxn][1000];
    int main()
    {
        int n;
        cin>>n;
        int sum = 0;
        int ans = INF;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            sum+=a[i];
        }
        for(int i=1;i<=n;i++)
        {
            cin>>b[i];
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=0;j<=sum;j++)
            {
                if(a[i] <= j)
                {
                    dp[i][j] = min(dp[i-1][j-a[i]],dp[i-1][j] + b[i]);
                }
                else
                {
                    dp[i][j] = dp[i-1][j] + b[i];
                }
            }
        }
        for(int i=1;i<=sum;i++)
        {
            int t;
            t = max(i,dp[n][i]);
            ans = min(t,ans);
        }
        cout<<ans<<endl;
    }
    View Code

     

     

     

     

  • 相关阅读:
    OpenDaylight二层转发机制实验
    OpenvSwitch的GRE、Vxlan隧道
    Open vSwitch实验
    实验五 RYU控制器基本应用
    实验四 POX控制器编程实验指导
    实验二 OpenFlow应用实践
    SDN实验三 OpenFlow协议分析
    SDN实验一:mininet应用实践
    序列幂次求和的快速计算
    luogu P1409 骰子 题解
  • 原文地址:https://www.cnblogs.com/lightWh1te/p/14145850.html
Copyright © 2011-2022 走看看