2013年山东省赛F题 Mountain Subsequences
先说n^2做法,从第1个,(假设当前是第i个)到第i-1个位置上哪些比第i位的小,那也就意味着a[i]可以接在它后面,f1[i]表示从第一个开始,以a[i]为结尾的不同递增序列的个数,要加上1,算上本身。正反各跑一遍,答案加一下(f1[i]-1)*(f2[i]-1)
优化就是,比a[i]小的,只有a[i]-1个

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<queue>
  4. #include<algorithm>
  5. #include<cmath>
  6. #include<ctime>
  7. #include<set>
  8. #include<map>
  9. #include<stack>
  10. #include<cstring>
  11. #define inf 2147483647
  12. #define ls rt<<1
  13. #define rs rt<<1|1
  14. #define lson ls,nl,mid,l,r
  15. #define rson rs,mid+1,nr,l,r
  16. #define N 100010
  17. #define For(i,a,b) for(int i=a;i<=b;i++)
  18. #define p(a) putchar(a)
  19. #define g() getchar()
  20.  
  21. using namespace std;
  22. int n,ans;
  23. char c[];
  24. int a[],f1[],f2[],sum[];
  25.  
  26. void in(int &x){
  27. int y=;
  28. char c=g();x=;
  29. while(c<''||c>''){
  30. if(c=='-')y=-;
  31. c=g();
  32. }
  33. while(c<=''&&c>=''){
  34. x=(x<<)+(x<<)+c-'';c=g();
  35. }
  36. x*=y;
  37. }
  38. void o(int x){
  39. if(x<){
  40. p('-');
  41. x=-x;
  42. }
  43. if(x>)o(x/);
  44. p(x%+'');
  45. }
  46.  
  47. void clear(){
  48. memset(f1,,sizeof(f1));
  49. memset(f2,,sizeof(f2));
  50. memset(sum,,sizeof(sum));
  51. ans=;
  52. }
  53.  
  54. int main(){
  55. while(cin>>n){
  56. clear();
  57. cin>>(c+);
  58. For(i,,n)
  59. a[i]=c[i]-'a'+;
  60. For(i,,n){
  61. For(j,,a[i]-)
  62. f1[i]+=sum[j];
  63. f1[i]++;
  64. f1[i]%=;
  65. sum[a[i]]+=f1[i];
  66. }
  67.  
  68. memset(sum,,sizeof(sum));
  69.  
  70. for(int i=n;i;i--){
  71. For(j,,a[i]-)
  72. f2[i]+=sum[j];
  73. f2[i]++;
  74. f2[i]%=;
  75. sum[a[i]]+=f2[i];
  76. }
  77. For(i,,n-){
  78. ans+=(f1[i]-)*(f2[i]-)%;
  79. ans%=;
  80. }
  81. o(ans);p('\n');
  82. }
  83. return ;
  84.  
  85. }

2013年山东省赛F题 Mountain Subsequences的更多相关文章

  1. 位运算 2013年山东省赛 F Alice and Bob

    题目传送门 /* 题意: 求(a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*.......*(an-1 * x^(2^(n-1))+1) 式子中,x的p次方的系数 二进制位运算:p ...

  2. 红外光通信装置数字部分思路点睛 2013年国赛f题

  3. 2013年省赛H题

    2013年省赛H题你不能每次都快速幂算A^x,优化就是预处理,把10^9预处理成10^5和10^4.想法真的是非常巧妙啊N=100000构造两个数组,f1[N],间隔为Af2[1e4]间隔为A^N,中 ...

  4. 2013年省赛I题 Thrall’s Dream

    2013年省赛I题判断单向联通,用bfs剪枝:从小到大跑,如果遇到之前跑过的点(也就是编号小于当前点的点),就o(n)传递关系. bfs #include<iostream> #inclu ...

  5. HEX SDUT 3896 17年山东省赛D题

    HEX SDUT 3896 17年山东省赛D题这个题是从矩形的左下角走到右上角的方案数的变形题,看来我对以前做过的题理解还不是太深,或者是忘了.对于这种题目,直接分析它的性质就完事了.从(1,1)走到 ...

  6. ACM-ICPC 2019南昌网络赛F题 Megumi With String

    ACM-ICPC 南昌网络赛F题 Megumi With String 题目描述 给一个长度为\(l\)的字符串\(S\),和关于\(x\)的\(k\)次多项式\(G[x]\).当一个字符串\(str ...

  7. HDU 4738 Caocao's Bridges (2013杭州网络赛1001题,连通图,求桥)

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. 2013杭州现场赛B题-Rabbit Kingdom

    杭州现场赛的题.BFS+DFS #include <iostream> #include<cstdio> #include<cstring> #define inf ...

  9. HDU 4816 Bathysphere (2013长春现场赛D题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4816 2013长春区域赛的D题. 很简单的几何题,就是给了一条折线. 然后一个矩形窗去截取一部分,求最 ...

随机推荐

  1. building tool

    Build Tool的含义是什么? building tool中文名称叫构建工具,BuildTools.jar是我们构建Bukkit,CraftBukkit,Spigot和Spigot-API的解决方 ...

  2. 腾讯云服务器搭建Apache/PHP/MySQL环境

    软件环境 Windows Server 2008 R2 企业版 SP1 64位 刚刚进入 Windows Server ,你会看到以下界面: 列出了服务器的基础信息和常用配置 下载 XAMPP htt ...

  3. JVM 学习(一)反射、垃圾回收、异常处理--- 2019年4月

    1.JVM 基础知识点 JVM 虚拟机包含了:自动内存管理器.垃圾回收(垃圾回收调优). 执行顺序:Java 代码 --- .class 字节码文件(加载到虚拟机中) --- Java 类放在方法区中 ...

  4. Kafka面试题

    1.如何获取topic主题的列表bin/kafka-topics.sh --list --zookeeper localhost:2181 2.生产者和消费者的命令行是什么?生产者在主题上发布消息:b ...

  5. C# DataTable下载

    从服务器下载datatable到本地,有多种处理方式,下面介绍三种. 方式一,将datatable转为txt下载. 步骤: 1.将datatable内容下载到服务器txt中 2.将服务器的txt下载到 ...

  6. C#语法——await与async的正确打开方式

    C#5.0推出了新语法,await与async,但相信大家还是很少使用它们.关于await与async有很多文章讲解,但有没有这样一种感觉,你看完后,总感觉这东西很不错,但用的时候,总是想不起来,或者 ...

  7. java 并发多线程显式锁概念简介 什么是显式锁 多线程下篇(一)

    目前对于同步,仅仅介绍了一个关键字synchronized,可以用于保证线程同步的原子性.可见性.有序性 对于synchronized关键字,对于静态方法默认是以该类的class对象作为锁,对于实例方 ...

  8. [C#] C# 与 Nessus 交互,动态构建扫描任务计划

    C# 与 Nessus 交互,动态构建扫描任务计划 目录 什么是 Nessus? 创建会话类 NessusSession 登录测试 创建操作类 NessusManager 操作测试 什么是 Nessu ...

  9. Concat

    .net 对List使用Concat newlist=list.Concat(list2).ToList() JS的Concat则不用ToList(),一样要用个值去接 Concat返回是一个新数组, ...

  10. Error fetching https://gems.ruby-china.org/: bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz) 报错解决办法

    执行换源操作 gem source -a https://gems.ruby-china.org/ 时报错: Error fetching https://gems.ruby-china.org/: ...