zoukankan      html  css  js  c++  java
  • 国庆清北Day4 DP 题目

    1.数字三角形 和%m最大
    f[i][j] 不满足无后效性
    发现没有办法DP加一维
    bool f[i][j][k] 到(i,j) 和%m存不存在
    求答案,枚举k
    数字三角形2
    2.problem2
    每个数选还是不选
    f[i][j]前i个数考虑过,%m等于j的方案数
    f[i][j]->f[i+1][j]
    ->f[i+1][(j+a[i+1])%m]
    3.problem12
    博弈论
    f[i][j]表示当x=i,y=j时是必胜还是必败
    f[1][i+1]
    f[2*i][j]
    f[3*i][j]
    有一个必败态,f[i][j]必胜态
    n^2 9*1e8 MLE
    map O(logn) MLE
    unordered_map O(1) C++11
    x不可能为5
    x=2^a*3^b
    f[a][b][j] x=2^a*3^b y=j
    luogu 3541
    problem 5
    1~r之间乘积为k有多少个
    动态规划的题目,一旦限制多了一个条件-->状态多一个维度
    f[i][j][t] 18*2*1e18*10
    t不可能等于11
    t可能质因子只有2,3,5,7
    -->2^a*3^b*5^c*7^d
    f[i][j][a][b][c][d]=
    0/1 2 3 5 7
    枚举下一位填什么,质因数分解, a++.....
    一位是0,最后 k不等于0,不能填零
    k等于0,再写另外一个数位DP :l,r至少一个0的
    仍然TLE
    18*2*64*37*25*21*10
    不会每一个维度都取到上届
    dfs 只有2 3 5 7因子的数找出来, 3w 个数
    预处理每个数乘上0~9变成哪个数
    bzoj2757 难写 滚动数组
    c:
    外面和中间
    +
    中间和中间
    外面和外面

    能造成欧气加成的玄学值差值不超过1
    单独对于(2,2)
    f[i][j][k]
    代表(2,2)从1选完了i,选了j个作为自己的玄学值,k代表有没有选i这个玄学值
    i+1这个玄学值不给(2,2)这个卡包 -> f[i+1][j][0]
    ->f[i+1][j+1][1]
    距离为1,距离为2,自身,的欧气加成
    不能,加维
    f[i][j22][k22][j23][k23][j32][k32][j33][k33] 各自需不需要i+1的权值
    31*1e4*2^4
    p103

    problem15
    所有数都不同:
    与排列有关的DP套路:
    对读进来n个数排序
    对于一个已有的排列,如何加一个数
    p1>p2>p3>...>pn
    f[i][j]
    代表把n个数中前i个数成了一个排列,激动值为j的方案数有多少
    转移,把第i+1个数加入这个排列,有i+1个位置 隔板法
    产生新的激动,其他的数不激动了,
    加在最后不会改变
    倒数第二,不会自己激动,不会使别人不激动
    放在第一个位置,自己激动,+1
    f[i+1][j+1]+=f[i][j]
    f[i+1][j]+=f[i][j]*i
    重复,自己寻找,加个组合数?????
    www.codechef.com

    problem6
    /*p1>p2>....>pn
    f[i+1][j]+=f[i][j]*i
    f[i+1][j+i]+=f[i][j]*/***
    p1<p2<p3<.....<pn
    for k 0->i i+1插入到k
    f[i+1][j+i-k]+=f[i][j]
    j:n^2 逆序对最多这么多
    i:n
    k:n
    优化:%2等于几 j:2
    答案是n!/2
    奇排列个数等于偶排列个数
    奇排列交换第一第二个数,和所有偶排列一一对应

  • 相关阅读:
    (双指针 二分) leetcode 167. Two Sum II
    (双指针) leetcode 485. Max Consecutive Ones
    (双指针) leetcode 27. Remove Element
    (String) leetcode 67. Add Binary
    (数组) leetcode 66. Plus One
    (N叉树 BFS) leetcode429. N-ary Tree Level Order Traversal
    (N叉树 递归) leetcode 590. N-ary Tree Postorder Traversal
    (N叉树 递归) leetcode589. N-ary Tree Preorder Traversal
    (N叉树 DFS 递归 BFS) leetcode 559. Maximum Depth of N-ary Tree
    (BST 递归) leetcode98. Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/lcan/p/9743242.html
Copyright © 2011-2022 走看看