当前位置: 首页 > news >正文

大三第一周训练

周三

前段时间没有写日报,而是写专题了

概率/期望dp专题_Alex Su (*^▽^*)的博客-CSDN博客

博弈论专题_Alex Su (*^▽^*)的博客-CSDN博客

现在觉得写日报才每天有收获感,有动力,于是又开始写日报

P3802 小魔女帕琪(手推概率)

这题就是手算,算出1~7触发的概率,再算一下2~8触发的概率,发现是一样的,然后就可以推出答案了

#include<bits/stdc++.h>
#define rep(i, a, b) for(int i = (a); i < (b); i++)
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std;

int main()
{
    double a[10], N;
    _for(i, 1, 7) scanf("%lf", &a[i]), N += a[i];

    double ans = (N - 6) * 5040;
    _for(i, 1, 7) ans *= a[i] / max(N - i + 1, 1.0); 
    printf("%.3f\n", ans);
   
	return 0;
}

P1850 [NOIP2016 提高组] 换教室(期望dp+floyed)

这题的期望比较特殊,它是比较独立的,概率不需要连乘

也就是说期望体现在两个相邻时间段之间的贡献。这个时候就不是那种比较经典的期望dp了。

细节上,注意初始化和边界问题。

floyed的时候注意自己自己到自己为0,我忽略了这个卡了很久。

#include<bits/stdc++.h>
#define rep(i, a, b) for(int i = (a); i < (b); i++)
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std;

const int N = 2e3 + 10;
const int M = 300 + 10;
int n, m, v, e, c[N], d[N], g[M][M];
double k[N], dp[N][N][2];

int main()
{
    scanf("%d%d%d%d", &n, &m, &v, &e);
    _for(i, 1, n) scanf("%d", &c[i]);
    _for(i, 1, n) scanf("%d", &d[i]);
    _for(i, 1, n) scanf("%lf", &k[i]);
    memset(g, 0x3f, sizeof g);
    while(e--)
    {
        int a, b, w;
        scanf("%d%d%d", &a, &b, &w);
        g[a][b] = g[b][a] = min(g[a][b], w);
    }

    _for(K, 1, v)
        _for(i, 1, v)
            _for(j, 1, v)
                g[i][j] = min(g[i][j], g[i][K] + g[K][j]);
    _for(i, 1, v) g[i][i] = 0;    //写弗洛伊德时记得要加上自己和自己为0
    
    _for(i, 0, n)
        _for(j, 0, m) 
            dp[i][j][0] = dp[i][j][1] = 1e9;
    dp[1][1][1] = dp[1][0][0] = 0;
    _for(i, 2, n)
        _for(j, 0, m)
        {
            int c1 = c[i - 1], c2 = c[i], d1 = d[i - 1], d2 = d[i];
            dp[i][j][0] = min(dp[i - 1][j][0] + g[c1][c2], dp[i - 1][j][1]
                        + k[i - 1] * g[d1][c2] + (1 - k[i - 1]) * g[c1][c2]);
            if(j > 0)
                dp[i][j][1] = min(dp[i - 1][j - 1][0] + k[i] * g[c1][d2] + (1 - k[i]) * g[c1][c2],
                         dp[i - 1][j - 1][1] + k[i - 1] * k[i] * g[d1][d2] + (1 - k[i - 1]) * k[i] * g[c1][d2] + 
                        k[i - 1] * (1 - k[i]) * g[d1][c2] + (1 - k[i - 1]) * (1 - k[i]) * g[c1][c2]);
        }
    
    double ans = 1e9;
    _for(i, 0, m) ans = min(ans, min(dp[n][i][0], dp[n][i][1]));
    printf("%.2f\n", ans);
   
	return 0;
}

相关文章:

  • CrossOver Linux2022虚拟机工具如何下载使用教程
  • 《uni-app》表单组件-Checkbox组件
  • PHP - AJAX 与 MySQL
  • 电线延长寿命小妙招
  • 人工神经网络文献综述,人工神经网络论文文献
  • java 带密码连接redis 单节点/集群 No reachable node in cluster报错解决
  • 如何通过UTON WALLET数字钱包创建和使用你的元宇宙身份
  • uniapp 微信小程序中授权用户手机号码
  • spring实现md5加密
  • 微信公众平台快速开发框架源码
  • DoozyUI⭐️三、DoozyUI支持的 VR SDK列表
  • InfluxDB安装以及使用
  • 嵌入式C语言编程技巧
  • 技术分享 | App常见bug解析
  • flink scala版本报错JavaConversions$.deprecated$u0020propertiesAsScalaMap
  • Android开源项目规范总结
  • canvas 五子棋游戏
  • JS专题之继承
  • SpringBoot 实战 (三) | 配置文件详解
  • SpringCloud集成分布式事务LCN (一)
  • TCP拥塞控制
  • 大数据与云计算学习:数据分析(二)
  • 开源地图数据可视化库——mapnik
  • Java数据解析之JSON
  • 阿里云服务器购买完整流程
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ( 10 )MySQL中的外键
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (一)appium-desktop定位元素原理
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .jks文件(JAVA KeyStore)
  • .Net Remoting常用部署结构
  • .net操作Excel出错解决
  • .NET开发人员必知的八个网站
  • .net生成的类,跨工程调用显示注释
  • /run/containerd/containerd.sock connect: connection refused
  • ::什么意思
  • :如何用SQL脚本保存存储过程返回的结果集
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @Builder用法
  • []sim300 GPRS数据收发程序
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [C++][数据结构][算法]单链式结构的深拷贝
  • [CF543A]/[CF544C]Writing Code
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽
  • [Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包
  • [GXYCTF2019]禁止套娃
  • [iOS]GCD(一)
  • [jQuery]div滚动条回到最底部
  • [linux] Key is stored in legacy trusted.gpg keyring
  • [Ruby]变量替换
  • [Shell]Linux常用快捷键
  • [UML]UML系列——类图class的实现关系Realization
  • [Unity] 基于迭代器的协程底层原理详解