ACM训练日记—8月7日

来源:互联网 发布:知乎日报 离线下载 编辑:程序博客网 时间:2024/06/10 11:52

      集训新的一周开始了,可能昨晚没睡好,早上的时候迷迷糊糊的,就没着急去做题,主要把最短路径算法剩的最后的内容回顾了一下,紧接着今天就A了两个题,晚上评判系统还崩了。

      第一道题是昂贵的聘礼,想娶酋长的女儿,要不花钱,要不可以用东西换(少花钱),换的话东西在别人手里,想得到还是要不花钱要不少花钱外加东西,但交易时有等级制度限制,与低一级的人交易后不能在和高一级的人交易,本题用迪杰特拉斯算法就可以解,至于迪杰特拉斯算法的思想,我感觉和prim算法想似,就像本题,找一个数组a[n]表示一点到其他点所需最少钱,本题用每一物品直接花钱买需要多少钱,然后利用贪心思想找到最小的一个,开始对a[n]更新, a[j]=a[k]+map[k][j]。通过a[n]中最小的a[k],做搭桥进行更新,最后得到a[1]就是娶到老婆可一花的最少的钱。

     第二道题是虫洞,给出了各个点之间移动要花的时间,给出一个单向的虫洞,可退回一定时间前,问有没有一条途径可以使其回到之前的时间去。其实该题就是求图中有没有负回路,利用Ford算法,这种算法也是用a[n]数组来记录起点到各点最小花费时间,不同的是要采取对边的枚举实现对a[n]的更新,一旦发现负回路,就返回就好了。

      其实我还做了一道题,只是无奈系统坏了,所以不知道对不对。明天再讲吧。

原创粉丝点击