[计蒜客][搜索枚举]文具店 原创
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)
算法标签 深度优先搜索
题目描述![在这里插入图片描述]()
思路
意思就是将字符串分割成k串,累加答案尽可能的小
dfs枚举
AC代码
#include<iostream>
#include<string>
using namespace std;
string s;
int k,sum,re,ans=0x3f3f3f;//ans设置为最大值
void dfs(int cnt,int cho,int sum,int re)//cnt 当前过到第几个数字了,cho选择了第几个数字,
//sum价值总和,re 到当前位置剩余没被选的价值
{
if(cnt==s.size())
if(!cho){ans=min(ans,sum+re);return ;}//如果选择完了,更新
if(cho+cnt>=s.size())return ;//如果当前位次加可选已经超过或者到了总数,就返回
dfs(cnt+1,cho,sum,re*10+s[cnt]-48);//不选
if(cho)dfs(cnt+1,cho-1,sum+re*10+s[cnt]-48,0);//选
}
int main()
{
cin>>s>>k;
dfs(0,k-1,0,0);
cout<<ans;
return 0;
}


浙公网安备 33010602011771号