题目大意:要求你从n个人中选出m个,每个人有两个值p[i],D[i],要求选出的人p总和与D总和的差值最小。若有相同解,则输出p总+D总最大的方案。

动态规划。

一直在想到底是n枚举外面还是m放外面,好像两者都可以?

做了越来越多的那种“当前层改变下一层”,乍一看题解还以为这是道斜率优化呢。

#include<cstdio>
#include<cstring>
#include<algorithm>
#define inf 1000000000
using namespace std;
int cas,minpd,n,m;
][],path[][],answer[];
],b[];
int main()
{
  scanf("%d%d",&n,&m);
  ||m!=)
  {
      cas++;printf("Jury #%d\n",cas);
      ;i<=n;i++)scanf("%d%d",&a[i],&b[i]);
      memset(f,-,,sizeof(path));
      minpd=m*;
      f[][minpd]=;
      ;j<m;j++)
        ;k<=minpd*;k++)
          ;i<=n;i++)

            &&f[j][k]+a[i]+b[i]>f[j+][k+a[i]-b[i]])
            {
              int t1=j,t2=k;
              &&path[t1][t2]!=i)
              {
                t2-=a[path[t1][t2]]-b[path[t1][t2]];t1--;
              }
              )
              {
                f[j+][k+a[i]-b[i]]=f[j][k]+a[i]+b[i];
                path[j+][k+a[i]-b[i]]=i;
              }
            }
      ,k;
      &&f[m][i-j]<)j++;
      if(f[m][i+j]<f[m][i-j])k=i-j;else k=i+j;
      printf("Best jury has value %d for prosecution and value %d for defence:\n",
      (k-minpd+f[m][k])/,(f[m][k]-k+minpd)/);
      ;i<=m;i++)
      {
        answer[i]=path[m-i+][k];
        k-=a[answer[i]]-b[answer[i]];
      }
      sort(answer+,answer+m+);
      ;i<=m;i++)printf("%d ",answer[i]);
      printf("\n\n");
      scanf("%d%d",&n,&m);
   }
}

poj1015

最近感觉剪贴板出了点问题,代码提交上去动不动就是too long。。。

[POJ1015]Jury Compromise的更多相关文章

  1. poj1015 Jury Compromise【背包】

    Jury Compromise Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:32355   Accepted:8722   ...

  2. POJ-1015 Jury Compromise(dp|01背包)

    题目: In Frobnia, a far-away country, the verdicts in court trials are determined by a jury consisting ...

  3. poj1015 Jury Compromise[背包]

    每一件物品有两个属性.朴素思想是把这两种属性都设计到状态里,但空间爆炸.又因为这两个属性相互间存在制约关系(差的绝对值最小),不妨把答案设计入状态中,设$f[i][j]$选$i$个人,两者之差$j$. ...

  4. $POJ1015\ Jury\ Compromise\ Dp$/背包

    洛谷传送门 $Sol$ 这是一道具有多个“体积维度”的$0/1$背包问题. 把$N$个候选人看做$N$个物品,那么每个物品有如下三种体积: 1.“人数”,每个候选人的“人数”都是$1$,最终要填满容积 ...

  5. POJ 1015 Jury Compromise(双塔dp)

    Jury Compromise Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 33737   Accepted: 9109 ...

  6. HDU 1015 Jury Compromise 01背包

    题目链接: http://poj.org/problem?id=1015 Jury Compromise Time Limit: 1000MSMemory Limit: 65536K 问题描述 In ...

  7. 背包系列练习及总结(hud 2602 && hdu 2844 Coins && hdu 2159 && poj 1170 Shopping Offers && hdu 3092 Least common multiple && poj 1015 Jury Compromise)

    作为一个oier,以及大学acm党背包是必不可少的一部分.好久没做背包类动规了.久违地练习下-.- dd__engi的背包九讲:http://love-oriented.com/pack/ 鸣谢htt ...

  8. 【题解】Jury Compromise(链表+DP)

    [题解]Jury Compromise(链表+DP) 传送门 题目大意 给你\(n\le 200\)个元素,一个元素有两个特征值,\(c_i\)和\(d_i\),\(c,d \in [0,20]\), ...

  9. poj 1015 Jury Compromise(背包+方案输出)

    \(Jury Compromise\) \(solution:\) 这道题很有意思,它的状态设得很...奇怪.但是它的数据范围实在是太暴露了.虽然当时还是想了好久好久,出题人设了几个限制(首先要两个的 ...

随机推荐

  1. Bootstrap弹窗插件(拟态框)关闭后回调函数

    $(function(){ $('#questionnaire').on('hidden.bs.modal',function(){ //清除缓存方法 }); }); 事件 Bootstrap 的模态 ...

  2. .NET微信公众号开发-1.0初始微信公众号

    一.前言 微信公众号是开发者或商家在微信公众平台上申请的应用账号,该帐号与QQ账号互通,通过公众号,商家可在微信平台上实现和特定群体的文字.图片.语音.视频的全方位沟通.互动 .形成了一 种主流的线上 ...

  3. Java容器题库

    一.    填空题 Java集合框架提供了一套性能优良.使用方便的接口和类,包括Collection和Map两大类,它们都位于  java.util  包中 队列和堆栈有些相似,不同之处在于栈是先进后 ...

  4. jvm分析(MD语法)

    #是什么**jps**  查看所有的jvm进程,包括进程ID,进程启动的路径等等. **jstack**  观察jvm中当前所有线程的运行情况和线程当前状态.系统崩溃了?如果java程序崩溃生成cor ...

  5. 转载_虚拟机下LInux(终端)配置网络的方法

    出自: http://www.360doc.com/content/14/1027/11/17496895_420258403.shtml 对文章的重点进行剪贴,方便查看. 这几天在虚拟机vmware ...

  6. iOS开发Xcode7真机调试教程

    从Xcode7开始,Xcode 不需要$99/$299升级开发者直接可以进行真机调试 调试步骤 1.假设已经你已经有了苹果账号,下载并安装好了Xcode7 2. 打开Xcode-> Prefer ...

  7. jq 轮播图

    <style> #focus{width:500px;height:200px;overflow:hidden;/*用一个div把图片包含设置超出范围隐藏*/} </style> ...

  8. sqlserver执行sql文件命令(sqlcmd)

    个人自用sqlcmd命令: sqlcmd -E -i test.sql -d databasename -s 127.0.0.1 sqlcmd命令解释: 用法: Sqlcmd            [ ...

  9. (1)第一个ASP.NET Web API

      Install-Package Microsoft.AspNet.WebApi . Global.asax protected void Application_Start() { AreaReg ...

  10. C# 中的Singleton模式

    一般写Singleton基本都是一下这个套路 class Singleton { public static Singleton instance; private Singleton() { } p ...