51nod 1850 抽卡大赛 (十二省联考模测) DP
O(n4)O(n^4)O(n4)的DP很好想,但是过不了.来看看O(n3)O(n^3)O(n3)的把. Freopen的博客
CODE
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 205;
const int mod = 1e9 + 7;
int n, tot, m[MAXN], v[MAXN], a[MAXN][MAXN], g[MAXN][MAXN], p[MAXN][MAXN], P[MAXN], sump[MAXN];
struct node {
int i, j;
inline bool operator <(const node &o)const { return a[i][j] > a[o.i][o.j]; }
}Q[MAXN*MAXN];
inline int qmul(int a, int b) {
int res = 1;
while(b) {
if(b&1) res = 1ll * res * a % mod;
a = 1ll * a * a % mod; b >>= 1;
}
return res;
}
int ans[MAXN], pol[MAXN], tmp[MAXN];
inline void Div(int P) {
if(!P) return;
int invp = qmul(P, mod-2);
for(int i = n; ~i; --i)
tmp[i] = 1ll * (pol[i+1] - 1ll * tmp[i+1] * (1-P) % mod) % mod * invp % mod;
for(int i = 0; i <= n; ++i) pol[i] = tmp[i];
}
inline void Mul(int P) {
for(int i = 0; i <= n; ++i)
tmp[i] = ((i ? 1ll * pol[i-1] * P % mod : 0) + 1ll * pol[i] * (1-P) % mod) % mod;
for(int i = 0; i <= n; ++i) pol[i] = tmp[i];
}
int main () {
scanf("%d", &n);
int inv100 = qmul(100, mod-2);
for(int i = 1; i <= n; ++i) {
scanf("%d", &m[i]);
for(int j = 1; j <= m[i]; ++j) {
scanf("%d%d%d", &a[i][j], &g[i][j], &p[i][j]), P[i] += p[i][j];
Q[++tot] = (node){ i, j };
}
P[i] = qmul(P[i], mod-2);
for(int j = 1; j <= m[i]; ++j)
g[i][j] = 1ll * (100 - g[i][j]) * inv100 % mod,
p[i][j] = 1ll * p[i][j] * P[i] % mod;
}
for(int i = 0; i < n; ++i) scanf("%d", &v[i]);
sort(Q + 1, Q + tot + 1);
pol[0] = 1;
for(int i = 1; i <= tot; ++i) {
Div(sump[Q[i].i]);
for(int j = 0; j < n; ++j)
ans[Q[i].i] = (ans[Q[i].i] + 1ll * pol[j] * v[j] % mod * g[Q[i].i][Q[i].j] % mod * p[Q[i].i][Q[i].j] % mod) % mod;
sump[Q[i].i] = (sump[Q[i].i] + p[Q[i].i][Q[i].j]) % mod;
Mul(sump[Q[i].i]);
}
for(int i = 1; i <= n; ++i) printf("%d\n", (ans[i] + mod) % mod);
}
51nod 1850 抽卡大赛 (十二省联考模测) DP的更多相关文章
- 2019十二省联考 Round 1 && 济南市市中心游记
在这样一场毒瘤的省选中 这道题目无疑是命题人无私的馈赠 大量精心构造的部分分,涵盖了题目中所有涉及的算法 你可以利用这道题目,对你是否能够进入省队进行初步检查 经典的模型.较低的难度和不大的代码量,能 ...
- 十二省联考 - JLOI2019 游记
十二省联考 - JLOI 2019 游记 想了想,还是起一个副标题吧 一场失败的胜利 Day -inf 想了想,还是从头开始说吧. 其实考完NOIP之后,大概估算一下,吉林省队的数量还算是比较乐观的, ...
- 「十二省联考 2019」字符串问题——SAM+DAG
题目 [题目描述] Yazid 和 Tiffany 喜欢字符串问题.在这里,我们将给你介绍一些关于字符串的基本概念. 对于一个字符串 $S$, 我们定义 $\lvert S\rvert$ 表示 $S$ ...
- CQOI2019(十二省联考)游记
CQOI2019(十二省联考)游记 Day -? 自从联赛爆炸,\(THUWC\)爆炸,\(WC\)爆炸(就没有不爆炸的)之后我已经无所畏惧... 听说是考\(4.5 h\)吗? Day -1 \(Z ...
- [十二省联考2019]字符串问题——后缀自动机+parent树优化建图+拓扑序DP+倍增
题目链接: [十二省联考2019]字符串问题 首先考虑最暴力的做法就是对于每个$B$串存一下它是哪些$A$串的前缀,然后按每组支配关系连边,做一遍拓扑序DP即可. 但即使忽略判断前缀的时间,光是连边的 ...
- [十二省联考2019]异或粽子——可持久化trie树+堆
题目链接: [十二省联考2019]异或粽子 求前$k$大异或区间,可以发现$k$比较小,我们考虑找出每个区间. 为了快速得到一个区间的异或和,将原序列做前缀异或和. 对于每个点作为右端点时,我们维护出 ...
- 【BZOJ5495】[十二省联考2019]异或粽子(主席树,贪心)
[BZOJ5495][十二省联考2019]异或粽子(主席树,贪心) 题面 BZOJ 洛谷 题解 这不是送分题吗... 转异或前缀和,构建可持久化\(Trie\). 然后拿一个堆维护每次的最大值,每次如 ...
- 【BZOJ5496】[十二省联考2019]字符串问题(后缀树)
[BZOJ5496][十二省联考2019]字符串问题(后缀树) 题面 BZOJ 洛谷 题解 首先显然可以把具有支配关系的串从\(A\)到\(B\)连一条有向边,如果\(B_i\)是\(A_j\)的前缀 ...
- 【BZOJ5498】[十二省联考2019]皮配(动态规划)
[BZOJ5498][十二省联考2019]皮配(动态规划) 题面 BZOJ 洛谷 题解 先考虑暴力\(dp\),设\(f[i][j][k]\)表示前\(i\)所学校,有\(j\)人在某个阵营,有\(k ...
随机推荐
- SGI RB-tree深入理解
前言 在学习STL源码之前我也曾无数次想要弄懂红黑数的原理,奈何每次都被困难打退.说实话,红黑树是真的很难理解,需要不断沉淀才能慢慢体会其妙处.这两天看SGI的RB-tree实现,结合侯捷老师的< ...
- 【Python】【demo实验17】【练习实例】【将一个正整数分解质因数】
题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 我的源代码: #!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 ...
- 【LOJ】#3121. 「CTS2019 | CTSC2019」无处安放
第一次有耐心去研究一道题答-- 以前看到题答要么扔要么就水能简单手玩出来的 1 2可以手玩出来,快乐! 4呢发现3 3比较格路,就把3 3都配了,一边带个4的除了4 4都塞满这么放进去,然后把一边带2 ...
- Spring4学习回顾之路04—引用其他Bean,集合数据注入,内部Bean
引用其他Bean 组件应用程序的Bean经常需要相互协作以完成应用程序的功能,所以要求Bean能够相互访问,就必须在Bean配置文件中指定Bean的引用.在Bean的配置文件中可以用过<ref& ...
- 解决连接HIS连接不上数据库的问题
运行程序单步运行,设置断点 配置HIS中的 GetDataBaseInfo类,将与本机无关的配置函数全部删除,(按照DMHospital.ini文件来对照修改),如下图: 往数据库中所创建的表中添加数 ...
- ARST 第五周打卡
Algorithm : 做一个 leetcode 的算法题 /////////////////////////////////////////////////////////////////// // ...
- Linux试题亿点点
1. 在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b) A.NID B.PID C.UID C.CID # process ID 进程id号 # UID 用户iD号 ...
- spring boot 2.0 提示 No primary or default constructor found for interface Pageable 解决办法
在SpringBoot 2.0 以前,我们会配置以下类 @Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter ...
- 怎样在 Vue 中使用 事件修饰符 ?
Vue 中可以通过 v-on 来绑定事件监听函数, 不过事件会有许多额外情况, 比如 是否阻止冒泡 / 是否阻止重载 / 是否限制点击次数 / 是否可以通过按键触发 等等. 这时就需要使用到 事件修饰 ...
- luogu题解 UVA11992 【Fast Matrix Operations】
题目链接: https://www.luogu.org/problemnew/show/UVA11992 题目大意: 一个r*c的矩阵,一开始元素都是0,然后给你m次三种操作,分别是将一个子矩阵中所有 ...