首页 > 其他分享 >subsequence1 (牛客多校) (2个串比大小, DP, 组合数)

subsequence1 (牛客多校) (2个串比大小, DP, 组合数)

时间:2023-05-20 11:22:06浏览次数:37  
标签:int s2 ll 多校 牛客 len1 3001 subsequence1 DP

题面大意:

  • 给定2个字符串,问有多少个子字符串S, 是大于t的

 

思路

  • 数据范围很小, 因此考虑n^2做法
  • 分2步, 位数s>位数t 的时候
  • 然后 位数相等的时候
  • 利用DP ,处理, 分别就是枚举 前 k个数和s相同,然后k+1个数比t大就可以. 
  • 具体思路自己想想,和那个比较像
  •   

 

 
const int MOD = 998244353;
 ll dp[3001][3001];
  ll c[3001][3001];
    void init()
    {
      c[0][0] = 1;
         for(int i = 1; i <= 3000 ; ++ i)
         {
             c[i][0] = c[i][i] = 1;
               for(int j = 1 ; j < i ; ++ j)
               {
                    c[i][j] = c[i-1][j] + c[i-1][j-1];
                    c[i][j] %= MOD;
               }
         }
    }
 int main()
 {
    init();
      int T;
       cin >> T;
     while(T--)
     {
        
            char s1[3001] , s2[3001];
              int len1 , len2;
               ll sum = 0;
               scanf("%d%d",&len1,&len2);
                scanf("%s%s",s1+1,s2+1);
                 dp[0][0] = 1;
            for(int i = 1 ; i <= len1 ; ++ i)
            {
                 dp[i][0] = 1;
                   for(int j = 1 ; j <= min(len2,i) ; ++ j)
                    {
                        dp[i][j] = dp[i-1][j];
                         if( s1[i] == s2[j] )
                               dp[i][j] += dp[i-1][j-1],
                                  dp[i][j] %= MOD;
                             if( s1[i] > s2[j])
                               sum += ( dp[i-1][j-1] * c[len1-i][len2-j] ) % MOD;
                    }
            }
         for(int i = 1 ; i <= len1; ++ i)
            if( s1[i] != '0')
            {
               for(int k = len2 ; k <= len1 - i; ++ k)
                  sum += c[len1-i][k],
                    sum %= MOD;
            }
          printf("%lld\n",sum);
     }
 }
随便偷的代码

 

标签:int,s2,ll,多校,牛客,len1,3001,subsequence1,DP
From: https://www.cnblogs.com/Lamboofhome/p/17416946.html

相关文章

  • 2023-05 多校联合训练 ZJNU站 热身赛
    猫猫接币币给定两个容量分别为a和b的盒子,已知第i秒天上会掉下i个金币,你会从第1秒开始接金币,每秒钟你可以选择任意一个盒子接金币,但是不能不选,你必须使得两个盒子刚好装满,请问是否存在某个时刻,使得恰好装满两个盒子,输出一个仅由A和B组成的字符串,第\(i\)位的字符即表示第\(i\)......
  • 【牛客小白72】E 二分答案
    https://ac.nowcoder.com/acm/contest/56825/E题意给你\(10^{10}\)个数(数组an个数,数组bm个数,数是a*b的集合),有\(Q\)(Q为常数)个询问,每次问你第\(x\)小的数是多少思路最暴力的思路肯定是把所有数放在一起,然后排序。易知时间复杂度为\(nlogn(n=1e10)\),会超时。继续思......
  • Interval(20年牛客多校5)
    传送门题意有一个数列\(A(0\leqslantA_i\lt2^{30})\)长度为\(N(1\leqslantN\leqslant10^5)\),\(F(l,r):=A_l\&A_{l+1}\&\cdots\&A_r\),\(S(l,r):=\left\{F(a,b)|\min(l,r)\leqslanta\leqslantb\leqslant\max(l,r)\right\}\),有\(Q(1\le......
  • 2022 杭电多校 第十场 1001 Winner Prediction(最大流)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=7244杭电题解:先让1号选手赢下所有和他有关的比赛,设此时选手赢了a场比赛。如果存在某个ai>a1则1号选手不可能成为冠军。否则选手至多还能再赢bi=a1-ai场比赛。考虑建立一张网络流图:每场未进行的比赛在图中用一个点......
  • 牛客 55994 2023牛客五一集训派对day3 D Points Construction Problem
    D-PointsConstructionProblem_2023牛客五一集训派对day3(nowcoder.com)将图上恰好\(n\)个点染成黑色,使得图上相邻的黑白点对数量恰好为\(m\)考虑\(n\)个黑点如果不相邻,则两个点的贡献互不影响考虑相邻的情况,我们把相邻的点连边,则贡献为每一个连通块的贡献的和,我们用......
  • “蔚来杯“2022牛客暑期多校训练营3,签到题CAJHF
    题号标题已通过代码通过率团队的状态AAncestor点击查看1383/3940BBoss点击查看54/734CConcatenation点击查看2603/9404DDirected点击查看62/157EElectrician点击查看18/38FFief点击查看378/2528GGeometry点击查看73/1076HHacker点击查看468......
  • 【牛客编程题】Python机器学习(入门例题5题)
    【牛客编程题】Python机器学习(入门例题5题)做题链接:https://www.nowcoder.com/exam/oj?page=1&tab=Python篇&topicId=329文章目录AI1鸢尾花分类_1AI2鸢尾花分类_2AI3决策树的生成与训练-信息熵的计算AI4决策树的生成与训练-信息增益AI5使用梯度下降对逻辑回归进行训练AI1鸢尾......
  • “蔚来杯“2022牛客暑期多校训练营2,签到题GJK
    题号标题已通过代码通过率团队的状态AFalfawithPolygon点击查看56/445Blight点击查看50/326CLinkwithNimGame点击查看192/1035DLinkwithGameGlitch点击查看831/6211EFalfawithSubstring点击查看264/3287FNIOwithStringGame点击查看52/......
  • 【牛客编程题】shell34题(Linux awk,grep命令)
    【牛客编程题】shell34题(Linuxawk,grep命令)SHELL01-22:基本文本处理SHELL23-28:nginx日志分析SHELL29-32:netstat练习做题链接:https://www.nowcoder.com/exam/oj?page=1&tab=SHELL%E7%AF%87&topicId=195参考资料:https://github.com/jaywcjlove/linux-command文章目录从awk命令开始对......
  • “蔚来杯“2022牛客暑期多校训练营1,签到题GADI
    题号标题已通过代码通过率团队的状态AVillages:Landlines点击查看1673/4177通过BSpiritCircleObservation点击查看39/299未通过CGrabtheSeat!点击查看88/392未通过DMochaandRailgun点击查看1589/8517通过ELTCS点击查看43/324未通过FCut点击......