bzoj_2676_Contra
2024-04-30 06:05:11
我定义的状态数组存的是概率,而且是正推
达哥存的是期望,还逆推,然后我就懵比了
$f_{i,j,k}$ 第i关 j条命 连胜k次
$$f_{i+1,min(j+1,Q),min(k+1,R)}+=f_{i,j,k}*p$$
$$f_{i+1,j-1,0}+=f{i,j,k}*(1.0-p)$$
$$ans=\sum_{i=1}^n\sum_{j=0}^Q\sum_{k=1}^R f_{i,j,k}*j$$
然后暴力dp会了,考虑矩阵乘优化
首先两维压成一维
剪枝:
1.命数!=Q&&命数<连胜数 就不用压
然后还可以再加一个位置,用来存期望
#include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #include <iostream> #include <cmath> #define mem(a,b) memset(a,b,sizeof(a)) #define ll long long #define rint register int #define dd double #define esp 0.0000001 using namespace std; inline void read(int &x) {x=0; char q=getchar();while(q<'0'||q>'9') q=getchar();while(q>='0'&&q<='9') x=x*10+q-'0',q=getchar(); }int n,R,Q,S; dd f[2][7][10006];dd dp(dd p) {rint i,j,k; int nx,t1,t2,now=0;dd ans=0;for(j=0;j<7;++j)for(k=0;k<10006;++k)f[1][j][k]=0;f[1][Q][0]=1;for(i=0;i<n;++i){now^=1; nx=now^1;for(j=0;j<=Q;++j)for(k=0;k<=R;++k)f[nx][j][k]=0;for(j=1;j<=Q;++j)for(k=0;k<=R;++k){t1=j+1; if(t1>Q) t1=Q;t2=k+1; if(t2>R) t2=R;f[nx][t1][t2]+=f[now][j][k]*p;f[nx][j-1][0]+=f[now][j][k]*(1.0-p);}for(j=0;j<=Q;++j)for(k=0;k<=R;++k)ans=ans+f[nx][j][k]*k;}return ans; }dd work() {dd l=0,r=1,mid;while(l<r-esp){mid=(l+r)/2.0;if(dp(mid)>=S) r=mid;else l=mid;}return l; }int main(){//freopen("in.in","r",stdin); read(n); read(R); read(Q); read(S);//printf("%lf",dp(1));printf("%lf",work()); }
bao_li
#pragma GCC optimize("O3") #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #include <iostream> #include <cmath> #define mem(a,b) memset(a,b,sizeof(a)) #define ll long long #define rint register int #define dd double #define esp 0.00000001 using namespace std; inline void read(int &x) {x=0; char q=getchar();while(q<'0'||q>'9') q=getchar();while(q>='0'&&q<='9') x=x*10+q-'0',q=getchar(); } inline void readll(ll &x) {x=0; char q=getchar();while(q<'0'||q>'9') q=getchar();while(q>='0'&&q<='9') x=x*10+q-'0',q=getchar(); }int all,dui[10][31]; struct QTQ {dd b[155][155];void clear(){mem(b,0);}void out(){printf("\n");for(int i=1;i<=all;++i){for(int j=1;j<=all;++j)printf("%lf ",b[i][j]);printf("\n");}printf("\n");}QTQ operator * (const QTQ &c) const{QTQ x=*this,t; rint i,j,k;for(i=1;i<=all;++i)for(j=1;j<=all;++j){t.b[i][j]=0;for(k=1;k<=all;++k)t.b[i][j]+=x.b[i][k]*c.b[k][j];}return t;} }f,a,a1,a2;int n,R,Q; ll S;dd dp(dd p) {rint i,j;f.clear(); a1.clear(); a2.clear();for(i=1;i<=Q;++i)for(j=0;j<=R;++j)if(i>=j||i==Q){a1.b[dui[i][j]][dui[min(i+1,Q)][min(j+1,R)]]=p;a1.b[dui[i][j]][dui[i-1][0]]=(1.0-p);}a1.b[all][all]=1;for(i=0;i<=Q;++i)for(j=0;j<=R;++j)if(i>=j||i==Q)a2.b[dui[i][j]][all]=j;for(i=1;i<=all;++i) a2.b[i][i]=1;a=a1*a2;f.b[1][dui[Q][0]]=1;int ci=n;while(ci){if(ci&1)f=f*a;a=a*a;ci>>=1;}return f.b[1][all]; }dd work() {dd l=0,r=1,mid;while(l<r-esp){mid=(l+r)/2.0;if(dp(mid)>=S) r=mid;else l=mid;}return l; }int main(){//freopen("in.in","r",stdin);//freopen("out.out","w",stdout);//freopen("nt2012_contra.in","r",stdin);//freopen("nt2012_contra.out","w",stdout); rint i,j;read(n); read(R); read(Q); readll(S);all=0;for(i=0;i<=Q;++i)for(j=0;j<=R;++j)if(i>=j||i==Q)dui[i][j]=++all;++all;if(dp(1.0)<=S)// ... 必须是<=,不然第一个点... {printf("Impossible.\n");return 0;}printf("%lf",work()); }
ju_zhen_you_hua
转载于:https://www.cnblogs.com/A-LEAF/p/7725895.html
bzoj_2676_Contra相关推荐
最新文章
- Science:英国Castrillo组揭示微生物群与根内皮的协调支持植物营养平衡!
- 正则表达式调用“或”变量
- Node.js 极简笔记
- arcgis 栅格数据 邻域计算_ArCGIS中DEM地形鞍部提取
- 获取对象属性(key)
- html5离线储存不足,html5的离线存储问题
- [USACO08DEC]拍头Patting Heads 数学 BZOJ 1607
- 最新linux 5,Linux 5.5 正式发布
- 抓包工具tcpdump和tshark
- java中的引用,你注意到没?
- python 的库如何开发_Python开发者必备6个基本库
- IT技术支持必备知识
- 51,AVR,PIC,MSP430,STM32单片机比较
- 关于DCMM评估模型的全面解析
- CS5532 C51驱动程序
- 用IAR调试芯唐Cortex-M0系列芯片指南
- ASP 五年总结精华源码
- 【未完成】【甄选靶场】Vulnhub百个项目渗透——项目四十一:DEFCON Toronto-Galahad(图像深层分析,流量分析)
- Self-attention GAN
- 关于动漫的HTML网页设计:期末前端web大作业——海贼王基地(6个页面)
热门文章
- 重学React基础知识整理(二)
- 51Nod 圆与三角形
- Chapter 1.伦敦的歌剧魅影 ——《地与光》
- 处理ERP的EXCEL报表数字长度超15位导致精度丢失的问题
- 解决 redis 存入中文,取出来是乱码wenti
- 武侠小说阅读记录 2009-02-18 21:14
- 想拿互联网大厂的前端offer, 除了技术,你还差什么?
- android收集备忘录恢复工具,备忘录不小心删了怎么恢复?专业恢复工具分享
- ipad越狱后怎么还原?
- d va爬黑板animate_部编版四年级语文上册第17课爬天都峰微课视频|MP3朗读|同步练习...