思路

  用 f(i,j) 来表示当前做了i道题,共做对了j道题

  状态 f[i][j] = f[i-1][j] * (1-p[i]) + f[i-1][j-1] * p[i]

  第一种:由于i-1时对了j题,所以第i题做错了;

  第二种:由于i-1时对了j-1题,所以第i题对了;

  时间复杂度O(n^2)

CODE

 #include <bits/stdc++.h>
#define dbg(x) cout << #x << "=" << x << endl using namespace std;
typedef long long LL; template<class T>inline void read(T &res)
{
char c;T flag=;
while((c=getchar())<''||c>'')if(c=='-')flag=-;res=c-'';
while((c=getchar())>=''&&c<='')res=res*+c-'';res*=flag;
} namespace _buff {
const size_t BUFF = << ;
char ibuf[BUFF], *ib = ibuf, *ie = ibuf;
char getc() {
if (ib == ie) {
ib = ibuf;
ie = ibuf + fread(ibuf, , BUFF, stdin);
}
return ib == ie ? - : *ib++;
}
} int qread() {
using namespace _buff;
int ret = ;
bool pos = true;
char c = getc();
for (; (c < '' || c > '') && c != '-'; c = getc()) {
assert(~c);
}
if (c == '-') {
pos = false;
c = getc();
}
for (; c >= '' && c <= ''; c = getc()) {
ret = (ret << ) + (ret << ) + (c ^ );
}
return pos ? ret : -ret;
} const int kmaxn = ;
LL f[kmaxn][kmaxn];
const LL mod = 1e9 + ;
int n;
LL p[kmaxn]; int main()
{
scanf("%d",&n);
for(int i = ; i <= n; ++i) {
scanf("%lld",&p[i]);
}
f[][] = ;
for(int i = ; i <= n; ++i) {
f[i][] = f[i-][] * (mod+-p[i]) % mod;
for(int j = ; j <= n; ++j) {
f[i][j] = ((f[i-][j]*(i-p[i]+mod)) % mod + f[i-][j-]*(mod+p[i]) % mod)% mod;
}
}
for(int i = ; i < n; ++i) {
printf("%lld ",f[n][i]);
}
printf("%lld\n",f[n][n]);
return ;
}

最新文章

  1. Swift 2.0 异常处理
  2. android 解析XML 工具类
  3. 【jq】c#零基础学习之路(3)继承和虚方法
  4. PHP代码规范
  5. FireFox下上传控件的显示问题
  6. QAction QActionGroup QMenu 使用方法
  7. iOS 面试题
  8. archlinux下wifi-menu显示连接超时
  9. 如何使用NSOperations和NSOperationQueues(二)
  10. RSA 加解密
  11. iframe 处理
  12. JVM基础和调优(二)
  13. PHP ReflectionClass
  14. 阿里云LINUX服务器配置HTTPS(NGINX)
  15. RabbitMQ安装配置和基于EasyNetQ驱动的基础使用
  16. Web应用程序的敏感信息-隐藏目录和文件
  17. JavaScript 之默认行为 DOM2级,事件委托机制
  18. Jhipster Registry(Eureka Server) Docker双向联通与高可用部署
  19. Fiddler 断点功能
  20. zabbix安装及简单配置

热门文章

  1. CentOS使用465端口发送邮件
  2. FFmpeg命令读取RTMP流如何设置超时时间
  3. php 全局变量 预定义变量
  4. HSRP 详解
  5. Error serializing object:序列化对象时出错
  6. JDK1.8_HashMap源码__构造函数
  7. 《ASP.NET Core应用开发入门教程》与《ASP.NET Core 应用开发项目实战》正式出版
  8. SAP 对HU做转库操作,系统报错 - 系统状态HUAS是活动的 - 分析
  9. 有关版本控制--SVN
  10. 解决MySql客户端秒退(找不到my.ini)