博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #160 (Div. 2) D. Maxim and Restaurant(DP)
阅读量:4596 次
发布时间:2019-06-09

本文共 945 字,大约阅读时间需要 3 分钟。

这题纠结好久了 看一神代码 想了N久才明白它的意思 

dp[i][j]表示放了i个数后和为J的方式有多少种

而在算阶层总数的时候 会重一部分 而重的那一部分恰好为小于等于P的长度 所以就直接省了乘长度这一部分

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 #define LL long long 9 int a[55];10 LL dp[55][55];11 double pp[55];12 int main()13 {14 int i,j,k,n,p;15 scanf("%d",&n);16 for(i = 1; i <= n ; i++)17 scanf("%d",&a[i]);18 scanf("%d",&p);19 dp[0][0] = 1;20 for(i = 1; i <= n ;i++)21 for(j = n ; j>=1 ; j--)22 for(k = p ; k >= a[i] ; k--)23 {24 dp[j][k] += dp[j-1][k-a[i]];25 }26 pp[0] = 1;27 for(i = 1; i <= n ;i++)28 pp[i] = pp[i-1]*i;29 double ans=0;30 for(i = 0 ;i <= n ; i++)31 {32 for(j = 1 ; j <= p ; j++)33 {34 ans+=pp[i]*pp[n-i]*dp[i][j];35 }36 }37 printf("%.8lf\n",ans/pp[n]);38 return 0;39 }
View Code

 

转载于:https://www.cnblogs.com/shangyu/p/3361822.html

你可能感兴趣的文章
小房间灯.20190512
查看>>
绘图-路径
查看>>
恢复sudo的权限的命令
查看>>
使用appledoc
查看>>
转:Loadrunner添加服务器监控
查看>>
remove debug symbols to a seperate file
查看>>
ArcGIS ArcMap “ Add Data” 打开后,一直卡死,无内容
查看>>
在C#中使用属性控件添加属性窗口
查看>>
Java 消息队列-Java并发编程 阻塞队列
查看>>
Web Service简介
查看>>
Java 内存模型- Java Memory Model
查看>>
同步锁Lock
查看>>
Spark RDD的设计与运行原理
查看>>
缺少libz.so
查看>>
jquery 的一些基本操作
查看>>
Nginx 的 docker 部署
查看>>
Linux 下应用程序最大打开文件数的理解和修改【转】
查看>>
[HNOI2018]毒瘤
查看>>
第一次WM_PAINT事件执行前显示白色框 的解决办法
查看>>
快速备份和还原 MySQL 数据库的另一种方法
查看>>