考前做题笔记

news/2024/10/18 19:58:16

[KDOI-10]商店砍价

考虑dp,钦定全用操作 \(1\),容易由 \(v_i\le 10^5\) 发现只有剩下的数位小于 \(6\) 时用操作 \(2\) 才更优。于是我们设 \(f_{i,j}\) 为考虑完第 \(i\) 位剩下 \(j\) 个数用操作 \(2\) 能减小的最大代价,并从高位向低位考虑。

转移方程很显然,选或不选用操作 \(2\) 能减小的代价取最大值,对于数位 \(x\) 剩下 \(j\) 位,因为是从低到高枚举用操作 \(2\) 即保留这一位的代价为 \(x\times 10^{j-1}\)。所以转移方程为 $$f_{i,j}=\max(f_{i+1,j},f_{i+1,j-1}+v_i-a_i\times 10^{j-1})$$ \(a_i\) 为输入数从左向右数第 \(i\) 位。

Code:

#include<bits/stdc++.h>
#define gt getchar
#define pt putchar
#define int long long
#define ull unsigned long long
#define fst first
#define snd second
#define L(x) x<<1
#define R(x) x<<1|1
using namespace std;
typedef pair<int,int> pii;
const double eps=1e-6;
inline bool pts(char ch){return ch>=48&&ch<=57;}
inline int read(){bool f=0;int x=0;char ch;ch=gt();while(!pts(ch)&&ch!=EOF){if(ch=='-')f=1;ch=gt();}while(pts(ch)){x*=10;x+=(ch-48);ch=gt();}if(f)return -x;else return x;
}
template<class T>
inline void print(T x){char s[114];int top=0;if(x<0)pt('-');do{top++;if(x>=0)s[top]=(x%10)+48;else s[top]=(-(x%10)+48);x/=10;}while(x);while(top){pt(s[top]);top--;}
}
int f[100005][10];
int v[10];
//|n|>6时1一定优,设f[i][j]为考虑到第i位利用策略二答案减小的值
void solve(){memset(f,-1,sizeof(f));string s;cin>>s;int len=s.size();s=' '+s;int sum=0;for(int i=1;i<=9;i++)v[i]=read();f[len+1][0]=0;for(int i=len;i>=1;i--){//假设全部考虑完,反着找sum+=v[s[i]-'0'];f[i][0]=f[i+1][0];for(int j=1;j<=6;j++){f[i][j]=max(f[i][j],f[i+1][j]);f[i][j]=max(f[i+1][j],f[i+1][j-1]+v[s[i]-'0']-(s[i]-'0')*(int)powl(10,j-1));}}int maxn=-1;for(int j=1;j<=6;j++)maxn=max(maxn,f[1][j]);cout<<min(sum,sum-maxn)<<'\n';
}
signed main(){int c=read(),T=read();while(T--)solve();return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

MinIO

1.概述一个开源的用于存储文件的分布式文件存储系统2.官网http://docs.minio.org.cn/docs/3.相关概念bucket – 类比于文件系统的目录 Object – 类比文件系统的文件 Keys – 类比文件名4.搭建 docker run -p 9000:9000 --name minio -d --restart=always -e "MINIO_ACCES…

计量经济学(十一)——联立方程模型的估计

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 联立方程模型(Simultaneous Equations Model, SEM)是一类包含多个相互依赖变量的统计模型,用来描述这些变量之间的相互关系。在传统的单一方程模型中,通常…

数据结构与算法 课程随记

数据结构与算法 课程随记因为有时候需要在不同设备编辑同一份文档,本地不太方便了,先在放着博客园比较省事吧。 但是博客园是不是快要四了啊,没事再整一个个人博客吧。 内容非常杂,因为不想去上课所以还是有点东西不会,就记录一下查不会东西的时候学会的东西。没什么参考价…

Freemarker

什么是FreemarkerFreeMarker 是一种基于模板的 Java 模板引擎,通常用于生成动态网页、配置文件、电子邮件内容等。它通过将数据模型(如 Java 对象、Map、List 等)与模板相结合来生成最终的输出。FreeMarker 使用简单的语法和指令来处理动态内容,非常适合与 Java Web 应用程…

pve安装后删除local-lvm并把其空间全部分给local

在安装pve的时候,系统默认分配给local的空间非常小,我们可以通过以下方法把local-lvm删除,并将其空间还给local。 在webui的pve节点的磁盘选项中找到LVM-Thin,删除data卷。删除后此处为空。 接着打开终端执行以下命令: lvresize --extents +100%FREE --resizefs pve/root此…

PYNQ Z2 读取xadc外部通道电压

使用XADC 或者JTAG只能读取XADC的内部电压, 而无法读取外部通道的电压 现在使用xsysmon.h库里面的函数进行XADC外部通道的电压 为了方便观察,增加了PL GPIO KEY LED进行观察 1. 配置ZYNQ7000 勾选FCLK_RESET0勾选UART0, 这是BANK电压勾选PS给PL提供的时钟, 设置PS的输入时钟配置…

10.18 模拟赛

炼石计划 10 月 04 日 NOIP 模拟赛 #8【补题】 - 比赛 - 梦熊联盟 (mna.wang) 复盘 T1 有种 div.2 B 的风格,没秒,想看题。 T2。只判是否无解?\(k \le 100\)?把 \(200\) 个关键连通块拿出来建图跑传递闭包不就做完了。 一遍过大样例?简直不可思议,但还是把 T2 关了吧。 用…

小心!这样分享 B 站视频会暴露身份

已经有被开盒的案例了。‍ 在 2022 年 6 月 10 日 0 点,B 站在视频的网址上加了个参数 ?vd_source=XXXXXXXXXXXXXXX​,如图: ​ 经过网友的测试,这个参数值很可能就是用户 ID 的 hash 值(简单来说就是用户身份),所以如果直接复制网址的话,是有可能被“开盒”的。 ‍ 其…