题目链接
题目描述
有n只骆驼过m桥,第i只骆驼负重wiw_iwi​,第i座桥的长度为lil_ili​,最大负重为viv_ivi​,问骆驼队伍长度最短为多少可以通过所有的桥。
思路
n的数据范围很小,可以暴力解决。根据桥的长度从大到小预处理一下其能承受的重量。
dp[i]dp[i]dp[i]表示从第一只骆驼到第i只骆驼的最短距离。
dp[i]=max(dp[j]+len,dp[i])dp[i] = max(dp[j] + len, dp[i])dp[i]=max(dp[j]+len,dp[i]),len表示第j只骆驼到第i只骆驼的最短距离。寻找len的过程中就是在预处理的桥中二分一下第j只到第i只骆驼的重量所返回的最短桥的长度。
代码

#include<bits/stdc++.h>
using namespace std;typedef long long LL;
#define int LL
const int N = 1e5 + 10;int w[10];
bool vis[10];
int b[10], s[10], dp[10];
struct node {int l, v;friend bool operator < (node a, node b) {if(a.l == b.l) {return a.v < b.v;}return a.l < b.l;}
}a[N];
int n, m;
LL res;int find(int x) {int l = 1, r = m;int res = 0;while(l <= r) {int mid = l + r >> 1;if(x > a[mid].v) {res = a[mid].l;l = mid + 1;} else r = mid - 1;}return res;
}void work() {memset(dp, 0, sizeof dp);for(int i = 1; i <= n; i++) {s[i] = s[i - 1] + w[b[i]];}for(int i = 2; i <= n; i++) {for(int j = i - 1; j; j--) {int tmp = s[i] - s[j - 1];int len = find(tmp);dp[i] = max(dp[i], dp[j] + len);}}res = min(res, dp[n]);
}void dfs(int cnt) {if(cnt == n) {work();return;}for(int i = 1; i <= n; i++) {if(!vis[i]) {vis[i] = true;b[cnt + 1] = i;dfs(cnt + 1);vis[i] = false;}}
}void solve() {scanf("%lld%lld", &n, &m);for(int i = 1; i <= n; i++) {scanf("%lld", &w[i]);}for(int i = 1; i <= m; i++) {scanf("%lld%lld", &a[i].l, &a[i].v);}sort(a + 1, a + 1 + m);int mn = 1e9;for(int i = m; i >= 1; i--) {mn = min(mn, a[i].v);a[i].v = mn;}for(int i = 1; i <= n; i++) {if(mn < w[i]) {puts("-1");return;}}res = 2e18;dfs(0);printf("%lld\n", res);
}signed main() {//    freopen("in.txt", "r", stdin);
//    int t; scanf("%d", &t); while(t--)solve();
}

AtCoder Regular Contest 105 C - Camels and Bridge相关推荐

  1. AtCoder Regular Contest 105 部分 NIM游戏

    TESyyds,本来以为又要3:1,结果创造历史!!!非常激动啊好久好久没看过让二追三了. 无缝衔接回旋踢,qa插眼we.送给雷达哥 A - Fourtune Cookies 签到题 #define ...

  2. AtCoder Regular Contest 065

    AtCoder Regular Contest 065 C - Daydream Score : 300300300 points 倒着来就行了,正着来会产生歧义匹配,dreamer,dreamdre ...

  3. AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值. n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2 ...

  4. AtCoder Regular Contest 100 E - Or Plus Max Sos dp

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为2n2^n2n的数组,让你对于所有的1≤k≤2n−11\le k\le 2^n-11≤k≤2n−1求最大的ai+aj,0≤i<j≤2n−1 ...

  5. AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)

    AtCoder Regular Contest 061 E - Snuke's Subway Trip problem 洛谷翻译 my idea 最近一直在做网络流,所以一读这题后,我就想到了最小费用 ...

  6. NOMURA Programming Contest 2021(AtCoder Regular Contest 121)

    文章目录 A - 2nd Greatest Distance B - RGB Matching C - Odd Even Sort D - 1 or 2 E - Directed Tree F - L ...

  7. AtCoder题解——AtCoder Regular Contest 107——B - Quadruple

    题目相关 题目链接 AtCoder Regular Contest 107 B 题,https://atcoder.jp/contests/arc107/tasks/arc107_b. Problem ...

  8. AtCoder Regular Contest 071 D - 井井井 / ###

    题目:http://arc071.contest.atcoder.jp/tasks/arc071_b 题意: 有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求 ...

  9. AtCoder Regular Contest 062 E - AtCoDeerくんと立方体づくり / Building Cubes with AtCoDeer

    题目传送门:https://arc062.contest.atcoder.jp/tasks/arc062_c 题目大意: 给你\(N\)块正方形木板,每块木板四角有四种颜色(可以相同),木板中央有编号 ...

最新文章

  1. 如何用Python快速抓取Google搜索?
  2. Nginx教程--02.Nginx虚拟主机的配置
  3. ###STL学习--标准模板库
  4. meta viewport相关
  5. WebSocket的初步认识
  6. 网站程序安全分析器 VB源码
  7. 洛谷 P1048 采药 01背包入门
  8. ajax传递timestamp,解决ajax请求自动增加时间戳问题
  9. 南大网院计算机基础第一次作业,南大网院2015计算机基础第一次作业.docx
  10. ARP欺骗的艺术 | 断网与监听
  11. 2022年认证杯SPSSPRO杯数学建模A题(第二阶段)人员的紧急疏散求解全过程文档及程序
  12. python 风玫瑰图_【求助】风玫瑰图
  13. 遇到过什么印象深刻的bug?
  14. svn基础学习之常用知识
  15. Mysql全站最全笔记,从入门到资深!
  16. 电信行业大数据应用的四个方向
  17. android在google map上画出导航路线图
  18. .net core 处理base64图片
  19. Fiddler抓包Android手机https、http教程
  20. android xml图片缩放,Android通过自定义ImageView控件实现图片的缩放和拖动的实现代码...

热门文章

  1. 如何学习一门计算机语言
  2. Nodejs:ESModule和commonjs,傻傻分不清
  3. ES Module与CommonJS
  4. Excel数据透视和Python数据透视
  5. this 指向详细解析(箭头函数)
  6. C语言获取norflash大小,NOR Flash 编程
  7. 小米 无线 linux 鼠标,实测小米便携式鼠标2:小巧精致 支持无线双模连接
  8. java中的三种IO(BIO、NIO、AIO)
  9. 多项式学习笔记[二](全网最详细!有图有代码有解释有例题有总结!)
  10. STM32的最小系统组成