DTOJ 1552:网络小说分组(novel)

【题目描述】
YK酷爱阅读网络小说,读起来便是没日没夜废寝忘题的。YK在机房中,花了数个月阅读完了N本网络小说,并且对N本网络小说设定了一个喜爱值,可正可负。由于YK的U盘的容量完全被小说占据,于是她决定对小说进行分组压缩。每组小说一定是要连续的,并且每组小说的喜爱值之和必须非负。YK想要知道方案共有多少个。
【输入】
第1行包含1个数N,代表小说的数目。第2至N+1行每行1个正整数Ai。
【输出】
有且仅有一行,包含1个非负整数即为方案数模1000000009的值。
【样例输入】
4
2
3
-3
1
【样例输出】
4
【分析】
这是一道非常经典的dp。设f[i]表示以第i本小说为当前组结尾的方案数,s[i]表示喜爱值的前缀和,则可得出dp转移式:f[i]=∑(1<=j<=i且s[i]-s[j-1]>=0)f[j]。此时效率为O(n^2),需要优化。
      这个式子与最长上升子序列的dp式有相似之处,于是就想到了用树状数组来优化。首先将前缀和排序,再依次插入。答案即为插入第n本书前的答案。具体操作参见代码。
【代码】
#include<bits/stdc++.h>
using namespace std;
const int mod=1000000009;
int n,t[100002],ans;
struct book { int s,i; }b[100002];
inline int read ( void )
{int x=0;char ch=getchar();bool f=true;while ( !isdigit(ch) ) f^=(ch=='-'),ch=getchar();for ( x=ch-48;isdigit(ch=getchar()); ) x=(x<<1)+(x<<3)+ch-48;return f ? x : -x;
}
inline bool cmp ( const book &b1,const book &b2 ) { return (b1.s<b2.s)|(b1.s==b2.s)&(b1.i<b2.i); }
inline void add ( int x,int y ) { for (;x<=n;x+=x&(-x)) t[x]=(t[x]+y)%mod; }
inline void sum ( int x,int &ans ) { ans=0;for (;x;x-=x&-x) ans=(ans+t[x])%mod; }
int main()
{n=read();for ( int i=1;i<=n;i++ ) b[i].s=b[i-1].s+read(),b[i].i=i;sort(b+1,b+n+1,cmp);add(1,1);sum(1,ans);for ( int i=1;i<=n;i++ ){if ( b[i].s<0 ) continue;sum(b[i].i,ans);add(b[i].i,ans);if ( b[i].i==n ) return !printf("%d\n",ans);}return puts("0");
}

DTOJ 1552:网络小说分组(novel)相关推荐

  1. 电商分类模块写法_模块化写作——网络小说创作之典藏秘籍

    1.模块化,是一种将复杂事物分解为多个模块,从而获得效率与质量的操作手段.这个概念常出现在与科技相关的领域里.其实,模块化在文学领域里也很重要. 例如,小说的情节被分解为四个模块:开端.发展.高潮.结 ...

  2. python网络爬虫_Python爬虫实战之网络小说

    今天和大家分享的是python爬虫实战,由于本人最近迷上了看网络小说,学生党又穷,只能看看网络dao版小说,现在这类dao版小说网站可以说非常的多,但是所有的网站进去都可以看见一大把的广告信息,非常影 ...

  3. 【Android】网络小说阅读软件的实现

    [Android]网络小说阅读软件 由于本人比较喜欢看小说,最近在学习安卓开发,故开发了一款小说阅读软件.初次开发,能力有限,代码可能比较乱.项目已开源,可移至GitHub查看.项目仅供学习交流,不得 ...

  4. 基于JAVA中文网络小说平台系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA中文网络小说平台系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA中文网络小说平台系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 ...

  5. 网络小说写作套路_关于网络写作的6个常见问题,已回答

    网络小说写作套路 Recently an ex-journalist friend asked me about freelance writing for the web. Although he ...

  6. 2019网络小说十大口碑神作盘点,诡秘剑来谍影覆汉牧神学霸皆在

    今天是2019年的最后一天,往前数这一年出现的网络小说,有不少作品还是非常惊艳的,除了有老牌大神的经典之作,也有新崛起的创新之作. 今年好看的小说肯定不止十本,这里先提前说明,这样的盘点带有很强的个人 ...

  7. 那些看网络小说的时光——2019

    网络小说应该是从初中开始读的吧,已经忘记了.但是记得第一本看的是<斗罗大陆>. 最近不知道为什么,就是感觉已经看不下去了.觉得有那时间不如去看几篇大佬的博客,或是总结自己的知识. 可能是最 ...

  8. 资深书虫测评2018年最热网络小说App~看书必备

    资深书虫测评2018年最热网络小说App~看书必备 现在小说改编的电视剧越来越多,拍的也越来越辣眼睛,吃瓜群众纷纷脱离电视剧的坑,投入小说的怀抱,毕竟自己想象出来的人物还是比较美好的( ̄▽ ̄)为了做一 ...

  9. 用Python编写自动下载网络小说的脚本

    很多网站都有长篇连载或是分章节的小说可供在线阅读,但如果想要将所有章节下载下来并整理成一个格式良好的文本文件,则是很费功夫的.幸好可以用Python脚本来自动完成所有的工作.下面的两个脚本,将用来演示 ...

最新文章

  1. bzoj1089: [SCOI2003]严格n元树
  2. Java项目 常用包的命名及理解【dao包、domain包、service包、utils包、web包、impl包】
  3. SAP CRM WebClient UI的configuration按钮是否显示,取决于这个权限检查
  4. 十进制小数化为二进制小数的方法是什么_八进制转换成十进制,十进制转换成八进制...
  5. 镇江 linux技术支持,东云镇江服务器
  6. springMVC的controller单例和多例下成员变量的问题
  7. Flask-SQLAlchemy - 不使用外键连表查询。记得常回来看我
  8. 教育网系统服务器域名地址,教育网宽带dns服务器IP地址(2021年更新)
  9. 什么是 npm ?npm 下载安装使用
  10. C语言编程齿轮轮廓线坐标,c语言程序实现齿轮基本参数几何尺寸计算.pdf
  11. krohne流量计接线图_电磁流量计接线方式
  12. SOCKS5 协议原理详解与应用场景分析
  13. Unity 键盘控制摄像机镜头旋转,并限制旋转角度
  14. html5微杂志源码,H5制作又一利器:分分钟制作一个H5页面
  15. 凭证打印纸的规格(打印凭证选择什么型号的纸)
  16. element plus组件居中显示
  17. Tor配置:514 Authentication required
  18. 浅析安全启动(Secure Boot) —写得很好
  19. iOS开发- 文件共享(利用iTunes导入文件, 并且显示已有文件)
  20. 【数据结构】折半查找法

热门文章

  1. Go语言实现AI五子棋智能算法
  2. python中的end的作用
  3. ChannelNets 论文学习笔记
  4. Superset(5):Superset Dashboards看板展示实战
  5. B、dB、dBm、dBi、dBd、dBc的含义与区别
  6. 【产品人生】<业务流程业务逻辑>产品经理需要掌握的各种图
  7. gevent学习介绍
  8. 【会议征稿|SPIE独立出版|往届已检索】第二届人工智能、虚拟现实与可视化国际学术会议(AIVRV 2022)
  9. 使用 SVG 和 JS 创建一个由星形变心形的动画
  10. Python黑客攻防(八)密码破解攻击