首页 > 其他分享 >YACS2023年2月乙组

YACS2023年2月乙组

时间:2023-02-23 11:36:34浏览次数:50  
标签:int rep 乙组 chmax dp YACS2023

T3:最大子集

本题是 01背包 的变种题

dp[i] 表示选到的奶牛的智商总和为 \(i\) 时对应的情商总和的最大值

这里由于 \(x\) 可能是负数,所以需要将 \(i\) 向后偏移 \(3e5\)

特别地,在转移时,当 \(x>0\) 时,倒序枚举 \(i\);而当 \(x < 0\) 时,则需要正序枚举 \(i\)
理由也很简单,是为了保证 \(dp\) 转移的无后效性

原题:[USACO03FALL]Cow Exhibition G

代码实现
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)

using namespace std;

inline void chmax(int& x, int y) { if (x < y) x = y; }

int dp[600005];

int main() {
    int n;
    cin >> n;
    
    memset(dp, 0xcf, sizeof dp);
    
    const int S = 300000, M = S*2;
    dp[S] = 0;
    rep(i, n) {
        int x, y;
        cin >> x >> y;
        
        if (x >= 0) {
            for (int j = M; j >= x; --j) {
                chmax(dp[j], dp[j-x]+y);
            }
        }
        else {
            for (int j = 0; j-x <= M; ++j) {
                chmax(dp[j], dp[j-x]+y);
            }
        }
    }
    
    int ans = 0;
    for (int i = S; i <= M; ++i) {
        if (dp[i] >= 0) {
            chmax(ans, i+dp[i]-S);
        }
    }
    
    cout << ans << '\n';
    
    return 0;
}

标签:int,rep,乙组,chmax,dp,YACS2023
From: https://www.cnblogs.com/Melville/p/17147293.html

相关文章

  • YACS2023年2月丙组
    T1:格式改写代码实现s=input()cnt=0forcins:ifc.isupper():cnt+=1ans=min(cnt,len(s)-cnt)print(ans)T2:倍数统计代码实......
  • YACS 2023年1月月赛 乙组 T4 加与乘(二) 题解
    题目链接应大家的要求,早上起来更一下乙组T4。这一道题目我们发现不仅会加元素了,还会重复执行任务。很容易想到用两个树状数组来维护每个任务的执行次数,以及每个单元格......
  • YACS2023年1月乙组
    T1:无限延展见P3612[USACO17JAN]SecretCowCodeS代码实现#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;intmain(){ strings;llk;......
  • YACS2023年1月丙组
    T3:找零对于\(20\)块,优先找\(10+5\),其次是\(5+5+5\)代码实现#include<bits/stdc++.h>#definerep(i,n)for(inti=0;i<(n);++i)usingnamespacestd;......
  • YACS 2022年12月月赛 乙组 T1 拼接单词 题解
    一道结论题,代码相当的短。我们先来考虑会拼出重复的情况:那必定是第一个字符串里有一个$a$(其他的也行),第二个也有一个$a$。那么我们就可以选择拿第一个字符串$a$前面的......
  • YACS 2022年12月月赛 乙组 T2 八进制小数 题解
    纪念一下,两件事。$1.$打$YACS$一年了,时间过得好快啊。$2.$第一次$AK$乙组。高精板子。$8$进制转十进制,很简单。小数部分第一位的数字乘上$8^{-1}$,第二位就乘上......
  • YACS 2022年11月月赛 乙组 T3 菜单设计 题解
    题目链接上完编程课回来的深夜,更一篇吧。这一题一看数据范围$:18$,阶乘暴力打不了,就是状压。其实我还是比较喜欢状压的,不过这几个月怎么这么多状压?首先:设计状态不难发......
  • YACS 2022年11月月赛 乙组 T1 数对统计 题解
    好久没更了,闲话一句,我的初赛成绩只有$71.5$,$76$才能进$NOIP$,所以就更一篇吧首先先考虑暴力算法,枚举两个数,设这两个数为$x$和$y$,如果$f[x][y]=false$,那就标记为$t......
  • YACS2021年7月乙组
    T1:牛奶供应(三)站在提前生产的角度来思考,为了缩小总成本,如果某天足够便宜就多生产一些牛奶。但这样的想法会遇到一个困难,也就是现在生产牛奶到底要生产多少箱,它是由之后的若......
  • YACS2022年9月乙组
    T1:区间交集(二)这种统计有多少对满足题意,首先想下暴力\(O(n^2)\)复杂度正解:判断区间是否有交集,其实比较麻烦,怎么简单判断?如果已知左端点的大小顺序,那么判断是否有交集......