首页 > 其他分享 >E. Money Buys Happiness

E. Money Buys Happiness

时间:2024-05-22 16:42:26浏览次数:24  
标签:Money ll ans cin long Happiness Buys dp

原题链接

题解

观察到h不大于1e5,于是拿h做文章
如果想要在第 \(i\) 个月的幸福值达到 \(j\) 那么第 \(i-1\) 个月的幸福值一定能达到 \(j-h_i\) 而且 \(cost_{[i-1][j-h_i]}+c_i \leq x·(i-1)\)
记得用滚动数组优化,因为这里 \(i\) 只和 \(i-1\) 的小幸福值有关

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll c[55]={0},h[55]={0};
ll dp[100005]={0};
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t;
    cin>>t;
    while(t--)
    {
        ll m,x;
        cin>>m>>x;

        ll happy=0;

        for(ll i=1;i<=m;i++)
        {
            cin>>c[i]>>h[i];
            happy+=h[i];
        }


        for(ll j=0;j<=happy;j++) dp[j]=5e9+2;
        dp[0]=0;
        ll ans=0;
        for(ll i=1;i<=m;i++)
        {
            for(ll j=happy;j>=h[i];j--)
            {
                if(x*(i-1)-dp[j-h[i]]>=c[i])
                {
                    dp[j]=min(dp[j],dp[j-h[i]]+c[i]);
                    ans=max(ans,j);
                }
            }
        }

        cout<<ans<<"\n";
    }
    return 0;
}

标签:Money,ll,ans,cin,long,Happiness,Buys,dp
From: https://www.cnblogs.com/pure4knowledge/p/18206609

相关文章

  • G. Money Buys Less Happiness Now
    原题链接题解假如最后有\(k\)个月购买过幸福,那么这\(k\)个月的价格一定是前\(k\)小的code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;intmain(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);intt;cin>>t;whil......
  • Codeforces 1974G Money Buys Less Happiness Now
    考虑到有一种贪心的思路就是能选就选。显然这是错的,因为可能存在后面更优的情况,即当\(c_i>c_j(i<j)\)时,选\(j\)肯定比选\(i\)更优,因为后面剩下的更多且中间也留下了一些。于是考虑反悔贪心。还是一样的,如果能选就一定选上。否则来说,考虑对于当前已经选了的中的最大......
  • [国家集训队] happiness 题解
    发现可以做如下建图:对于前两组输入,从\(s\)向所有代表学生的点连一条边,容量为其学习文科的喜悦值;从所有代表学生的点向\(t\)连一条边,容量为其学习理科的最大值。对于后四组输入,建两个点\(x,y\),从\(s\)向\(x\),从\(y\)向\(t\)分别连容量为相邻两人同时学文/理时额......
  • MoneyBox
    MoenyBox渗透测试过程靶机IP:192.168.56.120端口扫描nmap-Pn-sV-sC192.168.56.120PORTSTATESERVICEVERSION21/tcpopenftpvsftpd3.0.3|ftp-anon:AnonymousFTPloginallowed(FTPcode230)|_-rw-r--r--1001093656Feb2620......
  • MoneyPrinterTurbo-利用AI大模型,一键生成视频
    地址https://github.com/harry0703/MoneyPrinterTurboWindows百度网盘:https://pan.baidu.com/s/1bpGjgQVE5sADZRn3A6F87w?pwd=xt16提取码:xt16下载后,建议先双击执行update.bat更新到最新代码,然后双击start.bat启动Web界面我这里用的源码安装1:创建虚拟环境gitclo......
  • 利用列表编写一个发红包程序,要求输入红包金额money,红包个数n,显示由每个红包的金额所构
    声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。【第7次课]实验五组合数据类型(一)4.简答题利用列表编写一个发红包程序,要求输入红包金额money,红包个数n,显示由每个红包的金额所构成的列表。程序运行输出格式参考下图:[提示](1)可以使用random......
  • 全自动ai生成视频MoneyPrinterTurbo源码
    只需提供一个视频 主题 或 关键词 ,就可以全自动生成视频文案、视频素材、视频字幕、视频背景音乐,然后合成一个高清的短视频。Web界面API界面GitHub开源地址:https://github.com/harry0703/MoneyPrinterTurbo源码下载:https://caiyun.139.com/m/i?135CmVGQA5j0s提......
  • JB Wants to Earn Big Money(The 19th Zhejiang Provincial Collegiate Programming Co
    #include<bits/stdc++.h>#defineendl'\n'usingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdin);freopen......
  • 《the psychology of money》金钱心理学-英文原版书籍-读书笔记
    ————————————————————introduction————————————————————2024.01.20尽管我们周围的世界充满了明显的事物和现象,但人们往往忽视它们“softskills”financialsuccessisnotahardscience.Itisasoftskill,wherehowyoube......
  • 14 Money Trees
    MoneyTrees用双指针不断的收缩区间即可#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+10;inta[N],b[N];voidsolve(){ intn,k; cin>>n>>k; for(inti=1;i<=n;i++)cin>>a[i]; for(inti=1;i<=n;i++)cin>>b[i]; intans=0......