首页 > 其他分享 >P2340 [USACO03FALL] Cow Exhibition G

P2340 [USACO03FALL] Cow Exhibition G

时间:2024-05-13 13:08:39浏览次数:17  
标签:cow int 400000 vis P2340 Exhibition 800008 USACO03FALL dp

原题链接

题解

1.考虑到每个牛只有选或不选两种选择,这样暴力搜索的思路便产生了
2.还是上面的思路,怎么优化呢?
想想背包数组,其下标是什么?是体积
其值是是什么?是价值
是在体积相同的情况下选择价值最高的,本题也是,最优解一定是相同智商里情商最高的
3.价值和体积都是负数,怎么解决?

code

#include<bits/stdc++.h>
using namespace std;
int dp[800008]={0},vis[800008]={0};
struct
{
    int i,e;
}cow[405];
int main()
{
    memset(dp,-0x3f,sizeof dp);
    dp[400000]=0;//移动坐标轴,把400000看成零点
    vis[400000]=1;
    int n;
    cin>>n;
    int tot=0;
    for(int i=1;i<=n;i++) cin>>cow[i].i>>cow[i].e;


    for(int i=1;i<=n;i++)
    {
        if(cow[i].i>=0)
        {
            for(int k=800000;k>=cow[i].i;k--)
            {
                if(vis[k-cow[i].i])
                {
                    dp[k]=max(dp[k],dp[k-cow[i].i]+cow[i].e);
                    //printf("%d:%d\n",k,dp[k]);
                    vis[k]=1;
                }
            }
        }
        else
        {
            for(int k=0;k<=800000+cow[i].i;k++)//如果智商是负数,滚动数组要倒着来
            {
                if(vis[k-cow[i].i])
                {
                    dp[k]=max(dp[k],dp[k-cow[i].i]+cow[i].e);
                    //printf("%d:%d\n",k,dp[k]);
                    vis[k]=1;
                }
            }
        }
    }

    int ans=0;
    for(int i=400000;i<=800000;i++)
    {
        if(vis[i]&&dp[i]>=0)ans=max(ans,dp[i]+i-400000);
    }
    cout<<ans;
    return 0;
}

标签:cow,int,400000,vis,P2340,Exhibition,800008,USACO03FALL,dp
From: https://www.cnblogs.com/pure4knowledge/p/18189007

相关文章

  • P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G
    链接:https://www.luogu.com.cn/problem/P2341题目:思路:tarjan缩点:把所有强连通分量缩成一个点,然后统计出度为0的缩点,如果只有一个,那么能成为明星的数量就是该缩点扩充后的个数;如果不止一个,那就是0.代码:额,就是不知道为什么debug了两节课.......#include<iostream>#include<v......
  • AT_joig2021_d 展覧会 2 (Exhibition 2) 题解
    题目传送门前置知识二分答案解法最小值最大,考虑二分答案。关于check函数的书写,比luoguP1182数列分段SectionII多了个对位置的判定,注意对当前是第一次展出时进行特判。代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#defineullunsigne......
  • 2023 Music Exhibition
    ......
  • 洛谷P2341 [USACO03FALL] 受欢迎的牛 G
    P2341受欢迎的牛G题解这题我们需要了解强连通分量一、定义在有向图\(G\)中,如果两个顶点\(u\),\(v\)间有一条从\(u\)到\(v\)的有向路径,同时还有一条从\(v\)到\(u\)的有向路径,则称两个顶点强连通。如果有向图\(G\)的每两个顶点都强连通,称\(G\)是一个强连通......
  • [刷题笔记] Luogu P2340 [USACO03FALL] Cow Exhibition G
    ProblemSolution乍看可能没有思路。我们注意到本题是牵扯到一头奶牛选or不选的问题,非常自然地想到01背包。接下来我们就尝试将本题背景转换成01背包问题。我们可以将智商转换成容量,情商转换成价值。(当然反过来也可)然后就可以套用01背包板子了:\[f_{i,j}=min(f_{i-1,j},f_{i-1......
  • papamelon 344. 奶牛展览 Cow Exhibition(挑战程序设计竞赛) dp
    地址https://www.papamelon.com/problem/344贝西有权选择让哪些奶牛参加展览。由于负的智商或情商会造成负面效果,所以贝西不希望出展奶牛的智商之和小于零,或情商之和小于零。满足这两个条件下,她希望出展奶牛的智商与情商之和越大越好,请帮助贝西求出这个最大值。输入第一行:......
  • 洛谷P2341/USACO03FALL 受欢迎的牛
    题意分析题目链接喜欢是单向的,喜欢有传递性……Emmm这听起来好像……对了,就是连通性问题!我们不妨将奶牛之间的喜欢关系表示为一条条单向边,怎么求明星奶牛的数量呢?这里......
  • 竞赛图初探 || CF1779E Anya's Simultaneous Exhibition - 竞赛图 - 交互 -
    题目链接:https://codeforces.com/contest/1779/problem/E题解:将一个完全图的每条边定向,构成的有向图叫做竞赛图也很好理解,\(n\)个人两两比赛,肯定有胜有负,赢家向负者连......
  • Anya's Simultaneous Exhibition
    题意description交互题。一共\(n(n\leq250)\)个人,两两之间存在胜负关系(不具有传递性),现在举行锦标赛,每次从剩下的人里选两个人决斗,胜负关系中胜者留下,负者淘汰。$n-1$......
  • 「题解」Codeforces 930E Coins Exhibition
    看到题就先容斥。然后容斥系数太难算了就寄了,大概要分好几种情况讨论,于是就弃了。不容斥也能做。考虑限制将串划分成了若干段,然后一段一段dp.有没有什么好的方法描述这个......