這題沒啥好說的,就是將字串num分割成好幾個整數,並相加起來,看看哪種分割情況的和是最接近 t 的
因為每個num最多只有6位,所以總共的分割情況也就32種,非常簡單,只要能寫出dfs函式就可以了
#include#includeusing namespace std;
int t,flag,k,ansn,len,max,v[100],vn;
char num[8];
int ans[8],a[8];
int power(int x,int y)
void dfs(int f,int sum,int n)
{ int i,j,l;
if(f==len)
{ if(sum<=t) //如果小於t說明已經肯定有max,flag標記1
{ flag=1;
if(sum>max)
{max=sum;
for(i=0;i1)
printf("rejected\n");
else
{ printf("%d ",max);
for(i=0;i
POJ1416 切割紙條 DFS 剪枝
這題目個人感覺有點難,很難抽象出具體的搜尋模型,看了別人的解題報告才有思路。切割乙個資料即切割紙條,相加的和最接近給出目標的值。比如,12346是資料,target的值是50,應該把數字切成四部分,分別是1 2 34 6。因為這樣所得到的和43 1 2 34 6 是所有可能中最接近而不超過50的。碎...
poj1416數字切割解題報告
題意 有一段紙片,就是乙個不超過7位數的整數,現在給定你乙個目標值 aim 讓你去選擇把紙片切成幾段,然後這個幾段的和值 最接近 aim 且不超過 aim,分析 對於這個紙段,比如乙個 四位數的 1234,那麼第一你就有以下幾種切法 1 234 1 2 34 1 2 3 4 12 34 那麼 對於這...
置頂 poj1416數字切割解題報告
題意 有一段紙片,就是乙個不超過7位數的整數,現在給定你乙個目標值 aim 讓你去選擇把紙片切成幾段,然後這個幾段的和值 最接近 aim 且不超過 aim,分析 對於這個紙段,比如乙個 四位數的 1234,那麼第一你就有以下幾種切法 1 234 1 2 34 1 2 3 4 12 34 那麼 對於這...