来追梦-D1295 小F过河

前言

依旧是固定的前言。
拿下了第四名,和第三名同分结果提交次数多了。
发现第三名是我的同学并且比我弱之后大胆猜测他使用的奇怪的方法。
结果看了他T3的代码,的确如此,他居然转移的时候只转移前面和后面的 \(500\) 个,然后数据太水过了。
显然是在模仿CCF,数据也太好了(确信。

话不多说,我的得分情况:90+100+20+0=210,第一题没有做出来挺离谱的,所以我写T2题解
接下来开始我们的正题

题目意思

你现在有两种操作,一种是将你现在手持的数字加上 \(x_1\) 耗费 \(c_1\) 的价值,另一种是将手持的乘上 \(x_2\) 耗费 \(c_2\) 的价值,要你从 \(1\) 变到 \(N\) 的最小价值,如果不行就报告不可能。

题目思考

这是我在草稿纸上面的思路:
首先我们可以将多次的加合并为 \(+ tx_1\),多次的乘合并为 \(\times x_2^t\)
我尝试证明操作序列为 \(+ \times +\) 或者 \(\times + \times\),但是发现不能证明,所以这说明他可能进行了若干次 \(+ \times\) 的操作,所以不妨设我们依次进行了 \(n_1\)\(+\) 操作,\(m_1\)\(\times\) 操作,\(n_2\)\(+\) 操作,\(m_2\)\(\times\) 操作,以此类推。
此时我们考虑他的最终数字,经过 \(n_1\)\(+\) 操作后变为 \(1+n_1x_1\),经过 \(m_1\) 次操作后变为 \((1+n_1x_1)x_2^{m_1}\),经过 \(n_2\)\(+\) 操作,\(m_2\)\(\times\) 后变为

\[((1+n_1x_1)x_2^{m_1}+n_2x_1)x_2^{m_2} \]

\[=x_2^{m_1+m_2}+n_1x_1x_2^{m_1+m_2}+n_2x_1x_2^{m_2} \]

\[=x_2^{m_1+m_2}+x_1(n_1x_2^{m_1+m_2}+n_2x_2^{m_2}) \]

\[=x_2^t+x_1(n_1x_2^{t-1}+n_2x_2^{t-2}+\cdots) \]

接下来式子就化的差不多了,我们去看经过这些操作时候他的代价是多少,经过 \(n_1\)\(+\) 操作,\(m_1\)\(\times\) 操作后,代价是 \(n_1c_1+m_1c_2\),现在还看不出什么,但经过 \(n_2\)\(+\) 操作,\(m_2\)\(\times\) 后,代价变为 \(n_1c_1+m_1c_2+n_2c_1+m_2c_2=(n_1+n_2)c_1+(m_1+m_2)c_2\) 然后观察 \(c_1\) 前面的系数,发现 \((n_1+n_2)\) 就是最后变成的数字里面,含有 \(x_1\) 的项前面的系数!观察 \(c_2\) 的系数,发现 \((m_1+m_2)\) 就是最高次项的次数,也就是所谓的 \(t\),所以正确思路就出来了。

思路

我们发现 \(x_2^{m_1+m_2}\le n\) 所以我们枚举 \(m_1+m_2\) 的值,除非 \(x_2=1\) 这个值必然小于 \(64\),所以首先我们特判 \(x_2\) 的值,接着我们对于每一个枚举的 \(m_1+m_2\)\(c_2\) 的贡献已经固定了,所以我们要使 \(c_1\) 的贡献尽量小,观看式子 \(x_1x_2^t>x_1x_2^{t-1}\) 所以我们要让 \(x_1x_2^t\) 的系数尽可能大,接着是 \(x_1x_2^{t-1}\) 的系数尽可能大,这样就能让系数之和尽可能小了,具体的可以尝试借助代码理解,我就使用了 \(int128\) 存储,不然可能炸掉。

代码

#include<algorithm>
#include<iostream>
#include<cstring>
#include<climits>
#include<cmath>
#define ll __int128 using namespace std;
const ll Inf=0x3f3f3f3f3f3f3f3f,N=1e5+9;
ll n,x,xx,c,cc,a[N],ans;int main(){int garbage,T;cin>>garbage>>T;while(T--){long long inputn,inputx,inputc,inputcc,inputxx;cin>>inputn>>inputx>>inputc>>inputxx>>inputcc;n=inputn;x=inputx;c=inputc;xx=inputxx;cc=inputcc;if(xx<=1){if(x==0){cout<<"-1\n";continue;}if((n-1)%x==0) cout<<(long long)(c*(n-1)/x)<<endl;else cout<<"-1\n";continue;} ll cnt=1;a[0]=1;ans=Inf;while(a[cnt-1]<=n) a[cnt]=a[cnt-1]*xx,cnt++;cnt--;for(int i=cnt;i>=0;i--){ll nn=n-a[i],nans=i*cc;if(nn<0) continue;	for(int j=i;j>=0;j--){if(a[j]>(n+x-1)/x) continue;if(nn>=x*a[j]){ll tmp=nn/(x*a[j]);nans+=tmp*c;nn%=(x*a[j]);}}if(nn!=0) continue;ans=min(ans,nans);}if(ans==Inf) cout<<"-1\n";else cout<<(long long)ans<<endl;}   return 0;
}

后记

剩下的就是这个题目的思考了,写完了我仍然十分震撼我做出了这个题目,每一步仿佛都是机缘巧合,但是最后我还是死磕出来了,挺幸运的吧,如果下次没有这么幸运的话我还是希望我能通过我的努力把这种题目做出来,总结一下,以后遇到这种题目要愿意去推式子,求价值,不要怕就好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P3605解题报告

前言 毕竟是解题报告,自然只是个报告了 最近再刷树状数组的题,但是线段树很多时候也能维护这个东西 当然,有些题目还可以使用主席树解决,看个人习惯了 题目意思 给出一颗带点权树,对于每一个节点求出他的子孙节点…

P13763 解题报告

前言 非常好的树上问题,使我的大脑旋转 不难,思维难度也不高,但是如果没有想到真的很难说 广告 同步发布于洛谷专栏,不确定有更好的阅读体验 题意 给出一颗树,不带边权点权,每次询问给出 \(s,t\) 问连接 \(s,t\)…

CF1082E 解题报告

题目意思 至多进行一次操作,一个操作定义为将 \(i\in{[l,r]}\) 的 \(a_i = a_i + b\) 这个 \(b\) 自定,无限制,询问至多一次操作之后,至多有多少个 \(i\in{[1,n]}\) 满足 \(a_i=c\) 其中 \(c\) 为给定的一个数。 思…

国标GB28181算法算力平台EasyGBS具备哪些核心流媒体技术?

国标GB28181算法算力平台EasyGBS具备哪些核心流媒体技术?在当今快速发展的智能监控时代,国标GB28181视频平台EasyGBS,作为一款基于国标GB28181、RTSP、onvif等协议接入的AI算法算力平台,凭借其强大的视频接入、处理…

2025 年净化车间源头厂家最新推荐排行榜:精选实力企业,助力企业精准选择优质净化车间服务商无尘/gmp/新能源/锂电池净化车间厂家推荐

当前净化行业蓬勃发展,企业对净化车间的需求愈发旺盛,涵盖电子、医药、食品、科研等多个关键领域。然而,市场上净化车间源头厂家数量繁杂,部分厂家存在施工不规范、技术实力薄弱、售后服务缺失等问题,导致工程质量…

如何复制获取无法复制的页面内容

如何复制获取无法复制的页面内容有的隐私页面条款不让复制,如何解决呢? 🧰 步骤:使用开发者工具复制网页内容 ✅ 适用场景:页面禁止右键复制 页面内容是动态加载的(如 Keep 的隐私政策页面)操作步骤 1. 打开网…

C语言的“动态数组”

C语言的“动态数组”掩码结构体宏的实现本质上就是使用一个掩码数组 chMask 把结构体保护起来。见《大佬的PLOOC使用示例及其基于C语言的面向对象编程-傻孩子.pdf》1 /* 公众号:嵌入式大杂烩 */2 #ifndef __DYNAMIC_A…

详细介绍:Spring Boot 应用示例

详细介绍:Spring Boot 应用示例pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&qu…

(Sigcomm25) Stellar: 阿里新一代云AI RDMA网络

创新点主要有: 1. PVDMA:带参数的虚拟化直接地址访问,降低系统启动时间。 2. eMTT:扩展内存翻译表,从而更大化地利用GDR性能。 3. Packet Spray:有效地利用RDMA多路,提升RDMA通信性能。(严格上不是创新而是实验…

背包 dp 历年真题:做题记录

整理了 NOIP 与某些省份省选的背包题。 NOIP 的背包题 [NOIP 2006 提高组] 金明的预算方案 树形背包似乎也是可做的,但是由于最多有两个附件,并且是分为两类,也就是附件不会再有附件,这个问题就成了最简单的背包问…

【触想智能】什么是工业平板电脑以及工业平板电脑对制造业具有什么意义

随着技术的不断进步,工业平板电脑正逐渐成为了现代制造业的重要工具。它们与传统消费级平板电脑相比,具备更强大的功能和更强的可靠性,能够在恶劣的工作环境中使用,并满足制造业中特定的应用需求。触想工业平板电脑…

2025 年国内无尘车间源头厂家最新推荐排行榜:聚焦无菌洁净领域优选企业助力企业精准选型万级/十万级/洁净/食品厂/千级无尘车间厂家推荐

在半导体、微电子、GMP 制药等关键行业中,无尘车间的洁净度与稳定性直接决定产品质量,是企业生产的核心保障。当前市场上无尘车间厂家数量繁杂,部分企业存在技术不成熟、服务体系不完善等问题,导致企业在选择合作方…

高效工作,五步工作法

高效工作,五步工作法1、第一步质疑所有需求2、第二步删除不必要的流程何部件3、第二步优化或简化它4、第四步任何给定的事物,都能加速5、第五步一切都自动化

虚树学习笔记

虚树好久没更学习笔记了。 算法简介 通常情况下,如果是对树上单点的询问,我们是用不到树上的所有点的。 换句话说,如果我们树上能用到的节点非常少,那我们就可以避免遍历整棵树,从而降低复杂度。 下面用一个题说。…

市场营销:

市场营销:1、一些管理措施就是对营销服务的营销和营销的执行力。1、营销的重要性与课程定位营销是企业围绕其利润和价值实现而展开的:客户分析、市场细分、营销定位、产品研发、品牌及品牌传播、宣传策划、促销、销售…

Python3开发敏感词过滤程序底层逻辑记录

Python3开发敏感词过滤程序底层逻辑记录 按要求开发敏感词语过滤程序: 提示用户输入评论内容, 如果用户输入的内容中包含特殊的字符: 敏感词列表 li = ["马化腾", "马云", "李彦宏",…

OUC《软件工程原理与实践》- 实验2:深度学习基础 - OUC

实验2:深度学习基础 姓名:qhb 学号: 姓名和学号?本实验属于哪门课程? 中国海洋大学25秋《软件工程原理与实践》实验名称? 实验2:深度学习基础博客链接: 选做实验内容 代码练习 pytorch练习 练习过程和结果如下…

类型转化

数据类型转换规则 低类型向高类型转换为自动转换; 高类型向低类型转换需要强制转换;强制转换形式为(转换后的数据类型)数字/变量名; 数据类型从低到高排序为 char、byte、short->int->long->float->d…

【IEEE出版】第五届电子信息工程与计算机技术国际学术会议(EIECT 2025)

第五届电子信息工程与计算机技术国际学术会议(EIECT 2025)将于 2025年10月24-26日在中国江门举行。【往届均已成功见刊、检索,快至会后4个月检索!】 【五邑大学主办,EIECT 2025已上线五邑大学电子与信息工程学院官…

【AP出版】第七届文学、艺术与人文发展国际学术会议(ICLAHD 2025)

第七届文学、艺术与人文发展国际学术会议(ICLAHD 2025)定于2025年10月24日至26日在中国郑州(郑州大学)隆重举行。【高校举办,多单位联合协办,认可度高 | 组委会优质,大咖汇报】 【论文高录用率,专家严格审核,…