CCF-CSP-202109-4-收集卡牌

2023-11-18

原题链接
满分代码

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
typedef double LL;

const int N = 1<<16,M = 6;
int n,k;
LL a[16];
LL f[N][16*6];  //记忆化搜索,期望,   状态和钱
bool g[N][16*6];

LL dfs(int state,int money,int len){ //表示手中还没有的牌的数量
    if(g[state][money]){  //说明这种情况已经计算过
        return f[state][money];
    }
    if(state==(1<<n)-1){     //到叶子节点了
        return 0;
    }
    if(money>=len*k){          //钱够买剩余全部了
        return 0;
    }
    LL res=0;
    for (int i = 0; i < n; i ++ ){
        int c = (state>>i)&1;
        if(!c){ //找手中还没有的牌
            LL t = dfs(state|(1<<i),money,len-1);
            res += (t+1)*a[i];
        }else{
            LL t = dfs(state,money+1,len);
            res += (t+1)*a[i];
        }
    }
    g[state][money] = true;
    f[state][money] = res;
    return res;
}


int main()
{
    cin >> n >> k;
    for (int i = 0; i < n; i ++ ){
        cin >>a[i];
    }
    LL t = dfs(0,0,n);
    printf("%.10lf",t);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CCF-CSP-202109-4-收集卡牌 的相关文章

随机推荐

  • (黑客)自学笔记

    一 自学网络安全学习的误区和陷阱 1 不要试图先成为一名程序员 以编程为基础的学习 再开始学习 行为 从编程开始掌握 前端后端 通信协议 什么都学 缺点 花费时间太长 实际向安全过渡后可用到的关键知识并不多 很多安全函数知识甚至名词都不了解
  • Xception论文解读

  • make/makefile的使用

    make makefile 文章目录 make makefile 初步认识makefile的工作流程 依赖关系和依赖方法 make的使用 总结 make是一个命令 是一个解释makefile中指令的命令工具 makefile是一个文件 当前
  • oracle数据库中输入date类型的数据

    给oracle数据库已有记录中更新date类型的数据 插入date类型的格式 to date 2016 01 03 12 23 19 yyyy mm dd hh24 mi ss 2016 01 03 12 23 19 表示想要插入的时间 y
  • 华为鸿蒙os今日新闻,华为正式发布鸿蒙OS,却再次被质疑

    6月2日 市场瞩目的鸿蒙产品发布会成功举办 此次华为还连发三款搭载鸿蒙系统的硬件 华为 MatePad Pro 平板 华为 Watch 3 智能手表和华为 FreeBuds 4 TWS 耳机 但事情总有两面性 喜欢你的不论你做什么都会被看好
  • 小白入坑-利用express构建一个简单的Node项目

    做了部分前端的东西 当然不能局限眼前的成果 梦想能成为全栈的大佬 然后左手一个小姐姐 右手一个富萝莉 走远了 奈于java对前端来说比较难 耗费的学习时间也比较长 所以先从node下手过一下瘾儿 首先 win r打开windows的运行框
  • 什么是堡垒机

    什么是堡垒机 1 堡垒机是用来解决 运维混乱 的 堡垒机是用来干什么的 简而言之一句话 堡垒机是用于解决 运维混乱 的 何谓运维混乱 当公司的运维人员越来越多 当需要运维的设备越来越多 当参与运维的岗位越来越多样性 如果没有一套好的机制 就
  • Git入门超详细文档

    Git Git概述 Git是一个免费的 开源的分布式版本控制系统 可以款速高效的处理从小型到大型的各种项目 Git易于学习 占地面积小 性能极佳 它具有廉价的本地库 方便的暂存区域和多个工作流分支等特性 其性能优于Subversion CV
  • 试除法判定质数模板题

    试除法判定一个数是否为质数类似于这道题 代码 include
  • mac文件夹权限的@

    demo是网站根目录 终端下执行 cd到demo ls l 显示 drwxr xr x 9 andy admin 306 10 12 17 43 demo 这里的 貌似是mac特有的 第一次使用file put contents往根目录添加
  • QMutex使用时遇到的错误

    class A public explicit A QObject parent 0 A public QMutex m mutex class B public explicit B QObject parent 0 B private
  • C语言笔记 第三章 键盘输入与输出

    文章目录 1 printf 1 1 整型 1 2 字符型 1 3 浮点型 1 4 其他 1 4 1 标志 1 4 2 输出最小宽度 1 4 3 精度 1 4 4 类型长度 1 5 转义字符 2 scanf 2 1scanf 函数的一般形式
  • 网络安全----应急响应入侵排查

    系列文章目录 Web网络安全 红蓝攻防之信息收集 Web网络安全 Log4j高危漏洞原理及修复 Shell分类详解 图形界面 命令行式 Linux安全 应急溯源常用命令 记一次实战成功溯源反制getshell 文章目录 系列文章目录 一 应
  • ADS1256驱动程序

    1 初始化 接口 SPI2 STM32 ADS1256 NSS PB12 CS SCK PB13 SCLK MISO PB14 DOUT MOSI PB15 DIN PB10 DRDY PB11 RESET
  • 感知机介绍及实现

    感知机 perceptron 由Rosenblatt于1957年提出 是神经网络与支持向量机的基础 感知机是最早被设计并被实现的人工神经网络 感知机是一种非常特殊的神经网络 它在人工神经网络的发展史上有着非常重要的地位 尽管它的能力非常有限
  • 错误ValueError: Buffer dtype mismatch, expected ‘float32_t‘ but got ‘double

    PCL库调用错误 cloud0 from array all pointcloud world File pcl pxi PointCloud PointXYZ 180 pxi line 160 in pcl pcl PointCloud
  • 一款强大的API接口文档管理工具(Smart-Doc + Torna)

    本文由龙飞同学供稿 在团队协作开发项目的时候 接口文档承担着向其他开发人员说明接口相关信息的重要任务 因此 一份清晰而又相近的接口文档至关重要 但是 写接口文档的痛苦想必各位开发人员都体验过 明明写接口的时候那么丝滑 写接口文档的时候像要老
  • linux 系统下执行R文件

    随着数据量的激增 在linux系统环境下执行数据分析模型显得很重要 本文来总结下在linux系统下执行R文件的步骤 step01 创建R脚本 例如 Rtest R step02 创建shell脚本 例如 runRtest sh 内容为 bi
  • 自由软件基金会公布了AGPL v3许可证

    自由软件基金会发布了一种新的开放源代码软件许可 新许可面向其代码被用作软件服务化 SaaS 应用的开发人员 新许可将确保对开放源代码SaaS应用代码的修改会反馈给自由软件社区 新许可名称为GNU Affero General Public
  • CCF-CSP-202109-4-收集卡牌

    原题链接 满分代码 include