87. [NOIP2000] 乘積最大

来源:http://www.cnblogs.com/zwfymqz/archive/2017/05/23/6895123.html
-Advertisement-
Play Games

★☆ 輸入文件:cjzd.in 輸出文件:cjzd.out 簡單對比 時間限制:1 s 記憶體限制:128 MB 問題描述 今年是國際數學聯盟確定的“2000——世界數學年”,又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的一個好朋友 ...


★☆   輸入文件:cjzd.in   輸出文件:cjzd.out   簡單對比
時間限制:1 s   記憶體限制:128 MB

  問題描述  

 

今年是國際數學聯盟確定的“2000——世界數學年”,又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的一個好朋友XZ也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目:

 

設有一個長度為N的數字串,要求選手使用K個乘號將它分成K+1個部分,找出一種分法,使得這K+1個部分的乘積能夠為最大。

 

同時,為了幫助選手能夠正確理解題意,主持人還舉瞭如下的一個例子:

 

有一個數字串:312,N=3,K=1時會有以下兩種分法:

 

1)   3*12=36

2)  31*2=62

  

  這時,符合題目要求的結果是:31*2=62

 

  現在,請你幫助你的好朋友XZ設計一個程式,求得正確的答案。

 

  輸  入  

 

  程式的輸入共有兩行:

  第一行共有2個自然數N,K(6≤N≤40,1≤K≤6)

  第二行是一個長度為N的數字串。

 


  輸  出  


  結果顯示在屏幕上,相對於輸入,應輸出所求得的最大乘積(一個自然數)。

 

  樣  例  


輸入


4 2

1231


輸出

62

 

我們用dp[i][j]來表示前i個數中用了j個乘號的最大值

然後我們枚舉我們所有可以取得值,k

那麼dp[i][j]=max(dp[i][j],dp[k][j-1]*calc(k+1,i));

對於每一個i,j我們需要在dp[i][j]和從第k位,用了j-1個乘號,再再乘上後面的值(本次乘相當於用了第i個乘號)

中取一個最大值

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #define LL long long 
 6 using namespace std;
 7 int read(int & n)
 8 {
 9     int flag=0,x=0;char c='/';
10     while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;}
11     while(c>='0'&&c<='9')x=x*10+(c-48),c=getchar();
12     if(flag)n=-x;
13     else n=x;
14 }
15 int n,k;
16 char a[101];
17 LL dp[101][101];
18 LL calc(int ll,int rr)
19 {
20     long long int ans=0;
21     for(int i=ll;i<=rr;i++)
22         ans=ans*10+a[i]-48;
23     return ans;
24 }
25 
26 int main()
27 {
28     freopen("cjzd.in","r",stdin);
29     freopen("cjzd.out","w",stdout);
30     cin>>n>>k;
31     scanf("%s",a+1);
32     
33     for(int i=1;i<=n;i++)
34     dp[i][0]=calc(1,i);
35     
36     for(int i=1;i<=n;i++)// 每一位數 
37     {
38         for(int j=1;j<=k&&j<i;j++)//乘號的數目 
39         {
40             for(int k=j;k<i;k++)// k的最小值 到 i 
41             {
42                 dp[i][j]=max(dp[i][j],dp[k][j-1]*calc(k+1,i));
43             }
44         }
45     }
46     cout<<dp[n][k];
47     return 0;
48 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一,安裝編程工具併進入編程界面 首先去https://www.continuum.io/downloads/網站下載Anaconda工具並安裝;打開cmd,輸入jupyter notebook並回車(win7),他會自動幫你打開編輯界面(基於瀏覽器的);點擊new按鈕新建一個Python3的編輯框, ...
  • ★☆ 輸入文件:BlackHawk.in 輸出文件:BlackHawk.out 評測插件 時間限制:0.05 s 記憶體限制:256 MB 【題目描述】 正義的萌軍瞄準了位於南極洲的心靈控制器,為此我們打算用空襲摧毀心靈控制器,然而心靈控制器是如此強大,甚至能緩慢控制飛行員。一群勇敢計程車(feng)兵 ...
  • 輸入:以文件的形式,包括: 1.狀態機的輸入/輸出 2.狀態機中使用的變數 3.狀態機模型 應包括:Nodes、Transition、Condition等信 息 功能:1.根據狀態機格式化數據,完成狀態機函數的自 動生成。 2.(選做)可運用工具完成狀態機的圖形自動生成。註 意圖形工具的輸入格式。 ...
  •   當我們想研究不同sample的某個變數A之間的差異時,往往會因為其它一些變數B對該變數的固有影響,而影響不同sample變數A的比較,這個時候需要對sample變數A進行標準化之後才能進行比較。標準化的方法是對sample 的 A變數和B變數進行loess回歸,擬合變數A關於 ...
  • 題目鏈接 Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000 ...
  • 這兩天在用python的bottle框架開發後臺管理系統,介面約定使用RESTful風格請求,前端使用jquery ajax與介面進行交互,使用POST與GET請求時都正常,而Request Method使用PUT或DELETE請求時,直接爆“HTTP Error 405: Method Not A ...
  • Django 自稱是“最適合開發有限期的完美WEB框架”。本文參考《Django web開髮指南》,快速搭建一個blog 出來,在中間涉及諸多知識點,這裡不會詳細說明,如果你是第一次接觸Django ,本文會讓你在感性上對Django有個認識,完成本文操作後會讓你有興趣閱讀的相關書籍和文檔。 本博客 ...
  • ★★ 輸入文件:dec.in 輸出文件:dec.out 簡單對比 時間限制:1 s 記憶體限制:128 MB Description 出題是一件痛苦的事情! 題目看多了也有審美疲勞,於是我捨棄了大家所熟悉的A+B Problem,改用A-B了哈哈! 好吧,題目是這樣的:給出一串數以及一個數字C,要求計 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...