bzoj2700
题解:
dp
dp[i][j]表示i个红,j个绿的最小代价
然后再加上两位k,l,表示k个红连,l个绿连
然后转移
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=;
const ll INF=1LL<<;
ll a[N],b[N],f[N][N][][],j,k,n,m,tot1,tot2;
int main()
{
scanf("%d%d",&m,&n);
for (int i=;i<=n;i++)
{
scanf("%d%d",&k,&j);
if (j)a[++tot1]=k;
else b[++tot2]=k;
}
sort(a+,a++tot1); sort(b+,b++tot2);
for (int i=tot1+;i<=n;i++)a[i]=INF;
for (int i=tot2+;i<=n;i++)b[i]=INF;
for (int i=;i<=m;i++)
for (int j=;j<=n;j++)
for (int t=;t<=;t++)
for (int l=;l<=;l++)f[i][j][t][l]=INF;
f[][][][]=;
int ad,bd;
for (int i=;i<=m;i++)
{
for (int j=,ad=a[j]*(m-i+),bd=b[i-j]*(m-i+);j<=i;j++,
ad=a[j]*(m-i+),bd=b[i-j]*(m-i+))
{
f[i][j][][]=min(f[i-][j-][][],
min(f[i-][j-][][],f[i-][j-][][]))+ad;
f[i][j][][]=f[i-][j-][][]+ad;
f[i][j][][]=min(f[i-][j][][],
min(f[i-][j][][],f[i-][j][][]))+bd;
f[i][j][][]=f[i-][j][][]+bd;
}
bd=b[i]*(m-i+);
f[i][][][]=min(f[i-][][][],min(f[i-][][][],f[i-][][][]))+bd;
f[i][][][]=f[i-][][][]+bd;
}
ll ans=INF;
for (int i=;i<=tot1;i++)
{
ans=min(ans,f[m][i][][]);
ans=min(ans,f[m][i][][]);
ans=min(ans,f[m][i][][]);
ans=min(ans,f[m][i][][]);
ans=min(ans,f[m][i][][]);
}
printf("%lld\n",ans);
return ;
}
bzoj2700的更多相关文章
随机推荐
- POJ - 2699 The Maximum Number of Strong Kings (最大流+枚举)
题意:有n(n<=10)个选手,两两之间打比赛,共有n*(n-1)/2场比赛,赢一场得1分.给出每个人最后的得分.求有多少个定义如下的strong king:赢了所有得分比自己高的人或本身就是分 ...
- Spring Boot @DeleteMapping
使用DELETE方式进行交互 说明:ResponseData为自定义返回体{String code, String msg, List<?> data} PollutionData 为 ...
- require-ensure
require-ensure 说明: require.ensure在需要的时候才下载依赖的模块,当参数指定的模块都下载下来了(下载下来的模块还没执行),便执行参数指定的回调函数.require.ens ...
- AJAX跨域问题解决方法(4)——调用方解决跨域
调用方解决跨域的方法只有一种,那就是隐藏跨域. 何为隐藏跨域? 隐藏跨域的核心思路是通过反向代理隐藏跨域以欺骗浏览器 什么是反向代理?反向代理是指通过中间服务器使得访问同一个域名的两个不同url最终会 ...
- 使用react常见的坑
触摸事件 React中的触摸事件仅用三种,touchstart, touchend, touchend,可是这种会有问题,有时候我需要滚动页面的时候,很容易触发某一个元素的touchend事件,为此笔 ...
- C#中 哪些是值类型 哪些是引用类型
DateTime属于 结构类型,所以是 值类型 在 C#中 简单类型,结构类型,枚举类型是值类型:其余的:接口,类,字符串,数组,委托都是引用类型
- xtrabackup备份脚本
背景:现网环境全备份脚本:基于xtrabackup命令 #!/bin/sh # MySQL端口 PORT=' # 备份用户 USER='bkpuser' PAWD='bkpuser' Time=`da ...
- 【读书笔记】《深入浅出nodejs》第三章 异步I/O
1. 为什么要异步I/O (1)用户体验上: 并发的优势: M+N+... -> max(M,N,...) --> 使后端能够快速的响应资源 *并发的劣势:... (2)资源分配: 单线 ...
- Sqoop相关
# sqoop安装 1. 常规步骤(安装在一台节点上即可) 由于sqoop2配置相对比较麻烦,此次使用的是sqoop1进行演示. 上传sqoop-1.4.4.bin_hadoop-2.0.4-alph ...
- 【bzoj2333 & luoguP3273】棘手的操作(线段树合并)
题目传送门:bzoj2333 luoguP3273 这操作还真“棘手”..听说这题是可并堆题?然而我不会可并堆.于是我就写了线段数合并,然后调了一晚上,数据结构毁一生!!!QAQ…… 其实这题也可以把 ...