码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 每日一题----昂贵的婚礼


    1. #include
    2. #include
    3. #include
    4. #include
    5. #include
    6. using namespace std;
    7. //本题酋长的允诺也算一个物品,最后一定要交给酋长,那么等级不能超过酋长的等级范围
    8. const int N = 150 * 150,M = N;
    9. typedef pair<int,int> pll;
    10. int dist[N];//距离数组,这里代表到当前点的花费
    11. int n,m;
    12. int level[N];
    13. //每次交易只能在等级限制范围内可以交易
    14. bool st[N];
    15. int e[M],h[N],idx,ne[M],w[M];
    16. int price[N];//每个物品的价值,下标就是编号
    17. void add(int a,int b,int c)
    18. {
    19. e[idx] = b,w[idx] = c,ne[idx] = h[a],h[a] = idx++;
    20. }
    21. int dijkstra(int l,int r)
    22. {
    23. memset(dist,0x3f,sizeof dist);
    24. memset(st,0,sizeof st);
    25. dist[0] = 0;
    26. priority_queue,greater> heap;
    27. heap.push({0,0});//第一个是点,第二个是当前点的距离
    28. //dijkstra堆优化算法,优化在取路径最短那里
    29. while(heap.size())
    30. {
    31. auto t = heap.top().second;
    32. heap.pop();
    33. if(st[t]) continue;
    34. st[t] = true;
    35. for(int i = h[t];i != -1;i = ne[i])
    36. {
    37. int j = e[i];
    38. if(dist[j] > dist[t] + w[i] && level[j] >= l && level[j] <= r)
    39. {
    40. dist[j] = dist[t] + w[i];
    41. heap.push({dist[j],j});
    42. }
    43. }
    44. }
    45. return dist[1];
    46. }
    47. int main()
    48. {
    49. cin>>m>>n;
    50. //0是虚拟源点,比如到3要10000,不用其他物品换,直接买得到的价格
    51. //比如拿2去换1的物品,就用箭头指向1
    52. memset(h,-1,sizeof h);
    53. for(int i = 1;i <= n;i++)
    54. {
    55. int cnt;
    56. cin>>price[i]>>level[i]>>cnt;
    57. add(0,i,price[i]);
    58. for(int j = 0;j < cnt;j++)
    59. {
    60. int id,cost;
    61. cin>>id>>cost;
    62. add(id,i,cost);//id指向i代表id换i所需的花费
    63. }
    64. }
    65. int res = 0x3f3f3f3f;
    66. //枚举酋长允诺的等级区间之内
    67. for(int i = level[1] - m;i <= level[1];i++)
    68. {
    69. res = min(res,dijkstra(i,i + m));
    70. }
    71. cout<
    72. return 0;
    73. }

     

  • 相关阅读:
    优先级反转那些事儿
    【模板语法+数据绑定+el与data的两种写法+MVVM模型】
    阿里妈妈API接口 按关键字或网址搜索商品
    win10安装 nvm + angular
    JVM性能——JVM调优参数列表
    【圆桌论坛】个人作为嘉宾参与问答环节的总结,Create 2024百度AI开发者大会之AI智能体开发与应用论坛
    Https加密超文本传输协议的运用
    Linux at任务调度机制
    《UDS协议从入门到精通》系列——图解0x35:请求上传
    java八股文面试[JVM]——如何打破双亲委派模型
  • 原文地址:https://blog.csdn.net/txh1873749380/article/details/134425923
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号