luoguP5087 数学(滚动数组优化dp 水体)
时间:2019-08-24
本文章向大家介绍luoguP5087 数学(滚动数组优化dp 水体),主要包括luoguP5087 数学(滚动数组优化dp 水体)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
小奔
热衷于乘法,他最喜欢做的事情是:从一个有N个元素的序列里取出K个数,(注意:不能取同一个元素好几次,取不同但是值相同的元素则是允许的) 然后算出这K个数的积作为这个组合的分数。
小奔
想试遍所有的这些组合,然后算出所有这些组合的分数之和。但是他还要 出模拟赛虐爆我们这些蒟蒻,所以他只好把这个任务交给了你。
小奔
~~(在某些方面)~~还是很仁慈的,所以你不用写高精度,只要输出答案膜10000000071000000007的结果就可以了。
因为题目点进去的,然而并不数学()。
做法见文章标题。
#include<bits/stdc++.h> #define maxn 100000+5 #define mod 1000000007 #define maxn2 1000+5 #define LL long long #define re register int using namespace std; int n,k; LL num[maxn]; LL f[2][maxn2]; inline int read() { int x=0; char ch=getchar(); while(!isdigit(ch)) ch=getchar(); while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar(); } return x; } inline void write(LL x) { if(x>9) write(x/10); putchar(x%10+'0'); } int main() { n=read(); k=read(); for(re i=1;i<=n;i++) num[i]=read(); f[0][0]=1; for(int i=1;i<=n;i++) for(re j=0;j<=min(i,k);j++) f[i&1][j]=(f[(i-1)&1][j]+f[(i-1)&1][j-1]*num[i]%mod)%mod; write(f[n&1][k]); return 0; }
原文地址:https://www.cnblogs.com/3200Pheathon/p/11406005.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法