HDU 3480 Division

来源:https://www.cnblogs.com/zwfymqz/archive/2018/02/20/8455824.html
-Advertisement-
Play Games

Division Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 999999/400000 K (Java/Others)Total Submission(s): 5344 Accepted Submission(s): 2115 Pro ...


Division

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 999999/400000 K (Java/Others)
Total Submission(s): 5344    Accepted Submission(s): 2115


Problem Description Little D is really interested in the theorem of sets recently. There’s a problem that confused him a long time.  
Let T be a set of integers. Let the MIN be the minimum integer in T and MAX be the maximum, then the cost of set T if defined as (MAX – MIN)^2. Now given an integer set S, we want to find out M subsets S1, S2, …, SM of S, such that



and the total cost of each subset is minimal.  

 

Input The input contains multiple test cases.
In the first line of the input there’s an integer T which is the number of test cases. Then the description of T test cases will be given.
For any test case, the first line contains two integers N (≤ 10,000) and M (≤ 5,000). N is the number of elements in S (may be duplicated). M is the number of subsets that we want to get. In the next line, there will be N integers giving set S.

 

 

Output For each test case, output one line containing exactly one integer, the minimal total cost. Take a look at the sample output for format.

 

 

Sample Input 2 3 2 1 2 4 4 2 4 7 10 1  

 

Sample Output Case 1: 1 Case 2: 18 Hint The answer will fit into a 32-bit signed integer.  

 

Source 2010 ACM-ICPC Multi-University Training Contest(5)——Host by BJTU  

 

Recommend zhengfeng   |   We have carefully selected several similar problems for you:  3478 3485 3487 3486 3484    四邊形不等式好噁心。。 首先對所有的數據排序(根據方差的性質貪心) 我們用$dp[i][j]$表示前$j$個數,分為$i$段的最小代價 朴素的轉移的話枚舉前一段的斷點 然後根據……&*()¥#%……&我們可以知道這玩意兒滿足四邊形不等式 然後愉快的套上板子就好啦  
#include<cstdio>
#include<cstring>
#include<algorithm>
const int MAXN=10001,INF=1e9+10;
using namespace std;
inline int read()
{
    char c=getchar();int x=0,f=1;
    while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return x*f;
}
int dp[MAXN][MAXN],s[MAXN][MAXN],a[MAXN];
int mul(int x){return x*x;}
int main()
{
    int Test=read(),cnt=0;
    while(Test--)
    {
        int N=read(),M=read();
        for(int i=1;i<=N;i++) a[i]=read();sort(a+1,a+N+1);
        for(int i=1;i<=N;i++) dp[1][i]=mul(a[i]-a[1]),s[1][i]=1;
        for(int i=2;i<=M;i++)
        {
            s[i][N+1]=N-1;//邊界 
            for(int j=N;j>=i;j--)
            {
                int mn=INF,mnpos=-1;
                for(int k=s[i-1][j];k<=s[i][j+1];k++)
                {
                    if(dp[i-1][k]+mul(a[j]-a[k+1])<mn)
                    {
                        mn=dp[i-1][k]+mul(a[j]-a[k+1]);
                        mnpos=k;
                    }
                }
                dp[i][j]=mn;
                s[i][j]=mnpos;
            }
        }
        printf("Case %d: %d\n",++cnt,dp[M][N]);
    }
    return 0;
}

 


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

-Advertisement-
Play Games
更多相關文章
  • JSP頁面本質上是一個Servlet,JSP頁面在JSP容器中運行,一個Servlet容器通常也是JSP容器。 當一個JSP頁面第一次被請求時,Servlet/JSP容器主要做一下兩件事情: ① 轉換JSP頁面到JSP頁面實現類,該實現類是一個實現javax.servlet.jsp.JspPage接 ...
  • 核心配置文件: 引入其他配置文件: src下的相對路徑 常量配置: 在struts2核心包下有預設的properties配置文件,當我們需要修改的時候, 第一種方式示例: 自己新建一個配置文件即可 struts.properties: 第二種方式示例: 在核心配置文件中寫: 第三種方式示例: 在we ...
  • 菜菜的我又來了,笨鳥不一定要先飛,但一定要堅持 今天記錄一個初級錯誤 比如我們在eclipse創建maven項目來運行我們的web項目 搭建完工程後發現javax-servlet包全部報錯 到這裡我還不知道什麼原因,想看原因的伙伴請移步最後 找了半天都說是改eclipse配置文件,但是還是沒用,只能 ...
  • 進程 1.含義:電腦中的程式關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位。說白了就是一個程式的執行實例。 執行一個程式就是一個進程,比如你打開瀏覽器看到我的博客,瀏覽器本身是一個軟體程式,你此時打開的瀏覽器就是一個進程。 2.進程的特性 一個進程里可以有多個子進程 新的進程的 ...
  • 1首先來回顧C的強制轉換 大家都知道,在編譯C語言中的強制轉換時,編譯器不會檢查轉換是否成功,都會編譯正確. 比如: 輸出結果如下圖所示: 從上圖可以看到,只有當運行代碼時,才會出現段錯誤問題. 當C代碼上千行時,若出現這種問題,是非常難找的. 2.C++的新型類型轉換 所以在C++中,便引入了4種 ...
  • 一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)檢查是否obj是否是類 cls 的對象 issubclass(sub, super)檢查sub類是否是 super 類的派生類 二、反射 2 python面向對象中的反射:通 ...
  • Servlet是線程不安全的,Struts1是基於Servlet的框架 而Struts2是基於Filter的框架,解決了線程安全問題 因此Struts1和Struts2基本沒有關係,只是創造者取名問題 接下來搭建並測試 下載Struts2:https://struts.apache.org/ 解壓後 ...
  • 題目描述 對於一棵樹,我們可以將某條鏈和與該鏈相連的邊抽出來,看上去就象成一個毛毛蟲,點數越多,毛毛蟲就越大。例如下圖左邊的樹(圖 1 )抽出一部分就變成了右邊的一個毛毛蟲了(圖 2 )。 輸入輸出格式 輸入格式: 在文本文件 worm.in 中第一行兩個整數 N , M ,分別表示樹中結點個數和樹 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...