百度之星2019第一场1002 Game
时间:2019-09-16
本文章向大家介绍百度之星2019第一场1002 Game,主要包括百度之星2019第一场1002 Game使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
思路:
离散化之后dp,dp[i][j]表示完成前i个任务并且处在第j个点所需要的最小代价。
实现:
1 #include <bits/stdc++.h> 2 using namespace std; 3 pair<int, int> a[1005]; 4 int dp[1005][4005]; 5 int main() 6 { 7 ios::sync_with_stdio(false); 8 int T, n; cin >> T; 9 while (T--) 10 { 11 cin >> n; 12 vector<int> v; 13 for (int i = 1; i <= n; i++) 14 { 15 cin >> a[i].first >> a[i].second; 16 v.push_back(a[i].first); 17 v.push_back(a[i].second); 18 if (a[i].first < a[i].second - 1) 19 { 20 v.push_back(a[i].first + 1); 21 v.push_back(a[i].second - 1); 22 } 23 } 24 sort(v.begin(), v.end()); 25 v.erase(unique(v.begin(), v.end()), v.end()); 26 int m = v.size(); 27 for (int i = 1; i <= n; i++) 28 { 29 a[i].first = lower_bound(v.begin(), v.end(), a[i].first) - v.begin(); 30 a[i].second = lower_bound(v.begin(), v.end(), a[i].second) - v.begin(); 31 } 32 for (int i = 0; i < m; i++) dp[0][i] = 0; 33 for (int i = 1; i <= n; i++) 34 { 35 int l = a[i].first, r = a[i].second; 36 for (int j = l; j <= r; j++) dp[i][j] = dp[i - 1][j]; 37 for (int j = 0; j < l; j++) 38 { 39 dp[i][j] = dp[i][l] + (abs(v[j] - v[l]) + 1 >> 1); 40 if (l < r) 41 dp[i][j] = min(dp[i][j], 42 dp[i][l + 1] + (abs(v[j] - v[l + 1]) + 1 >> 1)); 43 } 44 for (int j = r + 1; j < m; j++) 45 { 46 dp[i][j] = dp[i][r] + (abs(v[j] - v[r] + 1) >> 1); 47 if (l < r) 48 dp[i][j] = min(dp[i][j], 49 dp[i][r - 1] + (abs(v[j] - v[r - 1]) + 1 >> 1)); 50 } 51 } 52 cout << *min_element(dp[n], dp[n] + m) << endl; 53 } 54 return 0; 55 }
原文地址:https://www.cnblogs.com/wangyiming/p/11525817.html
- hdu----(5053)the Sum of Cube(签到题,水体)
- RHEL构建DNS服务器-多区域
- hdu----(5050)Divided Land(二进制求最大公约数)
- 日志分析实战之清洗日志小实例1:使用spark&Scala分析Apache日志
- RHEL构建DNS服务器-单区域
- hdu----(5047)Sawtooth(大数相乘+数学推导)
- hdu----(4522)湫湫系列故事——过年回家(最短路)
- hdu---(1421)搬寝室(dp)
- hdu----(1257)最少拦截系统(dp/LIS)
- nginx安装Fancy美化索引目录
- hdu---(3779)Railroad(记忆化搜索/dfs)
- RHEL下KVM虚拟化部署-安装虚拟化
- hdu--(1025)Constructing Roads In JGShining's Kingdom(dp/LIS+二分)
- kafka权威指南 第二章第6节 Kafka集群配置与调优
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 成都电信宽带获取IPV6地址全过程
- android studio 3.6.1导入项目报错提示无法下载classpath里的内容
- Linux VPS使用命令行快速查询百度网盘提取码
- Flutter 首页必用组件NestedScrollView的示例详解
- AUXPI:简单的API图床程序,支持上传到搜狗/新浪/SMMS等多个图床
- android使用TextView实现跑马灯效果
- Android 自定义 View 中使用 Spannable的实例详解
- Android实现扫描和生成二维码
- android自定义弹出框样式的实现方法
- Android实现手绘功能
- Android 实现秒转换成时分秒的方法
- Android实现简单用户注册案例
- Android原生视频播放VideoView的使用
- Android table布局开发实现简单计算器
- Android实现面包屑功能的代码(支持Fragment联动)