乘積最大
時間限制:c/c++ 1秒,其他語言2秒
空間限制:c/c++ 262144k,其他語言524288k
64bit io format: %lld
題目描述
今年是國際數學聯盟確定的「2000——世界數學年」,又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目:
設有乙個長度為n的數字串,要求選手使用k個乘號將它分成k+1個部分,找出一種分法,使得這k+1個部分的乘積能夠為最大。
同時,為了幫助選手能夠正確理解題意,主持人還舉了如下的乙個例子:
有乙個數字串:312, 當n=3,k=1時會有以下兩種分法:
3*12=36
312=62
這時,符合題目要求的結果是:312=62
現在,請你幫助你的好朋友xz設計乙個程式,求得正確的答案。
輸入描述:
第一行共有2個自然數n,k(6 ≤ n ≤ 40,1 ≤ k ≤ 6)
第二行是乙個長度為n的數字串。
輸出描述:
輸出所求得的最大乘積(乙個自然數)。
示例1輸入
複製4 2
1231
輸出複製
62思路:
定義dp狀態為 dp[i][j] 代表 到第i個數字,用了j個乘號,獲得的最大乘積。
由於長度是40,所以肯定是會爆longlong的,用大數模板即可。
細節見**:
#include #include #include #include #include #include #include #include #include #include #include #define all(x) (x).begin(), (x).end()
#define sz(a) int(a.size())
#define all(a) a.begin(), a.end()
#define rep(i,x,n) for(int i=x;i#define pll pair#define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define ms0(x) memset((x), 0, sizeof((x)))
#define msc0(x) memset((x), '\0', sizeof((x)))
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define eps 1e-6
#define gg(x) getint(&x)
#define chu(x) cout<<"["<<#x<<" "<<(x)<<"]"<1 && !s[len-1]) len--;
}bign operator * (const bign &b) //*
}for(int i = 0; i < c.len; i++)
c.clean();
return c;
}bign operator *= (const bign &b)
bign operator - (const bign &b)
c.s[c.len++] = x;
}c.clean();
return c;
}bign operator -= (const bign &b)
bign operator / (const bign &b)
}c.len = len;
c.clean();
return c;
}bign operator /= (const bign &b)
bign operator % (const bign &b)
bign operator %= (const bign &b)
bool operator < (const bign &b)
return false;
}bool operator > (const bign &b)
return false;
}bool operator == (const bign &b)
bool operator != (const bign &b)
bool operator <= (const bign &b)
bool operator >= (const bign &b)
string str() const
};istream& operator >> (istream &in, bign &x)
ostream& operator << (ostream &out, const bign &x)
string a;
int n,k;
bign dp[41][7];
bign temp;
int main()
}for(int i=0;i<=k;++i)
for(int i=1;i<=n;++i)}}
cout<= '0' && ch <= '9')
}else
}}
牛客假日團隊賽 A 乘積最大
今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數字串,要求選手使用k個乘號將它分成...
牛客假日團隊賽9 A 乘積最大
今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數字串,要求選手使用k個乘號將它分成...
牛客假日團隊賽6 D 迷路的牛
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld farmer john的三頭獲獎奶牛bessie elsie和mildred,總是會迷路走到農場上遙遠的地方去!他需要你幫助將她們一起趕回來。農場的草地大體是一塊狹長的...