[计蒜客][搜索枚举]文具店 原创
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)
算法标签 深度优先搜索
题目描述![在这里插入图片描述]()
 
思路
意思就是将字符串分割成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号
浙公网安备 33010602011771号