PAT (Advanced Level) Practice - 1068 Find More Coins(30 分)

简介: PAT (Advanced Level) Practice - 1068 Find More Coins(30 分)

题目链接:点击打开链接

题目大意:点击打开链接

解题思路:DFS + 剪枝 + 计数(若不计数 + 不剪枝都会TLE)。

AC 代码

#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a)
#define ssclr(ss) ss.clear(), ss.str("")
#define INF 0x3f3f3f3f
#define MOD 1000000007
using namespace std;
typedef long long ll;
const int maxn=1e4+10;
int n,m,f,len;
int a[maxn], rs[maxn], cnt[150];
void dfs(int sum,int l)
{
    if(f) return;
//    if(sum>m) return; // 1
    if(m==sum)
    {
        for(int i=0;i<l;i++) printf("%d%c",rs[i],i==l-1?'\n':' ');
        f=1;
        return;
    }
    for(int i=0;i<len;i++)
    {
        if(cnt[a[i]]>0)
        {
            if(sum+a[i]>m) return; // 在这里剪枝比在 1 处剪枝效率好很多
            cnt[a[i]]--;
            rs[l]=a[i];
            dfs(sum+a[i],l+1);
            cnt[a[i]]++;
        }
    }
}
int main()
{
    int t;
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&t);
        // 最后一个测试点,卡这点,因为这会出现比如:1 1 1 2 3 4,而前三个 1 在cnt中分别都有三个,就重复计算了很多次
//        if(t<=m) a[len++]=t, cnt[t]++;
        if(t<=m)
        {
            if(cnt[t]==0) a[len++]=t;
            cnt[t]++;
        }
    }
    sort(a,a+len);
    dfs(0,0);
    if(!f) puts("No Solution");
    return 0;
}
目录
相关文章
|
SQL Java
如何使用阿里云短信服务实现登录页面,手机验证码登录?1
如何使用阿里云短信服务实现登录页面,手机验证码登录?
771 0
|
Linux 开发者 Docker
Docker 引擎启动、停止、重启操作|学习笔记
快速学习 Docker 引擎启动、停止、重启操作
|
存储 算法 区块链
合约跟单/永续合约/秒合约交易所系统开发详细逻辑丨源码说明
  基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。
|
人工智能 搜索推荐 机器人
AppFlow无代码轻松搭建模型Agent
使用钉钉,现在每个人都能轻松创建自己的AI助手。通过结合各种插件,如天气、机票查询和地图,你可以定制个性化的工作助手。利用AppFlow,即使没有编程经验也能搭建AI Agent。步骤包括:1) 在钉钉开放平台创建应用,获取凭证;2) 在钉钉卡片平台创建AI卡片实例;3) 在AppFlow配置连接流,添加所需插件;4) 创建钉钉机器人,设置HTTP消息接收并关联AppFlow的Webhook。完成这些步骤后,你就可以在钉钉群中与你的AI助手互动了。
52113 13
|
机器学习/深度学习 人工智能 文字识别
多模态产品在智能文档处理应用的展望------以TextIn模型为例
**第十四届VALSE大会在重庆举行,合合信息智能创新事业部研发总监常扬分享了“文档解析与向量化技术”,重点介绍TextIn技术。TextIn解决现有文档解析挑战,如表格解析难题,建立包含数据基建、算法、应用和接入四层架构的文档解析Pipeline。关键技术包括版面分析和文档树引擎,能准确识别文档结构和阅读顺序。TextIn在C-MTEB榜单排名第一,显示其在文本向量化领域的优势,适用于长文档处理和多行业应用,有望推动AI技术进步和产业升级。**
368 1
|
存储 NoSQL 网络安全
如何开通MongoDB的专属集群
本案例旨在展示如何开通MongoDB的专属集群。
|
弹性计算
阿里云幻兽帕鲁服务器租出价格,26元1个月,春节必入款
阿里云幻兽帕鲁服务器租出价格,26元1个月,春节必入款,幻兽帕鲁服务器多少钱?阿里云幻兽帕鲁服务器26元/月起,配置为4核16G10M带宽,8核32G10M带宽价格是90元一个月,Palworld服务器配置可选4核16G和8核32G,公网带宽可选10M,云服务器提供的是ECS经济型e实例,阿里云不仅提供幻兽帕鲁服务器专有服务器,还提供一键部署幻兽帕鲁开服教程,阿里云百科分享幻兽帕鲁服务器价格和创建教程
187 0
|
监控 Java 数据安全/隐私保护
JVM频繁GC内存溢出排查
GC(Garbage collection)频繁和堆内存溢出原因简单来说是对象占用堆空间难以回收,新对象无法分配触发GC或者直接导致内存溢出,最终进程结束。
683 0
|
关系型数据库 MySQL 数据库
「更易用的OceanBase」| OceanBase Deployer初体验
「更易用的OceanBase」| OceanBase Deployer初体验
360 0
|
移动开发 API
最近更新阿里云域名优惠口令2023
最近更新阿里云域名优惠口令2023,2023年阿里云域名优惠口令,com域名续费优惠口令“com批量注册更享优惠”,cn域名续费优惠口令“cn注册多个价格更优”,com域名注册优惠口令“梦想从域名开始”,cn域名注册优惠口令“互联网上的中国标识”
174 0