计蒜客-T1771-文具店-DFS
题目描述:
蒜头君来到文具店,选择了k 支自己喜欢的水彩笔,并抄下了它们的价格。可是到结算时,他发现自己抄价格时抄得太密集,以至于所有价格连成了一个数字串。老板想和蒜头君开个玩笑,于是对他说:“你可以把这个数字串分成 k 段,代表这 k 支笔的价格,然后把他们加起来,就是你要付给我的钱了。”
当然,蒜头君想尽可能省下钱去买《算法导论》,所以请你来帮忙算算,他最少需要付多少钱。注意水彩笔的钱可以为 0 元。
输入:
第一行包含一个字符串 s,代表蒜头君抄下来的数字串。
第二行包含一个整数 k,代表蒜头君买了 k支水彩笔。
数据范围:1≤k≤|s|≤8,s 仅包含数字 0∼9。
输出:
输出一个整数,表示蒜头君买这些笔最少花的钱。
样例:
样例输入:
72553
3
样例输出:
85
思路:
其实就是一个DFS枚举,把字符串分成k段,求和最小
下边代码有详细注释
代码:
#include<iostream>
#include<cmath>
using namespace std;
#define maxn 0x3f3f3f3f
string str;
int k;
int sum=maxn;
void dfs(int len,int n,int k,int now)//当前第n位,k水彩笔个数,now为总价钱
{if(k==1)//只剩下一根水彩笔 {for(int i=n;i<len;i++)//加上剩下所有钱 {now += (str[i]-'0')*pow(10,len-i-1);}if(now<sum)sum=now;}if(k>1) {for(int i=n;i<len;i++)//i从当前位置n枚举到len {int plus = 0;for(int j=n;j<=i;j++)//j从n到i,依次枚举算出最小值 {plus += (str[j]-'0')*pow(10,i-j);}dfs(len,i+1,k-1,now+plus);}}
}
int main()
{cin>>str;cin>>k;int len = str.length();dfs(len,0,k,0);cout<<sum<<endl;
}
计蒜客-T1771-文具店-DFS相关推荐
- 计蒜客 王子救公主 dfs
题意:如上,注意王子有可能跨越墙,前提使正好挨着墙. 思路:dfs王子和公主,开一个三维数组分别用vis[x][y][0],vis[x][y][1]标记王子和公主走到的点. 若存在二点相交即(vis[ ...
- 计蒜客-青出于蓝胜于蓝 dfs+树状数组
题目描述: 武当派一共有 n人,门派内 n 人按照武功高低进行排名,武功最高的人排名第 1,次高的人排名第 2,... 武功最低的人排名第 n.现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都 ...
- 王子救公主 (计蒜客)一道简单DFS
蓝桥杯不能粘贴 只能截图.. 这道题目很简单,主要想清楚 只要存在王子和公主都能到达的点,王子就能救出公主(此时必定有一个时刻可以让他们相遇) #include <bits/stdc++.h& ...
- [计蒜客][搜索枚举]文具店
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 深度优先搜索 题目描述 思路 意思就是将字符串分割成k串,累加答案尽可能的小 dfs枚举 AC代码 #include<iostream ...
- 计蒜客-踏青(DFS)
蒜头君和他的朋友周末相约去召唤师峡谷踏青.他们发现召唤师峡谷的地图是由一块一块格子组成的,有的格子上是草丛,有的是空地.草丛通过上下左右 444 个方向扩展其他草丛形成一片草地,任何一片草地中的格子都 ...
- [计蒜客][dfs]中国象棋
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 深度优先搜索 题目描述 样例读入 .#....#S# ..#.#.#.. ..##.#..# ......##. ...T..... ... ...
- 无脑博士的试管们java_计蒜客 无脑博士和他的试管们
标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...
- C - Digital Path 计蒜客 - 42397 05-29
C - Digital Path 计蒜客 - 42397 题意: 题意就是给出一个n ∗ m的数字矩阵每个矩阵元素之间只能上下左右走,而且下一个位置必须比当前位置的数字大1,入口和出口必须数边缘元素, ...
- DD 摆磁铁(计蒜客信息学8月普及组模拟赛)
DD 摆磁铁 这道题来自 计蒜客信息学8月普及组模拟赛 普及组!! 把我一个TG选手看懵了 看来我要回去打普及了 题目大意 给出一个n个节点的树,要把树上给定的2*m个节点两两配对,两个节点配对的产生 ...
最新文章
- BCH与BCE共享比特币之名
- 【redis】哨兵模式
- python3.4安装suds
- CSS浏览器兼容性问题详解总结
- Linux内核Socket参数调优
- 60分钟快速入门PyTorch
- threejs骨架形状
- VUE:checkbox 单选框(单选、多选)、一选全选 / 全选一选、表格单选列实现
- annotationprocessor 提示找不到类_StackOverflow上87万访问量的问题:什么是“找不到符号”?...
- [推荐书籍]Flex 4 in Action MEAP Edition
- pythonopencv算法_OpenCV算法精解 基于Python与C++pdf
- sudo su 和sudo -s的区别
- 信息 | 美国留学之计算机专业【转】
- 毕业5年决定你的命运 --------值得所有不甘平庸的人看看
- 天猫整站(简易版)SSM(十四)需要登录才能使用的功能
- HPE server 如何利用SPP包升级BIOS
- 05——去哪儿(旅游网站首页开发)
- 快速批量下载 B 站视频
- 无线鼠标 桌面服务器,你可能不知道 桌面总是乱糟糟的很可能是因为你没买对鼠标...
- 面试题目之:说出至少4种vue当中的指令和它的用法?