Description
定义波浪序列:a1 > a2 < a3…,现在给出一个长度为n的序列a和一个长度为m的序列b,求a和b的公共波浪子序列个数
Input
第一行一整数T表示用例组数,每组用例首先输入两个整数n和b表示两个序列的长度,然后输入一个长度为n的序列a[1]~a[n]和一个长度为m的序列b[1]~b[m] (1<=T<=15,1<=n,m,a[i],b[j]<=2000)
Output
输出a和b的公共波浪子序列个数
Sample Input
1
3 5
1 5 3
4 1 1 5 3
Sample Output
10
Solution

Code

#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=2001,mod=998244353;
namespace fastIO
{#define BUF_SIZE 100000//fread -> readbool IOerror=0;inline char nc() {static char buf[BUF_SIZE],*p1=buf+BUF_SIZE,*pend=buf+BUF_SIZE;if(p1==pend) {p1=buf;pend=buf+fread(buf,1,BUF_SIZE,stdin);if(pend==p1) {IOerror=1;return -1;}}return *p1++;}inline bool blank(char ch) {return ch==' '||ch=='\n'||ch=='\r'||ch=='\t';}inline void read(int &x) {char ch;while(blank(ch=nc()));if(IOerror)return;for(x=ch-'0';(ch=nc())>='0'&&ch<='9';x=x*10+ch-'0');}#undef BUF_SIZE
};
using namespace fastIO;
int T,n,m,a[maxn],b[maxn],dp[maxn][2],sum[maxn][2];
int inc(int x,int y)
{return x+y>=mod?x+y-mod:x+y;
}
int main()
{read(T);while(T--){read(n),read(m);for(int i=1;i<=n;i++)read(a[i]);for(int i=1;i<=m;i++)read(b[i]);memset(sum,0,sizeof(sum));int ans=0;for(int i=1;i<=n;i++){int num0=0,num1=1;for(int j=1;j<=m;j++){dp[j][0]=dp[j][1]=0;if(a[i]==b[j]){dp[j][0]=num1,dp[j][1]=num0;ans=inc(ans,inc(num0,num1)); }else if(a[i]<b[j])num1=inc(num1,sum[j][1]);else num0=inc(num0,sum[j][0]);}for(int j=1;j<=m;j++)sum[j][0]=inc(sum[j][0],dp[j][0]),sum[j][1]=inc(sum[j][1],dp[j][1]);}printf("%d\n",ans);}return 0;
}

HDU 6078 Wavel Sequence(dp)相关推荐

  1. HDU 6078 Wavel Sequence (dp)

    Description Have you ever seen the wave? It's a wonderful view of nature. Little Q is attracted to s ...

  2. HDU - 6078 Wavel Sequence(动态规划+时间优化)

    代码: #include<bits/stdc++.h> #define MOD 998244353 using namespace std; #define MAXN 2050int dp ...

  3. 【XSY2564】sequence(dp)

    题面 [题目描述] 给定一个长度为nnn的由['0'...'9'][\text{'}0\text{'}...\text{'}9\text{'}]['0'...'9']组成的字符串sss,v[i,j]v ...

  4. HDU 6078 Wavel Sequence

    Wavel Sequence Problem Description Have you ever seen the wave? It's a wonderful view of nature. Lit ...

  5. 2017多校第4场 HDU 6078 Wavel Sequence DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6078 题意:求两个序列的公共波形子序列的个数. 解法: 类似于最长公共上升子序列,对于每个i,只考虑存 ...

  6. (2017多校训练第四场)HDU - 6078 Wavel Sequence dp

    传送门:点击打开链接 定义状态dp[i][j][0]表示以a[i],b[j]结尾的且为波谷的情况总和,dp[i][j][1] 为波峰. 对于某个i,j满足a[i] == b[j],则dp[i][j][ ...

  7. HDU 6078 Wavel Sequence【动态规划】

    题目来戳呀 Problem Description Have you ever seen the wave? It's a wonderful view of nature. Little Q is ...

  8. hdu 6078 Wavel Sequence

    题 OvO http://acm.hdu.edu.cn/showproblem.php?pid=6078 (2017 Multi-University Training Contest - Team ...

  9. HDOJ-2062 :Subset sequence(DP)

    题目:求子集序列 Consider the aggregate An= { 1, 2, -, n }. For example, A1={1}, A3={1,2,3}. A subset sequen ...

最新文章

  1. 【AI参赛经验】汉字书法识别比赛经验心得——by:microfat_htu
  2. Win32下内存分配简单示例 - 使用CFree
  3. 完全删除垃圾Q+!!!
  4. 作为利物浦大学和西浦的学生的职业机会发展平台!很重要!
  5. 几年前的代码发现一个BUG: 整数相除结果不能默认转换为浮点数
  6. android 控件描边取消重叠
  7. access数据类型百度百科_Day 7 基本数据类型
  8. linux+last命令菜鸟,Linux基本命令。。。菜鸟保留
  9. 苹果确认部分AirPods Pro存在静电噪音等声音问题 将免费更换
  10. 刹车时到底要不要踩离合器?
  11. iOS学习笔记之正则表达式
  12. dpi数据接入shell脚本
  13. 云电脑与远控软件有什么区别?如何选?
  14. 怎么看计算机的a卡右键找不到,右键没有显卡,右键没有amd显卡选项
  15. MySQL查看数据库状态命令详解
  16. LaTeX中定义新命令和环境
  17. Android官方开发相关下载资源一揽子大汇总
  18. 你的计划为什么执行不下去?怎么破?
  19. @2021考生,研招网再次开通下载《准考证》功能,查分不愁啦
  20. NOAA气象数据整理-各站点年月均降水量(2000-2022年)

热门文章

  1. 【AcWing19】【LeetCode】DFS - 46/47/39/77/78/216/17/131/93/90/491
  2. 2023年核桃仁行业产业布局:全球核桃仁产量稳步增长
  3. logstash问题记录:Attempted to resurrect connection to dead ES instance, but got an error
  4. php函数形参,PHP中的函数形参的默认值
  5. 【Python | 词云】聊天记录绘制超美词云(七夕快乐 ,曾同学)
  6. OneClock 不息屏的极简时钟,不仅仅是翻页时钟那么简单!
  7. 大华sdk(java)上传人脸图片到人脸库,订阅人脸识别对比
  8. 安卓进阶之android系统架构
  9. python科学计算环境配置_ATLAS + NumPy + SciPy + Theano 的Python科学计算环境搭建
  10. 三阶及四阶Runge-Kutta法