第 45 届国际大学生程序设计竞赛ICPC亚洲区域赛昆明热身赛 C-Statues

  • 题意
  • 思路
  • Code

传送门: https://ac.nowcoder.com/acm/contest/13977/C

题意

有n个位置,给k个雕像,每个雕像都有一个位置和大小。想要将它放在第i个位置,需花费x∗∣j−i∣。有n个位置,给k个雕像,每个雕像都有一个位置和大小。想要将它放在第i个位置,需花费x*|j-i|。有n个位置,给k个雕像,每个雕像都有一个位置和大小。想要将它放在第i个位置,需花费x∗∣j−i∣。
将这些雕像按照大小非递减排列,求出最小花费。将这些雕像按照大小非递减排列,求出最小花费。将这些雕像按照大小非递减排列,求出最小花费。

思路

因为数据只有5000,所以考虑O(n2)dp,第一层n,第二层k。因为数据只有5000,所以考虑O(n^2)dp,第一层n,第二层k。因为数据只有5000,所以考虑O(n2)dp,第一层n,第二层k。
首先排序,根据大小从小到大排序。首先排序,根据大小从小到大排序。首先排序,根据大小从小到大排序。

设f[i][j]表示前i个位置放了j个雕像。则考虑第j个放不放的问题?设f[i][j]表示前i个位置放了j个雕像。则考虑第j个放不放的问题?设f[i][j]表示前i个位置放了j个雕像。则考虑第j个放不放的问题?

  • 放!f[i][j]=f[i−1][j−1]+a[j].x∗abs(i−a[j].p)放!f[i][j] =f[i-1][j-1]+a[j].x*abs(i-a[j].p)放!f[i][j]=f[i−1][j−1]+a[j].x∗abs(i−a[j].p)
  • 不放!f[i][j]=f[i−1][j]不放!f[i][j] = f[i-1][j]不放!f[i][j]=f[i−1][j]

则状态转移为:则状态转移为:则状态转移为:
f[i][j]=min(f[i−1][j],f[i−1][j−1]+a[j].x∗abs(a[j].p−i))f[i][j]=min(f[i-1][j],f[i-1][j-1]+a[j].x*abs(a[j].p-i))f[i][j]=min(f[i−1][j],f[i−1][j−1]+a[j].x∗abs(a[j].p−i))

因为取min,所以memset(f,INF,sizeof(f)),并且边界f[0][0]=0。因为取min,所以memset(f,INF,sizeof(f)),并且边界f[0][0]=0。因为取min,所以memset(f,INF,sizeof(f)),并且边界f[0][0]=0。

复杂度O(nk)。复杂度O(nk)。复杂度O(nk)。

Code

#include "bits/stdc++.h"
using namespace std;typedef long long ll;const int N = 5e3 + 10;
struct node {ll x, p;
}a[N];bool cmp(node a, node b) {if(a.x == b.x) return a.p < b.p;return a.x < b.x;
}ll f[N][N];void solve() {int n, k; cin >> n >> k;for(int i = 1;i <= k; i++) cin >> a[i].p >> a[i].x;sort(a + 1, a + k + 1, cmp);for(int i = 0;i < N; i++) {for(int j = 0;j < N; j++) {f[i][j] = 1e18;}}f[0][0] = 0;for(int i = 1;i <= n; i++) {for(int j = 0;j <= min(i, k); j++) {f[i][j] = f[i - 1][j];if(j > 0) f[i][j] = min(f[i][j], f[i - 1][j - 1] + 1ll * abs(i - a[j].p) * a[j].x);}}cout << f[n][k] << endl;
}signed main() {solve();
}

第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明)(热身赛) C-Statues相关推荐

  1. 第45届国际大学生程序设计竞赛(ICPC)银川站太原理工大学收获4枚奖牌

    第45届国际大学生程序设计竞赛(ICPC)银川站,由宁夏理工学院承办,于2021年5月15-16日在宁夏的石嘴山市进行. 太原理工大学在比赛中获得2银2铜共4枚奖牌的好成绩. 参加本次比赛的四个队,涵 ...

  2. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(重现赛)

    第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(重现赛) 导语 涉及的知识点 题目 C D G J M 参考文献 导语 日常的队内集训,开始的时候状态其实很好,但是到了后两题就出现了 ...

  3. 第45届国际大学生程序设计竞赛(ICPC)沈阳站太原理工大学收获1枚铜牌

    第45届ICPC沈阳区域赛,于2021年7月18日在东北大学南湖校区举行.太原理工大学2个队参加比赛,由20级中学没有学过编程的3名同学组成的队,首次参加现场赛并获得铜奖.

  4. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)签到题K Co-prime Permutation,L Let‘s Play Curling

    序 emmm因为没时间补题(虽然签到有四题),所以只能先放两个签到. 这是比赛链接:https://ac.nowcoder.com/acm/contest/10272 这是题解链接:2020年ICPC ...

  5. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 题解(除了C、G之后补)

    整理的算法模板合集: ACM模板 这次比赛好多原题呀-(就是那种稍微拓展了一点的原题) 目录 A.Easy Equation B.XTL's Chessboard D.Pokemon Ultra Su ...

  6. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题HIL

    H. Hard Calculation 链接:https://ac.nowcoder.com/acm/contest/12548/H 来源:牛客网 题目描述 Hooray! It is the fir ...

  7. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 B.XTL‘s Chessboard(思维)

    题目链接:https://ac.nowcoder.com/acm/contest/8688/B 题目描述 Xutianli is a perfectionist, who only owns &quo ...

  8. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题4题

    文章目录 H. Hard Calculation I. Mr. Main and Windmills L. Simone and graph coloring J.Parallel Sort 补题链接 ...

  9. 【第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛】Simone and Graph Coloring

    #include <bits/stdc++.h> using namespace std; const int maxn = 1000005, INF = 0x7f7f7f7f; int ...

  10. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明) AC(带悔贪心)

    下面两个题都是选择iii有个价值如果选择iii则不能选择i−1,i+1i-1,i+1i−1,i+1,让价值最大或最小 P1792 [国家集训队]种树 野心qwq 的博客 #include<bit ...

最新文章

  1. 前端开发神器之ngrok
  2. ROS学习汇总(3D摄像头)
  3. Windows下安装ElasticSearch6.3.1以及Head插件
  4. Git基础之(二十)——标签管理——创建标签
  5. 详细说明 SourceTree 免登录,跳过初始设置的方法(Windows 版 )
  6. 增加表单的文字段的html的代码是,表单及表单新增元素(示例代码)
  7. Netty的使用:Server和Client通信
  8. 在.NET 对XML的一些基本操作
  9. 你看,那个人好像一条狗哎
  10. java报错: 类重复: newemission.calculate_java当中的继承(一)
  11. android 查看cad方案,安卓手机可以CAD看图吗?怎么查看接收的CAD图纸文件?
  12. 电商购物评论的情感分析
  13. Qos报文分类和标记原理与实验
  14. SEO初学者如何快速做好 SEO 优化?seo数据查询
  15. 移动应用中的第三方SDK隐私合规检测
  16. 年轻人说“接受自己的平庸”,八成是自欺欺人
  17. 微信/QQ域名防封防拦截360不报毒任意链接跳转源码
  18. 硬币面值组合问题(完全背包问题)
  19. 互联网卷王花落谁家?
  20. SOLIDWORKS教程:SW软件常见问题解决办法

热门文章

  1. c语言单片机编程 实例教程,51单片机的C语言编程基础及实例教程
  2. 雾霾指数预测与城市治理(大数据平台系列)
  3. 手机4g网速测试用什么软件,测手机4g网速(4g手机上网速度测试)
  4. shell中各种括号(),[],(()),[[]],{}等的作用大全及示例
  5. springboot自动装配原理
  6. 计算机的组装怎么学,如何学习组装电脑
  7. 生来只为丈量天空,开普勒的传奇一生
  8. IELTS-writing exercise Expository_Text_18
  9. 计算机如何一次性删除音乐,win10怎么删除windows音乐文件夹?
  10. CCNA(七)思科路由器基本配置