• 【无标题】


    题目

    在某些思想上跟 象棋 象棋 象棋 那道很相似
    虽然可能只有我这样认为

    解法

    倒序进行加数的过程,那么当你倒序加入了一个数后。若为 1 1 1,则 S + 1 S+1 S+1; 若为 − 1 -1 1,则为 max ⁡ { 0 , S − 1 } \max\{0,S-1\} max{0,S1}
    那么设计 D P DP DP状态后,就发现 f i , j f_{i,j} fi,j f i + 1 , j + 1 f_{i+1,j+1} fi+1,j+1 f i + 1 , max ⁡ { 0 , j − 1 } f_{i+1,\max\{0,j-1\}} fi+1,max{0,j1}转移而来
    但是对于每一个关于 k k k 的询问,我们都会单独算一轮;
    可我们可以优化,写出具体的转移式:
    f i , j = p i + 1 f i + 1 , j + 1 + ( 1 − p i + 1 ) f i + 1 , max ⁡ { 0 , j − 1 } f_{i,j} =p_{i+1} f_{i+1,j+1}+(1-p_{i+1})f_{i+1,\max\{0,j-1\}} fi,j=pi+1fi+1,j+1+(1pi+1)fi+1,max{0,j1}
    在写出 f i + 1 , j + 1 . . . . . . f_{i+1,j+1}...... fi+1,j+1......的转移式,就会发现我们可以求出每个 f i , j f_{i,j} fi,j 系数,当询问 某个 k k k 时,就相当于令 f k , 0 = 1 f_{k,0}=1 fk,0=1 ,再带入 f k , 0 f_{k,0} fk,0 的系数即可,我们用动态规划求出系数即可,转移于 f f f的转移类似

    #include 
    #include 
    using namespace std;
    typedef long long ll;
    const int N=5e3+7;
    const  ll mod=1e9+7;
    int n;
    ll f[N][N];
    struct st { ll p,q; } p[N];
    ll qpow(ll ba,ll pow) {
        ll res=1; while(pow) {
            if(pow&1) res=res*ba%mod;
            ba=ba*ba%mod,pow>>=1;
        } return res;
    }
    int main() {
        int T; scanf("%d",&T); while(T--) {
            scanf("%d",&n);
            for(int i=1;i<=n;i++) {
                ll x,y,z;
                scanf("%lld%lld",&x,&y),z=(y-x),y=qpow(y,mod-2);
                p[i].p=x*y%mod,p[i].q=z*y%mod;
            }
            for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) f[i][j]=0;        
            for(int i=0;i<=n;i++) scanf("%lld",&f[0][i]);
            for(int i=0;i
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
  • 相关阅读:
    MQ - 19 安全_限流方案的设计
    开发必备Liunx常用的几个命令
    【21天学习挑战赛】折半查找
    40G光模块的兼容性与协议标准
    Slf4j(门面)
    C++内存管理与模板初阶
    【数据结构与算法】图的概述(内含源码)
    运筹模型的变量的对称性案例及分析
    「Spring」Boot Docker 认证指南(下)
    14-GuliMall ElasticSearch安装与入门
  • 原文地址:https://blog.csdn.net/PocketSam/article/details/132811052