题目翻译:

公司现在要发明一种新的碎纸机,要求新的碎纸机能够把纸条上的数字切成最接近而不超过target值。比如,target的值是50,而纸条上的数字是12346,应该把数字切成四部分,分别是1、2、34、6。因为这样所得到的和43 (= 1 + 2 + 34 + 6) 是所有可能中最接近而不超过50的。(比如1, 23, 4, 和6 就不可以,因为它们的和不如43接近50,而12, 34, 6也不可以,因为它们的和超过50了。碎纸还有以下三个要求:

1、如果target的值等于纸条上的值,则不能切。

2、如果没有办法把纸条上的数字切成小于target,则输出error。如target是1而纸条上的数字是123,则无论你如何切得到的和都比1大。

3、如果有超过一种以上的切法得到最佳值,则输出rejected。如target为15,纸条上的数字是111,则有以下两种切法11、1或者1、11.

你的任务是编写程序对数字进行划分以达到最佳值。

题目翻译转载自:優YoU http://user.qzone.qq.com/289065406/blog/1304031265

思路:

一发暴搜敲上去,就A了。。没发现什么坑

// by SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,minn,sum,len,ans[70],vis[70],flag;
char m[70];
void dfs(int pos,int temp){
if(temp>n)return;
if(pos==len+1&&minn<=temp){
if(minn==temp)flag=1;
else{
for(int i=1;i<=len;i++)ans[i]=vis[i];
minn=temp;flag=0;
}
}
int jy=0;
for(int i=pos;i<=len;i++){
jy=m[i]+jy*10;
vis[i]=1;
dfs(i+1,temp+jy);
vis[i]=0;
}
}
int main(){
while(scanf("%d%s",&n,m+1)&&n){
len=strlen(m+1);flag=minn=sum=0;
for(int i=1;i<=len;i++)m[i]-='0',sum+=m[i];
if(sum>n){puts("error");continue;}
dfs(1,0);
if(flag){puts("rejected");continue;}
printf("%d ",minn);
for(int i=1;i<=len;i++){
printf("%d",m[i]);
if(ans[i])putchar(' ');
}
putchar('\n');
}
}

最新文章

  1. 2.EF中 Code-First 方式的数据库迁移
  2. css图片精灵
  3. 浅谈 C#委托
  4. DotNetBar 第2课,窗口设置 Ribbon Form 样式
  5. maven仓库使用
  6. JavaWeb学习之什么JSP、JSP是如何工作的、JSP语言(各种指令和九大内置对象)、EL表达式简单使用(5)
  7. maximo弹框设置新的功能测试总结
  8. atitit.编程语言 程序语言 的 工具性 和 材料性 双重性 and 语言无关性 本质
  9. 定时器Timer不定时
  10. 9款.net反编译的必备神器
  11. session cookie用法
  12. 使用telnet发送HTTP请求
  13. 最新IP数据库 存储优化 查询性能优化 每秒解析上千万
  14. 金融量化分析【day112】:股票数据分析Tushare2
  15. 记录下用axios遇到的问题
  16. ubuntu1604使用之旅——网络配置
  17. Python基础-python基本语法(二)
  18. vba文件对比并高亮显示
  19. Postfix 邮件服务 - 邮箱组件 cyrus-sasl
  20. JDK(java se development kit)的构成

热门文章

  1. Deutsch lernen (14)
  2. C# 检测dll的新版本号方法
  3. js手机移动端选择插件 mobileSelect.js
  4. 常用的 CSS 技巧
  5. Android LinearLayout整个布局设置不可点击
  6. 【转】上拉下拉电阻、I/O输出(开漏、推挽等)
  7. Day 18 hashlib,logging模块
  8. GDI 映射模式(11)
  9. SDOI2017数字表格
  10. [jzoj 5770]【2018提高组模拟A组8.6】可爱精灵宝贝 (区间dp)