题目地址


状态设计:

  • f[子序列长度][当前位数](严格递增子序列数量).

易错点:

  • 初始化时需要设置f[0][0]=1.
  • 每个独立的数字都只会影响到比它更大的数字.
  • 预处理时的sort保证了整个算法的正确性.

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const int MAXN=2e3,MOD=1e9+7;
int lowbit(int x){return x&-x;
}
int c[MAXN];
ll ask(int x){ll ans=0;while(x){ans+=c[x];ans=ans%MOD;x-=lowbit(x);}return ans;
}
void add(int x,int value){while(x<=MAXN){c[x]+=value;c[x]=c[x]%MOD;x+=lowbit(x);}
}
int a[MAXN],b[MAXN];
int f[MAXN][MAXN];
int main(){int T;scanf("%d",&T);int caseCnt=0;while(T--){caseCnt++;int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%d",&a[i]);memcpy(b,a,sizeof(b));sort(b+1,b+1+n);for(int i=1;i<=n;i++){a[i]=lower_bound(b+1,b+n+1,a[i])-(b-1);}f[0][0]=1;for(int i=1;i<=m;i++){memset(c,0,sizeof(c));if(i==1)add(1,f[i-1][0]);for(int j=1;j<=n;j++){f[i][j]=ask(a[j]-1);add(a[j],f[i-1][j]);}}int ans=0;for(int i=1;i<=n;i++){ans+=f[m][i];ans=ans%MOD;}printf("Case #%d: %d\n",caseCnt,ans);}return 0;
}

AW297 赤壁之战(数据结构优化DP)相关推荐

  1. BZOJ 1592. Making the Grade(思维,数据结构优化DP,以及三个拓展问题)[Usaco2008 Feb]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x 目录 BZOJ 1592. Making the Grade 拓展问题一 拓展问 ...

  2. HDU 4990 Ordered Subsequence --数据结构优化DP

    题意:给一串数字,问长度为m的严格上升子序列有多少个 解法:首先可以离散化为10000以内,再进行dp,令dp[i][j]为以第i个元素结尾的长度为j的上升子序列的个数, 则有dp[i][j] = S ...

  3. Atcoder dp_q Flowers 数据结构优化dp

    文章目录 题意 题解 最近在练习atcoder上的dp场,大概只会做一半.我选出一些不会的题目写一下博客. 题意 按顺序每朵花有一个高度,一个美丽度,选出一个高度上升的子序列,求美丽度之和的最大值. ...

  4. 0x58 数据结构优化DP

    补写一下 poj3171 设f[i]表示覆盖L~i的最小花费,把区间按左端点排序,枚举区间,f[a[i].r]=min{f[a[i].l~(a[top].r-1)]}+a[i].c (当然还要和原值比 ...

  5. bzoj1233 单调队列优化dp

    https://www.lydsy.com/JudgeOnline/problem.php?id=1233 数据结构优化dp的代码总是那么抽象 题意:奶牛们讨厌黑暗. 为了调整牛棚顶的电灯的亮度,Be ...

  6. dp进阶之FFT加速+数据结构优化+不等式优化

    快速傅里叶变换 快速傅里叶变换(英语:Fast Fourier Transform, FFT),是快速计算序列的离散傅里叶变换(DFT)或其逆变换的方法.傅里叶分析将信号从原始域(通常是时间或空间)转 ...

  7. 【DP】【树状数组】方伯伯的玉米田/优美玉米(luogu 3287/金牌导航 数据结构优化DP-5)

    正题 luogu 3287 金牌导航 数据结构优化DP-5 题目大意 有n个玉米,给出高度,你可以选择一个区间,使这个区间的玉米高度+1,你可以进行k次这样的操作,查询你操作完后最长不下降子序列最大值 ...

  8. 【DP】【树状数组】免费馅饼(luogu 7302/金牌导航 数据结构优化DP-4)

    正题 luogu 7302 金牌导航 数据结构优化DP-4 题目大意 在坐标轴上会出现n个金币,第i个金币tit_iti​时在wiw_iwi​出现(只出现一个单位时间),价值为sis_isi​,当你t ...

  9. 【DP】【树状数组】折线统计(金牌导航 数据结构优化DP-1)

    正题 金牌导航 数据结构优化DP-1 题目大意 平面上有n个点,让你选择若干点,连接x坐标相邻的点,其中连续上升或下降的为一段,问你有多少中选择方案,使得段数为k 解题思路 设fi,j,0/1f_{i ...

最新文章

  1. Drug Target Review | 筛选用于抗COVID-19的抗病毒化合物
  2. 剑指offer 算法(树的两个节点的最低祖先)
  3. 配置overlay(overlayfs)根目录挂载构建debian
  4. 像证券交易员一样思考和行动_3纪律与心态
  5. Docker_容器命令
  6. python笔记之while循环
  7. 1024 许个愿吧,万一实现了呢?
  8. AMD: Developer Guides, Manuals ISA Documents
  9. 关于 linux c 清屏命令
  10. 海思Hi3716C多媒体芯片规格书介绍
  11. Linux下 lnmp一键安装
  12. 面试技巧顶个P --leo谈应届生求职 2
  13. Blender物理效果教学:如何自制“牛顿摆”
  14. 随笔——物质与思想(或称意识)
  15. html5拖拽实现拼图,HTML5技术之图像处理:一个滑动的拼图游戏
  16. 怎么将png图片缩小?教你在线压缩png图片的方法
  17. 使用Axure RP8 模拟遮罩层显隐
  18. 《化工流体力学》课程笔记(四)
  19. 【软著】分享一次自己申请软件著作权的历程
  20. 大数据计算 PCIe 扩展坞系统

热门文章

  1. 2021华为杯D题详细讲解:抗乳腺癌候选药物的优化建模
  2. 3D MAX眼睛贴图制作过程
  3. 云计算概念活跃 浪潮软件放量涨停
  4. Gitlab项目上传
  5. 【常用命令】netstat -ano命令图文详细说明
  6. SAP PS 第11节 收入类项目结果分析及结算
  7. 20170425めも
  8. 女生适合干【长期第一线编程工作】 男生能干的女生照样可以做的更好
  9. macos 版本_如何检查您使用的macOS版本
  10. 超详细文件包含漏洞原理及修复