P2473 [SCOI2008]奖励关 题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出\(k\)次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃). 宝物一共有\(n\)种,系统每次抛出这\(n\)种宝物的概率都相同且相互独立.也就是说,即使前\(k-1\)次系统都抛出宝物1(这种情况是有可能出现的,尽管概率非常小),第\(k\)次抛出各个宝物的概率依然均为\(1/n\). 获取第\(i\)…
题面 luogu 题解 \(n \leq 15\) 状压 \(f[i][S]\)表示第\(i\)轮,吃过的集合为\(S\) 正着转移好像有点复杂 考虑逆推转移(正着转移应该也行) \(f[i][S]\)表示\([1,i-1]\)轮,吃过的集合为\(S\),第\(i\)轮到第\(k\)轮最大期望得分 Code #include<bits/stdc++.h> #define LL long long #define RG register const int N = 16; using names…
传送门 我数学期望还是太差了…… 先考虑状压模型,设$dp[i][S]$表示第$i$轮,当前宝物状态为$S$,能获得的最大期望分数 然而这个模型有一个问题,第$i$轮不一定能达到状态$S$ 那么考虑转化一下,$dp[i][S]$表示第$1$至$i-1$轮的宝物状态为$S$,第$i$至$n$轮的期望分数 那么我们就可以倒推了 那么对于第$k$个宝物,可以分为两种情况 1.可以选,那么此时可以选择选或者不选,则$dp[i][S]+=max\{dp[i+1][S],dp[i+1][S|(1<<k-1…
题目链接 题意 : 中文题.点链接 分析 : 第一道有关概率期望的DP 有个大部分情况下通用的结论 概率正推.期望反推 原因不明.其实是没有查到较好的解释 这题由于有一些取物品的先决条件在这里 而且观察到题目 n 并不是很大 果断选择状压来解决 这题定义 dp[i][j] 到第 i 回合.拿过物品状态为 j 的情况的最优值是什么 转移的时候.第一维倒序枚举回合.第二维枚举状态.然后第三维枚举每个物品 如果当前状态包含了当前枚举到的物品的先决物品的话 则有转移 dp[i][j] += max( d…
你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃). 宝物一共有n种,系统每次抛出这n种宝物的概率都相同且相互独立.也就是说,即使前k-1次系统都抛出宝物1(这种情况是有可能出现的,尽管概率非常小),第k次抛出各个宝物的概率依然均为1/n. 获取第i种宝物将得到Pi分,但并不是每种宝物都是可以随意获取的.第i种宝物有一个前提宝物集合Si.只有当Si中所有…
题目:https://www.luogu.org/problemnew/show/P2473 因为可不可选此物与之前选过什么物品有关,所以状态可以记录成前面已经选过什么物品. 因为选不选此物与它带来的贡献有关,而它的情况又会影响后面,所以值倒着推. 自己混乱的地方是状态,原来只需:本次此物是否是1无关,从它转移过来的那个状态此物必须是1,所以 | 一个就行! 因为是概率,所以各处/n,可以合并成算完后再/n. #include<iostream> #include<cstdio>…
题目链接:P2473 [SCOI2008]奖励关 题意:有n个宝物 每次等概率抛出其中之一一共抛出k次每个宝物有一个价值 和一个前提集合只有集齐了集合中的所有宝物 才可以领取这个宝物 范围:1 <= k <= 100, 1 <= n <= 15,分值为[-106,106]内的整数   这个范围长得很dp呀这个n长得很状压啊   最初想法:对于负价值宝物我们计算它本身的贡献与它带来的期望贡献来判定是否可取对每一个宝物记录它自己的贡献最后求和   正解:逆向状压 2 ^ 15 = 32…
P2473 [SCOI2008]奖励关 $n<=15$,显然的状压 设$f[i][w]$表示前$i$轮,状态$w$的最大期望 蓝后我们发现一个问题:$f[i][w]$可能是非法的 于是我们从$f[i][w]$转移到$f[i][w|(1<<j)]$时可能会GG 那咋办鸭 试试逆推 设$f[i][w]$表示第$i -> k$轮,状态$w$的最大期望 从后往前推,就可以判断掉非法操作 合法时$f[i][w]+=max(f[i+1][w],f[i+1][w|(1<<(j-1))…
1.并查集求最小生成树 Code: #include <stdio.h> #include <stdlib.h>   struct node {     long x,y,c; }road[];   ];   int cmp(const void *a,const void *b) {     if ((*(struct node *)a).c < (*(struct node *)b).c)         ;     else         ; }   long get…
P2317 [HNOI2005]星际贸易 题目描述 输入输出格式 输入格式: 输出格式: 如果可以找到这样的方案,那么输出文件output.txt中包含两个整数X和Y.X表示贸易额,Y表示净利润并且两个数字之间用一个空格隔开.如果不能完成这次星际贸易,那么输出文件output.txt中包含 "Poor Coke!"(不包括引号). 不知道为什么网上找不到txt的,于是只好copy了洛谷的,侵删. 首先理清一下题目. 这老哥的第一目的是想让自己卖的钱最多,第二目的是在卖的钱最多的基础上把…