SDOI2009

来源:互联网 发布:淘宝金酷娃玩具 编辑:程序博客网 时间:2024/06/05 19:04

[BZOJ1875] [SDOI2009]HH去散步

  • 题目大意
    • 给定n(n20)个点,m(m60)条边的无向图(有重边,无自环),要求沿一条边的某一方向走完后不能立即走同一条边的反向,每条边长为1,询问从ST路径长度为P的方案数
  • 题解
    • 2m条有向边,构造矩阵,若从第i条边的终点可以走第j条边,那么x[i,j]=1,这样构造出来的矩阵为走一步可以到达的边的位置
    • 然后求出矩阵的P1次幂,即为所求,然后用所有以ST为终点的计入答案即可
  • CODE

[BZOJ1226] [SDOI2009]学校食堂Dining

  • 题目大意
    • 给定n个人的序列,每个人有各自的口味Ti(0Ti1000),每个人最多允许他后面紧挨着他的Bi(0Bi7)个人比他先打饭,第i道菜的口味是a,第i1道是b,那么第i道菜做完的时间就是(a|b)(a&b),询问所有人最短完成时间和
  • 题解
    • 看错题目,看错题目,看错题目!!!
    • 紧接着的Bi个人!
    • dp[i,j,s]:i1,j,i7
    • {dp[i+1,j,S>>1]=min{dp[i+1,j,S>>1],dp[i,j,S]}dp[i,Bk,S+{k}]=min{dp[i,Bk,S+{k}]=,dp[i,j,S]+cost(Bk,j)}iSiSkS
    • 初值dp[0,0,0]=0
    • ans=min{dp[n+1,i,0]}
    • 复杂度O(28NT)爆炸
    • 该算法的瓶颈在于T的范围很大,但是根据前面的两个转移,T那一维要么不变,要么也只与当前位差了[7,7],所以用位置的相对距离替换口味,就能将复杂度降下来了
0 0