ZR#1015
ZR#1015
解法:
我们需要求得, $ g_i $ 表示长度为的最长不下降子序列个数。
设 $ f_{i,j} $ 表示统计第前$ i $ 个数字,得到最长不下降子序列末端为 $ j $ 。
显然这个状态可以从前面所有转移过来。
树状数组优化一下。
考虑到在 $ g_i $ 状态下,我们可以以任意顺序删去个 $ n-i $ 数,则长度为 $ i $ 的最长不下降子序列方案数为 $ g_i(n - i) !$
但是,不能保证它在成为最长不下降子序列时就停止删数。
不合法方案数为 $ g_{i+1}(n- i - 1)! * (i + 1) $ (最后一次可以删个数中任意一个)。
所以统计答案的时候就是 $ ans = g_i * (n - i)! - g_{i+1}*(n-i-1)! * (i + 1) $
CODE:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define LL long long
#define N 2010
const int mod = 1e9 + 7;
int n,pos[N];
LL a[N],t[N],sum[N][N];
LL f[N][N],g[N],fac[N],ans;
inline int lowbit(int x) {
return x & -x;
}
void update(int id,int x,LL v) {
for(int i = x ; i <= n ; i += lowbit(i))
sum[id][i] = (sum[id][i] + v) % mod;
}
LL query(int id,int x) {
LL ans = 0;
for(int i = x ; i ; i -= lowbit(i))
ans = (ans + sum[id][i]) % mod;
return ans;
}
int main() {
scanf("%d",&n);
for(int i = 1 ; i <= n ; i++)
scanf("%lld",&a[i]);
for(int i = 1 ; i <= n ; i++) t[i] = a[i];
sort(t + 1,t + n + 1);
int num = unique(t + 1,t + n + 1) - t - 1;
fac[1] = 1;
for(int i = 1 ; i <= n ; i++)
pos[i] = lower_bound(t + 1,t + num + 1,a[i]) - t;
for(int i = 2 ; i <= n ; i++)
fac[i] = 1LL * fac[i - 1] * i % mod;
update(0,1,1);
for(int i = 1 ; i <= n ; i++) {
for(int j = i ; j >= 1 ; j--) {
f[i][j] = (f[i][j] + query(j - 1,pos[i]) % mod) % mod;
update(j,pos[i],f[i][j] % mod);
}
}
for(int i = 1 ; i <= n ; i++) {
for(int j = 1 ; j <= n ; j++) {
g[i] = (g[i] + f[j][i]) % mod;
}
}
for(int i = 1 ; i <= n ; i++)
ans = ((ans % mod + (fac[n - i] % mod * g[i] % mod) % mod) % mod - fac[n - i - 1] % mod * g[i + 1] % mod * (i + 1) % mod + mod) % mod;
printf("%lld\n",ans);
//system("pause");
return 0;
}
ZR#1015的更多相关文章
- 1015: [JSOI2008]星球大战starwar
1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec Memory Limit: 162 MB Description 很久以前,在一个遥远的星系,一个黑暗的帝国 ...
- soj 1015 Jill's Tour Paths 解题报告
题目描述: 1015. Jill's Tour Paths Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Every ...
- POJ 1015 Jury Compromise 2个月后重做,其实这是背包题目
http://poj.org/problem?id=1015 题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n个人作为陪审团的候选人,然后再从 ...
- BZOJ 1015 题解
1015: [JSOI2008]星球大战starwar Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝 ...
- 【ZOJ】1015 Fishing Net
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1015 题意:给出一个n个点的无向图,询问是否为弦图,弦图定义为对于图中任意 ...
- [1015][JSOI2008]星球大战starwar(并查集)
1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 2124 Solved: 909[Submit] ...
- 【BZOJ】1015: [JSOI2008]星球大战starwar(并查集)
http://www.lydsy.com/JudgeOnline/problem.php?id=1015 看了题解的囧T_T,一开始以为是求割点,但是想到割点不能统计.... 这题用并查集,思想很巧妙 ...
- PAT乙级 1015. 德才论 (25)
1015. 德才论 (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Li 宋代史学家司马光在<资治通鉴&g ...
- fzu 1015 土地划分(判断线段相交+求出交点+找规律)
链接:http://acm.fzu.edu.cn/problem.php?pid=1015 Problem 1015 土地划分 Accept: 714 Submit: 1675Time Lim ...
随机推荐
- dubbo源码阅读之服务引入
服务引入 服务引入使用reference标签来对要引入的服务进行配置,包括服务的接口 ,名称,init,check等等配置属性. 在DubboNamespaceHandler中,我们可以看到refer ...
- react之高阶组件(二)
高阶组件的使用 接上文———— 一.像函数一样直接调用 import React, { Component } from 'react' import A from './A' class C ext ...
- src属性与浏览器渲染
img标签 只要设置了src属性, 就会开始下载,因此可以使用这个特性,配合display:none,默默的下载一些图片,用的时候直接用,快了那么一丢丢~ 注意:不一定要添加到文档后才会开始下载,是只 ...
- pre-departure preparation-to chengdu or shenzhen
编辑本文 (一)思想要点 1.行动改变自己,做自己的救世主. 2.成为一个技术大拿. 3.当生活吊打了你,不用悲伤,尽快反击(力所能及的做事),不要停歇,因为不能再给生活喘息的机会. 4.遇到什么问题 ...
- Linux命令cut
原文 cut 文件内容查看 显示行中的指定部分,删除文件中指定字段 显示文件的内容,类似于下的type命令. 说明 该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将 ...
- Linux实验:ssh免密码配置
[实验目的] 1)了解ssh工具的作用 2)熟悉ssh配置过程 3)理解ssh原理[实验原理] SSH是目前比较可靠的专为远程登录会话和其他网络服务提供安全的协议.不同主机之间 ...
- OSI标准协议分析
1.各个层的作用 物理层:(physical Layer):物理层负责传送比特(Bit),涉及到接口和传输媒体的机械 电气特性 数据链路层:(data link layer):数据链路层负责传送的帧( ...
- Django之路——4 Django的视图层
一个视图函数简称称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何 ...
- Union-Find(并查集): Union-Find Application
Union-find 可以应用在很多方面 之前我们看到了union-find在dynamic connectivity上的应用,接下来介绍它在percolation上的应用. union-find在K ...
- cookie,session,token介绍
本文目录 发展史 Cookie Session Token 回到目录 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档 ...