LA 4731
dp[i][j]意思是前i个分成j组最小的花费
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<iostream>
#define maxn 110
using namespace std; int dp[maxn][maxn];
int vis[maxn][maxn];
int num[maxn];
int sum[maxn]; bool cmp(int a,int b)
{
return a>b;
} int get(int a,int b)
{
// printf("%d %d---\n",a,b);
if(vis[a][b])return dp[a][b];
int& ans=dp[a][b];
ans=;
vis[a][b]=;
for(int i=b-; i<a; i++)
{
ans=min(ans,get(i,b-)+(sum[a]-sum[i])*a);
}
return ans;
} int main()
{
int t,n,w;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&w);
int all=;
for(int i=; i<=n; i++)
{
scanf("%d",&num[i]);
all+=num[i];
}
sort(num+,num+n+,cmp); for(int i=; i<=n; i++)
sum[i]=sum[i-]+num[i]; memset(vis,,sizeof vis); for(int i=; i<=n; i++)
{
vis[i][i]=;
dp[i][i]=dp[i-][i-]+num[i]*i;
vis[i][]=;
dp[i][]=sum[i]*i;
} int ans=get(n,w); printf("%.4lf\n",((double)ans/(double)all));
}
return ;
}
LA 4731的更多相关文章
- LA 4731 蜂窝网络
题目链接:https://vjudge.net/problem/UVALive-4731 题意: n 个 数,分成 w 组,求整个区间的数学期望的最小值: 一个区间的数学期望公式给出:一个区间的和 * ...
- leggere la nostra recensione del primo e del secondo
La terra di mezzo in trail running sembra essere distorto leggermente massima di recente, e gli aggi ...
- Le lié à la légèreté semblait être et donc plus simple
Il est toutefois vraiment à partir www.runmasterfr.com/free-40-flyknit-2015-hommes-c-1_58_59.html de ...
- Mac Pro 使用 ll、la、l等ls的别名命令
在 Linux 下习惯使用 ll.la.l 等ls别名的童鞋到 mac os 可就郁闷了~~ 其实只要在用户目录下建立一个脚本“.bash_profile”, vim .bash_profile 并输 ...
- Linux中的动态库和静态库(.a/.la/.so/.o)
Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序编译的过程 .o文件(目标文件) 创建atoi.o 使用atoi. ...
- Mac OS使用ll、la、l等ls的别名命令
在linux下习惯使用ll.la.l等ls别名的童鞋到mac os可就郁闷了-- 其实只要在用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可: alias ll='ls -al ...
- .Uva&LA部分题目代码
1.LA 5694 Adding New Machine 关键词:数据结构,线段树,扫描线(FIFO) #include <algorithm> #include <cstdio&g ...
- 获取在线人数 CNZZ 和 51.la
string Cookies = string.Empty; /// <summary> /// 获取在线人数 (51.la统计器) /// </summary> /// &l ...
- BNU OJ 33691 / LA 4817 Calculator JAVA大数
留着当个模板用,在BNU上AC,在LA上RE……可能是java的提交方式不同??? 数和运算符各开一个栈. 表达式从左到右扫一遍,将数存成大数,遇到数压在 数的栈,运算符压在 运算符的栈,每当遇到右括 ...
随机推荐
- Core Bluetooth Programming Guide
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth ...
- EXCEL跨工作薄查找。提取信息
=IF(ISERROR(INDEX(zdy!$B:$B,MATCH(B15,zdy!$B:$B,0))),"不存在",INDEX(zdy!$C:$C,MATCH(B15,zdy!$ ...
- MySQL中用户授权/删除授权的方法
用户授权方法 你可以通过发出GRANT语句增加新用户: 代码如下 复制代码 shell> mysql --user=root mysql mysql> GRANT ALL PRIVILE ...
- String.Trim
String.Trim有2个重载方法,分别是:Trim()和Trim(char[]),根据官方的解释 Trim():从当前String对象移除所有前导空白字符和尾部空白字符. Trim(char[]) ...
- 1.6建造者模式(生成器模式) Builder
1.概念:将一个复杂对象的构建和他的表示分离,使得同样的构件可以创建不同的表示. 2.实例:肯德基和中餐,肯德基抽象了整个做菜的复杂过程(相同的构建),然后在不同的店铺进行实现(不同的表示).中餐往往 ...
- 多文件上传 iOS功能
多文件上传 iOS功能,原文来自ios教程网整理的,大家可以看看演示:ios.662p.com ,喜欢的朋友可以看看我的博客吧. NSURL* url = [NSURL URLWithString:@ ...
- MySQL学习笔记之数据存储类型
说明:本文是作者对MySQL数据库数据存储类型的小小总结. Numeric Type (数字类型) 1.TINYINT.SMALLINT.MEDIUMINT.INT.BIGINT主要根据存储字节长度不 ...
- 第三章 用SDK编译出第一个在Linux下的软件界面
第三章 用SDK编译出第一个在Linux下的软件界面 先创建一个工程目录“mkdir project1”,进入目录,创建main.cpp文件,编写代码如下: 代码内容暂时可以先不理解,先让程序跑起来再 ...
- Linux ed
ed 编辑器是 Linux 操作系统下最简单的文本编辑器.它是以行为单位对文件进行编辑的编辑器,而不像 MS-DOS 系统下的 edit 那样是以整个屏幕框架为单位对文件进行编辑的.因此,如果你已经习 ...
- 短租app简析
本人应聘某短租app产品经理时做的材料,贴出来请高手指教. 所有内容来自公开资料,不涉及商业秘密.