zoukankan      html  css  js  c++  java
  • 第二题 bfw和zhk的故事

    第二题 bfw和zhk的故事

    这总算是真正的动规了,因为有些同学看不懂,所以给大家了提示:只有当赵海鲲和毕凡雯的智商大于ai是,才能做题,然后智商下降,同时也可以选择不做。
    求的是赵海鲲最大限度做的题数-毕凡雯最大限度做的题数

    那么根据贪心算法,我们应该对ai进行排序

    显然需要用到优秀的结构体,然后进行排序

    dp的方程式其实就是一个背包罢了

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

    dp方程有了,那边界条件呢?对了你猜对了,全赋值为0。

    dp方程有了,边界条件有了,代码也有了吧。

    #include <bits/stdc++.h>
    using namespace std;
    int dp[1010],dq[1010];
    struct node{
    	int a,b,c;
    }a[25];
    bool cmp(node a,node b){
    	a.a>b.a;
    }
    int main(){
        int x,y,m;    
        scanf("%d%d%d",&x,&y,&m);
        for(int i=1;i<=m;i++)scanf("%d%d%d",&a[i].a,&a[i].b,&a[i].c);
        sort(a+1,a+m+1,cmp);
        for(int i=1;i<=m;i++){
            for(int j=x;j>=a[i].a;j--)dp[j]=max(dp[j-a[i].b]+1,dp[j]);
            for(int j=y;j>=a[i].a;j--)dq[j]=max(dq[j-a[i].c]+1,dq[j]);
        }int ans1=dp[x],ans2=dq[y];
        cout<<ans1-ans2;
        return 0;
    }
    

    本题只有两个数据,其中一个数据是样例,如果你不排序也能AC,这道题其实是送分的。

  • 相关阅读:
    自定义类似MessageBox小窗体操作
    WinForm 遍历用户控件里CheckBox
    WinForm BaseClass类常用通用方法
    分页的几种写法
    克服粗心毛病的伪代码
    C++queue的使用
    Unix网络编程学习 < 一 >
    使用log4cxx
    memset函数
    libcurl在windows下的使用
  • 原文地址:https://www.cnblogs.com/zhaohaikun/p/12817004.html
Copyright © 2011-2022 走看看