当前位置: 首页 > news >正文

HDU 6078 Wavel Sequence

Wavel Sequence

Problem Description
Have you ever seen the wave? It’s a wonderful view of nature. Little Q is attracted to such wonderful thing, he even likes everything that looks like wave. Formally, he defines a sequence a1,a2,…,an as ”wavel” if and only if a1a3a5

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
const int max_n=2009;
const int mod=998244353;
int a[max_n],b[max_n];
int n,m,num0,num1,ans;
int once[max_n][2],sum[max_n][2];///once是指以b数组中此次状态下的的第i为作为谷态(0)和峰态(1)的个数
                                 ///sum是指以b数组中之前所有的的第j位作为谷态(0)和峰态(1)的个数
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        ans=0;
        memset(sum,0,sizeof(sum));
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        for(int i=1;i<=m;i++)
            scanf("%d",&b[i]);
        for(int i=1;i<=n;i++)
        {
            num0=1;///表示此次作为波谷的个数,因为最开始的那个肯定要从波谷开始
            num1=0;///表示此次作为波峰的个数
            for(int j=1;j<=m;j++)
            {
                if(a[i]==b[j])///两个相同的话,则进行状态的转移
                {
                    once[j][0]=num0;
                    once[j][1]=num1;
                    ans=(ans+(once[j][0]+once[j][1])%mod)%mod;
                }
                if(a[i]>b[j])///这里作为波峰
                {
                    num1=(num1+sum[j][0])%mod;///这次的可以作为波峰的加上之前的波谷
                }
                if(a[i]<b[j])
                {
                    num0=(num0+sum[j][1])%mod;///这次的可以作为波谷的加上之前的波峰
                }
            }
            for(int j=1;j<=m;j++)
            {
                if(a[i]==b[j])
                {
                    sum[j][0]=(sum[j][0]+once[j][0])%mod;
                    sum[j][1]=(sum[j][1]+once[j][1])%mod;
                }
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}

转载于:https://www.cnblogs.com/nanfenggu/p/7900074.html

相关文章:

  • java io
  • 1.spring、mybatis、mysql整合需要的包
  • html行内元素和块级元素及其居中问题
  • 贝叶斯来理解高斯混合模型GMM
  • 键盘输入字符、数字,并判断数是否是2的阶次方数
  • [noip2015 d1t2] 信息传递
  • 【模板】一坨数学算法
  • 单词首字母变大写-vue
  • HDU 5402 Travelling Salesman Problem(棋盘染色 构造 多校啊)
  • oracle归档日志增长过快处理方法
  • 对WebSocket技术的学习与探索(二)
  • noip 2016 Day T1 组合数
  • Python装饰器主要用法
  • JMeter学习-004-WEB脚本入门实战
  • JDBC的链接及封装
  • 4. 路由到控制器 - Laravel从零开始教程
  • Centos6.8 使用rpm安装mysql5.7
  • CSS3 变换
  • docker python 配置
  • echarts的各种常用效果展示
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • IndexedDB
  • Laravel5.4 Queues队列学习
  • leetcode-27. Remove Element
  • Python 反序列化安全问题(二)
  • Python利用正则抓取网页内容保存到本地
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 前端js -- this指向总结。
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 如何利用MongoDB打造TOP榜小程序
  • 如何实现 font-size 的响应式
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 7行Python代码的人脸识别
  • hi-nginx-1.3.4编译安装
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​【已解决】npm install​卡主不动的情况
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (生成器)yield与(迭代器)generator
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (转)可以带来幸福的一本书
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .mysql secret在哪_MYSQL基本操作(上)
  • .Net - 类的介绍
  • .NET 解决重复提交问题
  • .net 流——流的类型体系简单介绍
  • .NET开发人员必知的八个网站
  • .Net中的集合
  • /bin、/sbin、/usr/bin、/usr/sbin