/********************************************************************************
很有意思的DP,考虑状态dp[i][j][k],表示对于第i个字母,左手手指在j和右手手指在k的
时候需要的最小操作。最后取结果的时候要注意下,有左手手指在最后一位和右手手指在最后一
位这两种情况。其他就是细节问题了~
********************************************************************************/
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <utility>
#include <cstdio>
#include <memory>
#include <string>
#include <vector>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef map<int, int>::iterator MI;
typedef vector<int>::iterator VI;
typedef set<int>::iterator SI;
const int INF_INT = 0x3f3f3f3f;
const double oo = 10e9;
const double eps = 10e-7;
const double PI = acos(-1.0);
const int MAXN = 104;
int str[MAXN], dp[2][12][12];
inline int iabs(int x)
{
return x < 0 ? -x : x;
}
void ace()
{
char ch[MAXN];
int len, res;
int crt, step;
while(gets(ch))
{
len = strlen(ch);
for(int i = 0; i < len; ++i)
{
str[i] = ('0' == ch[i] ? 9 : ch[i] - '1');
}
memset(dp, INF_INT, sizeof(dp));
dp[0][4][5] = 0;
for(int i = 0, j = 0; j < len; i ^= 1, ++j)
{
memset(dp[i ^ 1], INF_INT, sizeof(dp[i ^ 1]));//这个地方原来写成sizeof(dp[i])了。。。
for(int left = 0; left < 9; ++left)
{
for(int right = left + 1; right < 10; ++right)
{
crt = str[j];
step = iabs(left - crt) + 1;
for(int pos = crt + 1; pos < 10; ++pos)
{
if(iabs(pos - right) > step)
{
continue ;
}
dp[i ^ 1][crt][pos] = min(dp[i ^ 1][crt][pos], dp[i][left][right] + step);
}
step = iabs(right - crt) + 1;
for(int pos = 0; pos < crt; ++pos)
{
if(iabs(pos - left) > step)
{
continue ;
}
dp[i ^ 1][pos][crt] = min(dp[i ^ 1][pos][crt], dp[i][left][right] + step);
}
}
}
}
res = INF_INT;
crt = str[len - 1];
for(int i = crt + 1; i < 10; ++i)
{
res = min(res, dp[len & 0x1][crt][i]);
}
for(int i = 0; i < crt; ++i)
{
res = min(res, dp[len & 0x1][i][crt]);
}
printf("%d\n", res);
}
return ;
}
int main()
{
ace();
return 0;
}相关推荐
西电计科数据库系统期末复习笔记
本人西电19计科,数据库系统98,这是复习期间整理的笔记,基本涵盖了课程全部重点,有需要的学弟学妹可以在复习的时候参考一下。
HDU 3651 A Simple Problem (DP 记忆化搜索 或者 bfs)
A Simple Problem Problem Description There's one row of buttons lying on onmylove's laptop keyboard, which are used to input the numbers,just as shown in the picture: onmylove...
大模型辅助意图识别,更懂你的客户洞察平台
通过大量的学习和训练,大模型不仅具备庞大的知识库,更掌握着丰富的语言模式和语义规则,能够精准地理解每一段对话的含义,为每一通对话进行全面、准确的标注。主要来自客户的行为信息,将客户与机构的重要时刻以时间轴的方式呈现出来,掌握客户生命周期的完整脉络,识别一些容易被忽略的重要营销MOT(Moment Of Truth,关键时刻研究)机会,提示理财经理跟进处理。将客户的历史交易数据和埋点系统采集的客户行为数据结合起来,辅以部分内容资讯的偏好探测,综合分析和预测客户在各个维度的喜好程度,实现千人千面的客户推送。
HDU 3651(A Simple Problem)
题意:给出一个1234567890的键盘,你只能用两个手指去摁它,一只在左边一只在右边,而且左手指不能在右手指的右边。然后给出一串数字,求用最少的操作次数来打完这串数字(更多细节看题目); 思路:挺有意思的一道dp,想是挺容易想到的,就是状态转移的时候有点繁琐,状态有点多,还有细节要把握得好,注意这些了,AC应该没问题了; 定义dp[i][left][right]为打完第i个字符左右手指分别在
SAP ABAP VL09 BAPI VL 216
ls_batch_item-fact_unit_denom = ls_lips_split-umvkn. "销售数量转换为 SKU 的值(分母)ls_batch_item-fact_unit_nom = ls_lips_split-umvkz. "销售数量转换成SKU的分子(因子)ls_batch_item-sales_unit_iso = ls_lips_split-meins. "被拆分DN基本单位。
从音频录制到智能手表:Sigma-Delta ADC是如何在低功耗场景下‘欺骗’噪声的?
本文深入解析Sigma-Delta ADC在智能穿戴设备中的低功耗高精度实现原理,重点介绍其通过过采样和噪声整形技术‘欺骗’噪声的独特方法。以TWS耳机和医疗级健康监测为例,展示该技术如何在有限功耗预算下实现专业级信号采集,为消费电子设计提供关键解决方案。
hdu 3651 A Simple Problem(bfs)
A Simple Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 548 Accepted Submission(s): 220 Problem Description There's one row
别再死记硬背了!用51单片机的AD/DA和PWM,亲手做个简易示波器信号发生器
本文详细介绍了如何利用51单片机的PWM和AD/DA功能制作简易示波器信号发生器。通过PWM模拟DAC输出波形,结合XPT2046 ADC进行信号测量,实现方波、三角波和正弦波的生成与显示。项目不仅成本低廉,还能帮助电子爱好者深入理解51单片机的核心功能,是理论与实践结合的绝佳案例。
HDU3652 B-number(数位DP)
B-numberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4565 Accepted Submission(s): 2617Problem Description A wqb-number, or B-number for
第1章 环境准备
本章是 Kubernetes 高可用集群部署的前置基础环境配置,所有节点必须严格按顺序执行。主要内容包括:节点规划(IP、角色、配置要求)、VMware 克隆节点环境清理(解决 MAC 地址和主机名冲突)、统一工作目录创建、主机名与 hosts 解析配置、系统基础升级、防火墙与 swap 关闭、内核模块加载(overlay、br_netfilter、ip_vs)、网络参数优化(IP 转发、桥接过滤)、时间同步配置等。Ubuntu 24.04 内核 6.8+ 原生支持 eBPF 和 IPVS,无需手动升级内核
RK3588部署YOLO模型 包含模型量化+npu轻量化+ubuntu+RGA图像加速和多线程模型加速 包源码
本专栏为深度学习部署全栈学习体系,包含68篇由浅入深的教程,专为零基础学习者设计。内容涵盖TensorRT与RK3588平台部署技术,包含Jetson系列和RK系列硬件部署实战,采用"理论+源码+实战"三位一体的教学模式。学习路径从基础环境搭建到模型优化、容器化部署、多硬件平台适配,最终掌握工业级AI部署能力。特色包括C++基础教学、Docker容器化、INT8量化、多线程优化等核心技术,并附带YOLOv5、人脸检测、车牌识别等多个实战项目源码。适合算法工程师转部署方向、嵌入式开发者及对
HDU 3652 B-number (数位DP)
B-number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4413 Accepted Submission(s): 2540 Problem Description A wqb-number, or B-numb
YOLO11改进 - 卷积Conv | DEGConv(方向引导边缘门控卷积) : 空间分块、方向先验、轻量边缘增强
本文介绍了方向引导边缘门控卷积(DEGConv),一种专为增强边缘敏感度与方向感知能力设计的轻量级模块。该方法通过 Sobel 算子生成方向嵌入,结合条纹卷积提取水平与垂直边缘特征,并利用门控机制动态抑制背景噪声,从而精准捕捉细粒度结构。我们将 DEGConv 成功集成进 YOLO11,在 Backbone 的 SPPF 后及 Neck 的 P3、P4 分支中引入该模块以优化特征提取。实验证明,集成 DEGConv 的 YOLO11 在检测任务中表现优异,有效提升了模型对复杂边缘与方向特征的建模能力。
HDU-3652-B-number
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3652 B-number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9349 Accepted Submission(s): ...
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
HDU 3652 B-number
数位dp+记忆化搜索。
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
HDU 3652 B-number 【数位DP】
B-number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5153 Accepted Submission(s): 2962 Problem Description A wqb-number, or
华为的C语言编程规范.pdf
华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。
hdu3652 B-number 数位dp
B-number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2282 Accepted Submission(s): 1239 Problem Description A wqb-number, or
hdu3652 B-number(数位DP)
B-number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6672 Accepted Submission(s): 3885 Problem Description A wqb-number, or ...
hdu 2196 Computer DP
Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3651 Accepted Submission(s): 1852 Problem Description A school bought the f
hdu3652 B-number(数位dp)
题目传送门 B-number Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8970Accepted Submission(s): 5331 Problem Description A wqb-number, or B-n...
hdu 3652 B-number
B-number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4070 Accepted Submission(s): 2321 Problem Description A wqb-number, or B-nu
hdu 3652 B-number
B-number http://acm.hdu.edu.cn/showproblem.php?pid=3652 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Problem Description A wqb-number, or B-number for short,...
未完成题目
https://www.luogu.org/problemnew/show/P2032 {单调队列} https://www.luogu.org/problemnew/show/P2517 {费用流} https://www.luogu.org/problemnew/show/P2153 {费用流} https://www.luogu.org/problemnew/show/P2472 {费...
HDU 4013 图论 树的最小表示
/******************************************************************************* 去年上海赛区热身赛的一道题,树的最小表示模板题。解法就是用二进制枚举所有可能的联通子图,然后 求所有联通子图的最小表示,要注意的是对于某一个联通子图,最小表示需要枚举联通子图里的所有的点,然 后从这些点开始进行dfs,dfs过程中进
HDU 4121 模拟
/**************************************************************************************************** 坑爹的模拟题~注意这两种情况:黑方的将能直接飞过去杀了红方的将,还有将走一步能把红方别的子给吃了。。。 ******************************************
8599



被折叠的 条评论
为什么被折叠?



