首页 > 其他分享 >题解:UVA1456 Cellular Network

题解:UVA1456 Cellular Network

时间:2024-09-26 18:02:27浏览次数:14  
标签:Network int 题解 MAXN Cellular UVA1456

UVA1456 Cellular Network 题解

夭寿了!30 行写完紫题了!

更新:已联系管理员修改难度,现在是绿题

题意很简单,不再赘述。

首先一个小贪心,将概率 \(u​\) 进行从大到小的排序,优先查看概率大的区域,显然这样能够保证访问数量期望最小。

接着考虑如何将区域分组。一个显而易见的思路是动态规划。

记 \(f_{i,j}\) 表示前 \(i\) 个区域被分成 \(j\) 组,并全部访问完后期望的最小值。

则有如下转移:

\[f_{i,j} = \min\limits_{0 \le k < i}\{f_{k, j - 1} + \sum\limits_{x =k + 1}\limits^{i}u_x\} \]

求个前缀和可以在 \(O(n)\) 内完成转移。总时间复杂度为 \(O(n^2w)\),完全足够通过本题。

代码如下:

#include<bits/stdc++.h>
#define MAXN 110
using namespace std;
typedef long long ll;
int t, n, w;
ll u[MAXN], sum[MAXN], dp[MAXN][MAXN];
int main(){
    scanf("%d",&t);
    while(t--){
        scanf("%d%d",&n,&w);
        for(int i = 1; i <= n; i++) scanf("%d",&u[i]);
        sort(u + 1, u + n + 1, greater<int>());
        for(int i = 1; i <= n; i++) sum[i] = sum[i - 1] + u[i];
        memset(dp, 0x3f, sizeof(dp));
        dp[0][0] = 0;
        for(int i = 1; i <= n; i++){
            for(int j = 0; j <= i; j++){
                for(int k = 1; k <= w; k++){
                    dp[i][k] = min(dp[i][k], dp[j][k - 1] + i * (sum[i] - sum[j]));
                }
            }
        }
        printf("%.4f\n",dp[n][w] * 1.0 / sum[n]);
    } 
}

标签:Network,int,题解,MAXN,Cellular,UVA1456
From: https://www.cnblogs.com/NightTide/p/18434005

相关文章

  • 题解:CF437B The Child and Set
    CF437BTheChildandSet题解这题目就一个问题。啥是\(\operatorname{lowbit}\)?\(\operatorname{lowbit}(x)\)是指\(x\)的二进制表示中最低位的\(1\)所表示的值。例如\((14)_{10}=(1110)_2\),其中最低位的\(1\)在第二位,表示\((2)_{10}\),即\(\operatorname{lo......
  • 题解:P4288 [SHOI2014] 信号增幅仪
    很好一题目,使我的最小圆覆盖旋转。先假设\(p=1\)。这是最简单的情况。这个时候我们就得到了一个裸的最小圆覆盖。当\(p\not=1\),但是\(a=0\)的时候。圆就变成了对称轴与坐标轴平行的椭圆,运用高中知识仿射一下,又回到了最小圆覆盖。在一般的情况下,我们先通过坐标的旋转......
  • 《超级机器人大战30》缺少roboex32.dll启动遇阻怎么办?轻松应对《超级机器人大战30》ro
    当《超级机器人大战30》因缺少roboex32.dll文件而启动遇阻时,可以尝试以下几种解决方案来轻松应对这一问题:一、下载并替换缺失的DLL文件寻找可靠来源:首先,需要在互联网上找到可靠的roboex32.dll文件下载源。建议访问官方网站、微软官方下载中心或知名的软件下载站点,以确保下载......
  • AT_arc176_e [ARC176E] Max Vector 题解
    发现数据范围很小,考虑最小割。先对题面做一个转化:构造两个序列\(X=(X_1,X_2,\dots,X_N),Y=(Y_1,Y_2,\dots,Y_N)\)最小化\(\sumX_i+Y_i\),有\(M\)个限制,每个限制有一个序列\(A_1,A_2,\dots,A_n\),需要满足\(\foralli,X_i\geA_i\)或者\(\foralli,Y_i\geA_i\)。考虑怎......
  • 1. 两数之和题解
    题目描述[!NOTE]总结:找出整数数组中两数之后等于目标值的两个数,然后返回其下标给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素......
  • 「FJWC2020Day5-zzq」rng 题解
    题意简述一个长度为\(n\)的实数序列\(a_i\),其中\(a_i\)为\([l_i,r_i]\)中独立均匀随机选取的实数。你只能通过交换相邻两个数,使得\(a_i\)单调不降。你需要求出你最少操作次数的期望,对\(M=998244353\)取模。\(1\leqn\leq10^6\),\(0\leql_i\ltr_i\leq10^{1......
  • 留学期间学业常见问题解决办法,包括不能毕业的状况
    留学期间学业常见问题解决办法,包括不能毕业的状况【国外留学期间,遇到考试挂科的情况,影响了毕业,该怎么办?】考试挂科是一个很常见的现象,而国外院校,因为每个学校的规定不同,有的学校学生有补考机会,但是有的学校如果学生考试挂科情况很严重,或许就没有补考的机会了。这都没关系,重要的是,你......
  • 题解:P10104 [GDKOI2023 提高组] 异或图
    \(\text{Link}\)本题属于集合划分容斥,更多关于集合划分容斥的信息可观看详细揭秘:集合划分容斥的容斥系数。题意给定一个\(n\)个点\(m\)条边的图以及一个长为\(n\)的序列\(a_{1\dotsn}\),有一常数\(C\),你需要求出有多少序列\(b_{1\dotsn}\)满足\(0\leb_i\lea_i\)......
  • 题解:P10198 Infinite Adventure P
    \(\text{Link}\)题意给定\(n\)个数组\(c_{i,0\dotst_i-1}\),其中\(t_i\)为\(2\)的幂。有\(q\)次询问,每次询问给出三个参数\(x,T,\Delta\),接下来会执行\(\Delta\)次\(x\getsc_{x,T\bmodt_x},T\getsT+1\),求出最终的\(x\)。\(n,\sumt\le10^5\),\(q\le5\time......
  • 题解:P10998 Tuple+
    \(\text{Link}\)有意思,记录一下。题意给出\(m\)个互不相同的无序三元组\((u,v,w)\),求有多少无序四元组\((a,b,c,d)\)使得三元组\((a,b,c),(a,b,d),(a,c,d),(b,c,d)\)均存在。\(m\le3\times10^5\)。Bonus:\(m\le2\times10^6\)。题解回忆无向图三元环计数的做法,使......