分析:这道题难度和天天爱跑步差不了多少啊......裸的暴力只有10分,最好大的还是那个5%的数据,不过这也才15分,比天天爱跑步的暴力分不知道少到哪里去了.

正解是dp,毕竟要求方案数嘛,但是这个dp非常不好想.设f[i][j]表示i到j个数的回文子序列的个数.f[i][j]可以从f[i][j-1]转移得到,就是看第j个数和[i,j-1]中的数形成了多少个新的回文子序列.因为回文子序列的两端都是相同的字母,所以可以先预处理出两个数组:pre,last分别表示i这个位置之前的a[i]最后一次出现的位置和之后第一次出现的位置.设k为i以后a[j]第一次出现的位置,p为j以前a[j]最后一次出现的位置,为了使得首位字母一样,f[i][j] += f[k + 1][j - 1],k,j两个端点的先不算.但是这样的话之前加了f[i][j-1]又会加多,所以减去多的部分f[k + 1][p - 1],因为a[j]作为末尾,开头一定要是a[j],最后对端点进行讨论,看k和j能组成几种回文子序列.

我个人认为j,k,p实际上就是固定的左右端点,用左右端点的方案乘左右端点里的方案就是这一个区间的方案数.好比f[i][j]减掉f[k+1][p-1],其实就是固定了左端点为k或p,右端点为j,看[k+1,p-1]里有多少种方案,乘上左右端点组合的方案(1),就是重复的部分.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;
const int mod = 1e9 + 7;int T, n, m, k, f[6010][6010], last[6010], nextt[1010], a[6010], pre[6010];int main()
{scanf("%d", &T);while (T--){scanf("%d%d%d", &n, &m, &k);memset(last, 0, sizeof(last));for (int i = 1; i <= n; i++){scanf("%d", &a[i]);pre[i] = last[a[i]];last[a[i]] = i;}memset(last, 0, sizeof(last));for (int i = n; i >= 1; i--){last[a[i]] = i;for (int j = i; j <= n; j++){int k = last[a[j]], p = pre[j];int temp = (p < k && k <= j) + (p <= k && k < j);f[i][j] = (f[i][j - 1] - f[k + 1][p - 1] + f[k + 1][j - 1] + temp) % mod;if (f[i][j] < 0)f[i][j] += mod;}}for (int i = 1; i <= m; i++){int l, r;scanf("%d%d", &l, &r);printf("%d\n", f[l][r]);}}return 0;
}

转载于:https://www.cnblogs.com/zbtrs/p/7747779.html

noip模拟赛 whzzt-Warmth相关推荐

  1. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  3. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  4. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  5. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  6. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

  7. NOIP 模拟赛 长寿花 题解

    NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...

  8. 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)

    [题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...

  9. NOIP模拟赛套路技巧经验总结

    前言 还有2天就NOIP了,之前做了这么多场模拟赛,是时候拿出来总结一下, 算是给自己一针强心剂. 列表 从最近的考试总结起(个人认为的重点,可能有重复,仅供参考): (转化很重要,一定要简化问题过后 ...

  10. 【NOIP 模拟赛】平均数 涂色游戏 序列题解

    吐槽(完跪):神tmNOIP模拟赛,看到大题头根本高级数据结构什么的想都没想,结果死的很惨,第三题竟然要可持久化线段树,这NOIP我服了. 平均数: 这道题40分相信大家都能拿到,剩下的60分讲真考验 ...

最新文章

  1. linux mysql 统一字符编码
  2. android表视图,android – 列表视图与表格布局
  3. [业界资讯]竟不知道,计世网改版了
  4. Python 开发者的 6 个必备库
  5. ppt录制宏_Word中录制宏,学会后成大神
  6. C++实现大顶堆(插入,删除)
  7. tf.contrib.rnn.static_rnn与tf.nn.dynamic_rnn区别
  8. 计算机原理及应用课程,课程描述
  9. android测试tf卡读写速度,高速TF卡 , 闪迪还是三星?读写速度对比以及上当经历...
  10. pci 1751 java_PCI-1751快速安装使用手册.PDF
  11. Android开发5年,字节腾讯惨被血虐,我真的不适合这行吗?
  12. 【论文写作】汽车销售管理系统的设计与开发引言参考
  13. ol-地图上添加图标
  14. 【Java】自建IOS应用(IPA)发布服务器
  15. idea 解决java文件导入java 文件灰色右下角橙色java图标显示
  16. APP支持文件共享设置(iOS)
  17. 【读书笔记->统计学】02-01 各种“平均数”-均值、中位数和众数概念简介
  18. idea运行的时候出现的问题Exception in thread “main” java.lang
  19. 2021-08-06:天际线问题。城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的 天际线 。每个建筑物的几何信息由数组 build
  20. Puppet:维护运行环境一致性的利器

热门文章

  1. 俄罗斯互联网的BAT
  2. 腾讯反病毒实验室安全研究员杨经宇:开启IoT设备的上帝模式
  3. 【华为MateBook13】更换1TB固态硬盘SSD+重装win10系统+安装NVIDIA显卡驱动+电脑管家+指纹驱动+蓝牙驱动+Office激活
  4. 正则表达式网站在线测试
  5. Python2/3的中、英文字符编码与解码输出: UnicodeDecodeError: 'ascii' codec can't decode/encode...
  6. cmake编译so库
  7. 怎么将路由器设置成交换机
  8. 恶劣的仿造文化:从meebo到米博
  9. pyecharts 大小_[pyecharts1.7] 图表基础设置:大小、背景色、配色主题等
  10. PostgreSQL和MySQL的性能对比实验