jzoj100044-abcd【多重背包,二进制压缩,dp】

正题


题目大意

给出长度为nnn的序列a,b,c,da,b,c,da,b,c,d
求一个序列eee满足
(∑i=1nei∗ci)=0(e∈[ai..bi])(\sum _{i=1}^ne_i*c_i)=0(e\in [a_i..b_i])(i=1neici)=0(e[ai..bi])

max{∑i=1nei∗di}max\{\sum_{i=1}^ne_i*d_i\}max{i=1neidi}


解题思路

我们把这个转换成一个多重背包问题,拿ai∼bia_i\sim b_iaibi个物品,要求价格之和为000,且价值最大。
我们可以发现对于每个物品我们都至少aia_iai个,所有我们可以直接把aia_iai个丢进背包里,然后每个物品数量变为bi−aib_i-a_ibiai个,做多重背包。
要二进制压缩,不然会TTT


codecodecode

#include<cstdio>
#include<algorithm>
#include<cstring>
#define N 210
using namespace std;
int n,m,tmp,num;
int a[N],b[N],c[N],d[N];
int w[10050],v[10050],f[100050];
int main()
{memset(f,0xcf,sizeof(f));f[0]=0;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);b[i]-=a[i];tmp+=a[i]*d[i];m-=a[i]*c[i];}for(int k=1;k<=n;k++)//二进制压缩{for(int i=1;i<=b[k];i*=2){w[++num]=c[k]*i;v[num]=d[k]*i;b[k]-=i;}if(b[k]) w[++num]=b[k]*c[k],v[num]=d[k]*b[k];}for(int i=1;i<=num;i++)//背包for(int j=m;j>=w[i];j--)f[j]=max(f[j],f[j-w[i]]+v[i]);printf("%d",f[m]+tmp);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL主从数据库配置和常见问题

转载自 MySQL主从数据库配置和常见问题 本篇主要介绍MySQL的主从数据配置方法。公司运维能力不是太好&#xff0c;数据库最近出了一次问题&#xff0c;导致丢失了一天的数据&#xff0c;并且某个服务宕机一晚上。为了避免再次出现类似问题&#xff0c;我决定添加一个Slave服务…

试编写算法,设任意n个整数存放于数组A[1...n]中,将所有正数排在所有负数前面(要求:算法时间复杂度为O(n))

#include<bits/stdc.h> using namespace std;int main() {int n,*a,t;cout<<"请输入数组长度&#xff1a;";cin>>n;anew int [n];cout<<"请输入数组元素&#xff1a;";for(int i0; i<n; i) cin>>a[i];int i0,jn-1;while(…

Entity Framework Core 2.0 使用代码进行自动迁移

一.前言 我们在使用EF进行开发的时候&#xff0c;肯定会遇到将迁移更新到生产数据库这个问题&#xff0c;前面写了一篇文章介绍了Entity Framework Core 2.0的入门使用&#xff0c;这里面介绍了使用命令生成迁移所需的SQL&#xff0c;然后更新到生产数据库的方法。这里还有另一…

【JDBC】各版本jar包下载网址及Tomcat下载

http://central.maven.org/maven2/mysql/mysql-connector-java/ 自己的mysql的版本号会在登录之后显示 Tomcat链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bOMY_6hp7nV5KpU496YPlA 提取码&#xff1a;rerg

欢乐纪中某B组赛【2018.12.15】

前言 题目还好&#xff0c;都是装作很难&#xff0c;其实都不考高深算法。 某位A组dalao来水了个AK。 而且题号都很诡异 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC3332017myself2017myself2017myself22022022010010010010010010…

Mybatis中强大的功能元素:resultMap

转载自 Mybatis中强大的功能元素&#xff1a;resultMap 前言 在Mybatis中&#xff0c;有一个强大的功能元素resultMap。当我们希望将JDBC ResultSets中的数据&#xff0c;转化为合理的Java对象时&#xff0c;你就能感受到它的非凡之处。正如其官方所述的那样&#xff1a; re…

将编号为0和1的两个栈存放于一个数组空间V[m]中。

目录 1.题目描述 2.算法实现 1.题目描述 将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空&#xff1b;当第1号栈的栈顶指针top[1]等于m时该栈为空。两个栈均从两端向中间增长&#xff08;见图&#xff09;…

【JDBC】Eclipse连接Mysql

学习完servlet终于可以学习JDBC了&#xff0c;下载安装完mysql&#xff0c;导入jar包后&#xff0c;就可以利用java对mysql进行一系列的操作了 连接数据库并插入数据的代码 package com.k1998;import java.sql.Connection; import java.sql.Driver; import java.sql.DriverMa…

ASP.NET Core 2.0 依赖注入

问题 如何使用 ASP.NET Core 服务容器进行依赖注入&#xff1f; 答案 创建一个服务 public interface IGreetingService { string Greet(string to); } public class GreetingService : IGreetingService { public string Greet(string to){ return $"H…

CF741D-Arpa's letter-marked tree and Mehrdad's Dokhtar-kosh paths【树上启发式合并】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidCF741D 题目大意 一棵根为111的树&#xff0c;每条边上有一个字符(a−v(a-v(a−v共222222种)))。 一条简单路径被称为Dokhtar−koshDokhtar-koshDokhtar−kosh当且仅当路径上的字符经过重新排序后可以…

用数组存储字符C进行回文检测

#include<bits/stdc.h> using namespace std;int main() {char c[20];int i,j;cout<<"请输入字符c:";cin>>c;int nstrlen(c);for(i0,jn-1;i<j;i,j--){if(c[i]!c[j]) break;}if(i>j) cout<<"是回文&#xff01;";else cout&l…

面试 - 要不简单聊一下你对MySQL索引的理解?

转载自 面试 &#xff0d; 要不简单聊一下你对MySQL索引的理解&#xff1f; MySQL索引&#xff1f;这玩意儿还能简单聊&#xff1f;明显是在挖坑&#xff0c;幸好老夫早有准备&#xff0c;切听我一一道来。 一、索引是什么? 索引是帮助MySQL高效获取数据的数据结构。 二、…

ABP从入门到精通(4):使用基于JWT标准的Token访问WebApi

项目&#xff1a;asp.net zero 4.2.0 .net core&#xff08;1.1&#xff09; 版本 我们做项目的时候可能会遇到需要提供api给app调用&#xff0c;ABP动态生成的WebApi提供了方便的基于JWT标准的Token访问方式供我们访问API&#xff0c;不用在代码上做任何改动&#xff0c;很方便…

jzoj2700-数字【数论,LCM】

正题 luogu题目链接:https://www.luogu.org/problemnew/show/P4193 题目大意 定义一个函数D(x)D(x)D(x)和S(x)S(x)S(x)&#xff0c;S(x)S(x)S(x)表示xxx的各位之和 D(n){D(S(n)),S≥10S(n)D(n)\left\{\begin{matrix} \\D(S(n)),S\geq 10 \\S(n) \\ \\ \end{matrix}\right.D(n…

【Servlet】获取并输出服务器获得的数据

获取&#xff1a; String name req.getParameter(“username”); System.out.println(name); 输出 PrintWriter pw resp.getWriter(); pw.write(name); 学习serlvet的最佳学习地点https://www.bilibili.com/video/av68412637/?p136servlet知识点&#xff1a;servlet接口&…

回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈)

文章目录 1.题目描述 2.算法实现 1.题目描述 回文是指正读反读均相同的字符序列&#xff1b;如“abba”和“abdba”均是回文&#xff0c;但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。&#xff08;提示&#xff1a;将一半字符入栈&#xff09; 2.算法实现…

ASP.NET Core 2.0 + EF6 + Linux +MySql混搭

好消息&#xff01;特好消息&#xff01;同时使用ASP.NET Core 2.0和.NET Framework类库还能运行在linux上的方法来啦&#xff01; 是的&#xff0c;你没有看错&#xff01;ASP.NET Core 2.0&#xff0c;.NET Framework类库&#xff0c;linux通通都给你&#xff0c;不要998只要…

面试被问Mysql没答上来?阿里P5:总结了55道常见面试题,收藏一波

转载自 面试被问Mysql没答上来&#xff1f;阿里P5:总结了55道常见面试题&#xff0c;收藏一波 正文开始前&#xff0c;分享阿里 P8 高级架构师吐血总结的 《Java 核心知识体系&面试资料.pdf》, 非卖课程的哟&#xff01; 阿里 P8 级高级架构师吐血总结的一份 Java 核心知…

jzoj3511-cza的蛋糕【状态压缩dp,dfs】

正题 题目大意 n∗mn*mn∗m的矩阵&#xff0c;有些阻挡&#xff0c;求至少要多少个1∗21*21∗2或2∗12*12∗1的块铺在上面使得没用可以继续铺的地方。 解题思路 因为mmm很小&#xff0c;明显状压。 用fi,j,kf_{i,j,k}fi,j,k​表示第iii行&#xff0c;上一行状态为jjj&#xff…

【C单链表】链表与尾插法

struct struct的几种用法。 1、基本结构体定义 struct stu {int score;int id;char name[20]; };2、进阶结构体定义 struct stu {int score;int id;char name[20]; }st1;下面多了个st1&#xff0c;其实就相当于 struct stu {int score;int id;char name[20]; }; struct stu…