poj1416
#include<iostream>
using namespace std; int target,datanum;
int road[],temproad[];
int N,flag,maxsum;
int data[],datatemp[];
int tail; void cun(int n)
{
tail=; while(n/)
{
int m=n%;
n=n/;
datatemp[tail++]=m;
}
datatemp[tail++]=n%;
for(int i=;i<tail;i++)
data[i]=datatemp[tail-i-];
return;
} void dfs(int n, int step, int sum, int tobe)
{
if(sum>target)
return; if(n==N-)
{
sum=sum+tobe*+data[N-];
temproad[step]=tobe*+data[N-];
if(sum>target)
return;
if(sum==maxsum)
flag=;
else if(sum>maxsum)
{
for(int i=;i<;i++)
road[i]=-;
flag=;
maxsum=sum;
for(int i=;i<=step;i++)
road[i]=temproad[i];
}
return;
} temproad[step]=tobe*+data[n];
dfs(n+,step+,sum+tobe*+data[n],);//切
temproad[step]=-; dfs(n+,step,sum,tobe*+data[n]);
} int main()
{
//freopen("input.txt","r",stdin);
while()
{
cin>>target>>datanum;
//cout<<target<<alldata<<endl;
if(target==&&datanum==)
break;
if(target==datanum)
{
cout<<target<<' '<<target<<endl;
continue;
}
for(int i=;i<;i++)
data[i]=-;
cun(datanum);
N=tail; maxsum=-;
flag=;
for(int i=;i<;i++)
{
road[i]=-;
temproad[i]=-;
}
dfs(,,,);
if(maxsum==-)
cout<<"error"<<endl;
else if(flag==)
cout<<"rejected"<<endl;
else
{
cout<<maxsum<<' ';
for(int i=;i<;i++)
{
if(road[i]!=-)
cout<<road[i]<<' ';
}
cout<<endl;
}
}
return ;
}
poj1416的更多相关文章
- POJ1416——Shredding Company(DFS)
Shredding Company DescriptionYou have just been put in charge of developing a new shredder for the S ...
- poj1416 Shredding Company
Shredding Company Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5379 Accepted: 3023 ...
- POJ--1416
#include <stdio.h> #include <stdlib.h> ]={};//代表有没有切割的数组 ;//输入的要被切割的数字 ]={};//切完输出的数组成的数 ...
- POJ1416 Shredding Company(dfs)
题目链接. 分析: 这题从早上调到现在.也不算太麻烦,细节吧. 每个数字都只有两种状态,加入前一序列和不加入前一序列.DFS枚举. #include <iostream> #include ...
- [置顶] poj1416数字切割解题报告
题意:有一段纸片,就是一个不超过7位数的整数,现在给定你一个目标值 aim ,让你去选择把纸片切成几段,然后这个几段的和值 最接近 aim 且不超过 aim, 分析: 对于这个纸段,比如一个 四位数的 ...
- 【POJ1416】Shredding Company
本题传送门 本题知识点:深度优先搜索 + 回溯 本题题意很简单,就是有一条位数不超过6的数字纸条,问你怎么剪这纸条,使得得到的纸条的值的总和最接近目标值(总和不能超过目标值). 比如第一个样例 50 ...
- poj分类 很好很有层次感。
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. ( ...
- 【转】POJ题目分类推荐 (很好很有层次感)
OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期: 一. ...
- 【转】ACM训练计划
[转] POJ推荐50题以及ACM训练方案 -- : 转载自 wade_wang 最终编辑 000lzl POJ 推荐50题 第一类 动态规划(至少6题, 和 必做) 和 (可贪心) (稍难) 第二类 ...
随机推荐
- torch画散点图
import torch from torch.autograd import Variable import torch.nn.functional as F import matplotlib.p ...
- $a=[1,2,3,4,5]; $b=[a,b,c,d,e]; 转成[[1,a],[2,b],[3,c],[4,d],[5,3]]
$a=[1,2,3,4,5]; $b=[a,b,c,d,e]; 结果 [[1,a],[2,b],[3,c],[4,d],[5,3]] return array_map(function($v1,$v2 ...
- Redis实战 - 1.String和计数器
在.NET Core 项目中操练String 使用 StackExchange.Redis 访问 Redis static void Main(string[] args) { using (Conn ...
- Centos下安装配置Mongodb3.6
首先更新系统 yum -y update 1.安装Mongodb 编辑Mongodb安装源 vim /etc/yum.repos.d/mongodb-org-3.6.repo 编辑内容如下: [mon ...
- 理解ActivityManagerService
--摘自<Android进阶解密> *AMS家族* 1.Android 7.0的AMS家族 2.AMP和AMS进行通信 3.(Android 7.0)AMP是AMN的内部类,它们都实现了I ...
- python面试必问 知识整理
一 数据类型 1 数字 整型与浮点型 #整型int 作用:年纪,等级,身份证号,qq号等整型数字相关 定义: age=10 #本质age=int(10) #浮点型float 作用:薪资,身高, ...
- PBRT笔记(2)——BVH
BVH 构建BVH树分三步: 计算每个图元的边界信息并且存储在数组中 使用指定的方法构建树 优化树,使得树更加紧凑 //BVH边界信息,存储了图元号,包围盒以及中心点 struct BVHPrimit ...
- LOJ.2864.[IOI2018]排座位(线段树)
LOJ 洛谷 先令编号从\(1\)开始.我们要求\([1,i]\)这些数字能否构成一个矩形. 考虑能否用线段树维护,让每个叶子节点\(i\)表示前\(i\)个数能否构成矩形. 一种方法是维护前\(i\ ...
- leetcode 91 Decode Ways I
令dp[i]为从0到i的总方法数,那么很容易得出dp[i]=dp[i-1]+dp[i-2], 即当我们以i为结尾的时候,可以将i单独作为一个字母decode (dp[i-1]),同时也可以将i和i-1 ...
- EL表达式与标签的使用