POJ1015-Jury Compromise【01背包,dp】

正题

题目链接:http://poj.org/problem?id=1015


题目大意

每个人有A值和B值,要求选M个人,使这M个人的|SumASumB||SumA−SumB|最小。


解题思路

我们用SumASumBSumA−SumB作为原本的价格,然后用fi,jfi,j表示已经选了i个人,SumASumBSumA−SumB为j时的情况,然后用dd数组统计每个状态是从哪个转移过来的,然后进行dp。

注意:c++没有负数下标,所以要加一个m×20


code

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,f[31][801],a[811],b[811],d[31][801],x,wr[31],t;
bool write(int x,int y,int z)//判断路径是否正确
{while(x&&d[x][y]!=z){y-=a[d[x][y]]-b[d[x][y]];x--;}return !x;
}
int main()
{n=1;while(scanf("%d%d",&n,&m)&&n!=0&&m!=0){memset(f,-1,sizeof(f));memset(d,0,sizeof(d));f[0][m*20]=0;for(int i=1;i<=n;i++){scanf("%d%d",&a[i],&b[i]);}for(int i=1;i<=m;i++)for(int j=0;j<=m*40;j++)if(f[i-1][j]>=0)//有这个状态for(int k=1;k<=n;k++){if(f[i][j+a[k]-b[k]]<f[i-1][j]+a[k]+b[k]&&write(i-1,j,k))//是否可以转移{f[i][j+a[k]-b[k]]=f[i-1][j]+a[k]+b[k];d[i][j+a[k]-b[k]]=k;}}printf("Jury #%d\n",++t);int k1=0;while(k1<=m*20&&f[m][m*20+k1]<0&&f[m][m*20-k1]<0) k1++;//寻找答案int ans=f[m][m*20+k1]>f[m][m*20-k1]?m*20+k1:m*20-k1;//计算正负printf("Best jury has value %d for prosecution and value %d for defence:\n",(ans+f[m][ans]-m*20)>>1,(f[m][ans]-ans+m*20)>>1);//输出for (int i=1,j=m,k=ans;i<=m;i++){wr[i]=d[j][k];k-=a[d[j][k]]-b[d[j][k]];j--;}//记录方案sort(wr+1,wr+1+m);//按顺序for (int i=1;i<=m;i++) printf(" %d",wr[i]);printf("\n\n");}
}

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

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

相关文章

JavaFX其他事件

一、其他事件 InputMethodEvent.InputMethodTextChanged 文本输入改变 ContextMenuEvent.CONTEXT_MENU_REQUESTED 上下文菜单请求 二、用法 node.setOnXX(event->{//do something });node.addEventFilter(XXEvent.XX, event -> {//do something});

springboot解析txt文件顺便加到数据库中(nohup文件)

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 现在是&#xff1a;2022年4月20日13:33:23 以前是怎么都没想到&#xff0c;我需要在服务器的nohup文件中找记录&#xff0c;然后往数据库里面更新。具体因为啥不提了&#xff0c;说多…

ASP.Net Core 2.0中的Razor Page不是WebForm

随着.net core2.0的发布&#xff0c;我们可以创建2.0的web应用了。2.0中新东西的出现&#xff0c;会让我们忘记老的东西&#xff0c;他就是Razor Page。下面的这篇博客将会介绍ASP.Net Core 2.0中的Razor Page。 在ASP.Net Core 2.0新特点之一就是支持Razor Page。今天的Razor…

Ch5302-金字塔【区间dp】

正题 题目链接:http://contest-hunter.org:83/contest/0x50%E3%80%8C%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E3%80%8D%E4%BE%8B%E9%A2%98/5302%20%E9%87%91%E5%AD%97%E5%A1%94 题目大意 给出一个欧拉序(只要到达每一个结点就把他加进序列的那种,编号会重复)&#xff0c;求有多…

常用公有云接入

一、云平台 1、AWS(亚马逊) 2、谷歌 3、AZURE(微软) 4、阿里 5、腾讯 6、华为 二、接入方式 1、REST API 2、SDK 三、云ECS 1、实例 2、系统盘 3、数据盘 4、网关 5、公有IP 6、共享带宽&#xff08;阿里云&#xff09;

记录几个部署项目常用的命令

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 查询运行项目的进程 ps -aux|grep farbeat 杀死进程 kill -9 1600336进入目录 cd /www/wwwroot/farbeat/查看文件 ls将日志输出在nohup文件中的方式启动项目(注意.jar文件的名字) nohup j…

C#最佳工具集合:IDE、分析、自动化工具等

C#是企业中广泛使用的编程语言&#xff0c;特别是那些依赖微软的程序语言。如果您使用C#构建应用程序&#xff0c;则最有可能使用Visual Studio&#xff0c;并且已经寻找了一些扩展来对您的开发进行管理。但是&#xff0c;这个工具列表可能会改变您编写C#代码的方式。 C#编程的…

jzoj1768,P2704,POJ1185-[NOI2001]炮兵阵地【状态压缩dp】

正题 POJ链接:http://poj.org/problem?id1185 jzoj链接:https://jzoj.net/senior/#main/show/1768 洛谷评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP2704 正题 每个炮兵攻击范围是上左下右各2格&#xff0c;高山地区不可以放炮兵&#xff0c;求所以…

常用公有云接入——AZURE

一、概念 1、订阅 可以使用订阅为组织内的团队提供访问开发环境&#xff08;即测试、生产、开发、临时部署等&#xff09;和项目的权限。针对每个应用程序环境创建不同的订阅&#xff0c;并为每个订阅分配不同的服务管理员帐户&#xff0c;这是保护每个环境安全的一个好方法。…

记录几个常用部署项目的命令,以备后用!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”查询运行项目的进程ps -aux|grep farbeat杀死进程kill -9 1600336进入目录cd /www/wwwroot/farbeat/查看文件ls将日志输出在nohup文件中的方式启动项目(注意.jar文件的名字)nohup java -…

分布式测试工具Beetle.DT的部署并进行HTTP,SQL,TCP压测

由于Beetle.DT是一个分布式压力测试工具&#xff0c;所以在使用上并不像普通工具那样安装运行这么简单&#xff1b;由于工具涉及到测试管理中心&#xff0c;节点和管理端等工具&#xff1b; 所以必须要进行相应的部署才能运行。接下来详解一下如果安装Beetle.DT并进行简单的HTT…

Ch4201-楼兰图腾【树状数组】

正题 题目链接:http://contest-hunter.org:83/contest/0x40%E3%80%8C%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E8%BF%9B%E9%98%B6%E3%80%8D%E4%BE%8B%E9%A2%98/4201%20%E6%A5%BC%E5%85%B0%E5%9B%BE%E8%85%BE 题目大意 给若干个点&#xff0c;求可以得到/\和V的形状各多少个。 解…

常用公有云接入——谷歌

一、概念 1、项目 一个账号有唯一的项目&#xff0c;所有虚拟机都在project里面建。 2、计算引擎 虚拟机资源。 二、创建方式 1、页面控制台 2、gcloud命令行 3、REST API 4、SDK 三、Java SDK 1、创建API服务凭据&#xff0c;并下载P12文件 2、Maven <dependency&…

elementui实现表格单选功能

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 需求是这样的&#xff1a;用户单击购买产品的按钮时&#xff0c;会出现一个产品的列表&#xff0c;但是呢只能买一种产品&#xff0c;暂时不可以多选。效果如下所示&#xff1a; 原来…

element-ui实现表格单选的功能

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”前言现在是&#xff1a;2022年4月20日13:33:23需求是这样的&#xff1a;用户单击购买产品的按钮时&#xff0c;会出现一个产品的列表&#xff0c;但是呢只能买一种产品&#xff0c;暂时不…

常用公有云接入——阿里

一、术语 中文英文说明地域Region阿里云建设的数据中心。资源创建成功后无法更换地域。可用区Zone同一地域内&#xff0c;电力和网络互相独立的物理数据中心。一个地域下可以有多个可用区。同一地域内可用区之间内网互通并且故障隔离&#xff0c;云服务器 ECS 网络延时低。实例…

ASP.NET Core Razor 视图组件

视图组件简介 在新的ASP.NET Core MVC中&#xff0c;视图组件类似于局部视图&#xff0c;但它们更强大。视图组件不使用模型绑定&#xff0c;仅依赖于您在调用时提供的数据。 视图组件特性&#xff1a; 呈现页面响应的某一部分而不是整个响应包括在控制器和视图之间发现的关…

POJ3468-A Simple Problem with Integers【线段树,树状数组,分块】

正题 题目链接&#xff1a;我是链接 其实洛谷线段树模板也是一样的&#xff1a;三种方法AC评测链接 题目大意 要求支持区间修改&#xff0c;区间求和。 线段树 直接用一个lazy标记&#xff0c;在之前的博客里有说 code1 #include<cstdio> #include<algorithm>…

“JSON parse error: Unexpected character (‘1‘ (code 49))的解决方式

现在是&#xff1a;2022年4月30日22:29:49 大家好&#xff0c;我是雄雄。 刚刚在调用接口的时候&#xff0c;出现了个错误&#xff1a; {"code": 400,"success": false,"data": null,"msg": "JSON parse error: Unexpected char…

三个好用的并发工具类

转载自 三个好用的并发工具类 以前的文章中&#xff0c;我们介绍了太多的底层原理技术以及新概念&#xff0c;本篇我们轻松点&#xff0c;了解下 Java 并发包下、基于这些底层原理的三个框架工具类。 它们分别是&#xff1a; 信号量 Semaphore 倒计时门栓 CountDownLatch …