51 Nod 1007 正整數分組【類01背包】

1007 正整數分組

基準時間限制:1 秒 空間限制:131072 KB 分值: 10
難度:2級算法題
將一堆正整數分為2組,要求2組的和相差最小。
例如:1 2 3 4 5,將1 2 4分為1組,3 5分為1組,兩組和相差1,是所有方案中相差最少的。
Input
第1行:一個數N,N為正整數的數量。
第2?-?N+1行,N個正整數。
(N?<=?100,?所有正整數的和?<=?10000)
Output
輸出這個最小差
Input示例
5
1
2
3
4
5
Output示例
1
題目鏈接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1007
分析:

本題要求兩個正整數數組的和差,那么要使得兩個和差最小,那么必定每個數組是越靠近sum/2的(就是和的中間點)

那么我們就可以把這道題目轉化為簡單的01背包了。

下面給出AC代碼:
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define N 10010
 4 int a[N]; 
 5 int n;
 6 int dp[N];
 7 int  main(void)
 8 {    
 9      while(scanf("%d",&n)!=EOF)
10      {
11        int sum=0;
12        for(int i=1;i<=n;i++)
13        {
14              cin>>a[i];
15              sum+=a[i];//挑選出一些數字,是的越靠近sum/2,那么就是背包問題了 
16        }
17        memset(dp,0,sizeof(dp));
18        for(int i=1;i<=n;i++)
19                for(int j=sum/2;j>=a[i];j--)
20                    dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
21        cout<<abs((sum-dp[sum/2])-dp[sum/2])<<endl;
22      }
23       return 0;
24 }

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257424.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257424.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257424.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

YTU 2924: 文件操作--二進制文件讀入

2924: 文件操作--二進制文件讀入 時間限制: 1 Sec 內存限制: 128 MB提交: 58 解決: 20題目描述 現有100名學生的姓名(name)、學號(num)、英語(English)、數學(Math)、語文(Chinese)成績存儲在一個二進制文件student.dic中(姓名用char[20]&#xff0c;學號和各科成績用int存儲…

oracle 9.2.0.4,CentOS 4.7 安裝Oracle 9.2.0.4的一些問題

#vi/etc/sysconfig/iptables&#xff0c;增加如下-A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT-A INPUT -p tcp -s 0/0 -d 0/0 --dport telnet -j ACCEPT-A INPUT -p tcp -s 0/0 -d 0/0 --dport ssh -j ACCEPT-A INPUT -p tcp -s 0/0 -d 0/0 --dport login -j ACCEPT-…

《機電傳動控制》----學習筆記六

《機電傳動控制》與其他學科的聯系 1、《液壓傳動與氣壓傳動》中提到的液壓控制閥中的電液伺服閥與《機電傳動控制》中的控制電動機里的伺服電機有著密切的聯系&#xff0c;都要求我們對伺服系統有著很好的理解。 2、《電路理論》中電機作為獨立的一章&#xff0c;講到了用向量…

Oracle Imp and Exp (導入和導出) 數據 工具使用

Oracle 提供兩個工具imp.exe 和exp.exe分別用于導入和導出數據。這兩個工具位于Oracle_home/bin目錄下。 導入數據exp 1 將數據庫ATSTestDB完全導出,用戶名system 密碼123456 導出到c:\export.dmp中 exp system/123456ATSTestDB filec:\export.dmp fully 其中ATSTestDB為數據庫…

[Oracle][Corruption]究竟哪些檢查影響到 V$DATABASE_BLOCK_CORRUPTION

根據 471716.1&#xff0c;11g 之后&#xff0c;下列動作如果遇到壞塊&#xff0c;都會輸出記錄到 V$DATABASE_BLOCK_CORRUPTION。- Analyze table .. Validate structure- CTAS(Create table as Select)- Export另外&#xff0c;這些也會記錄的&#xff1a;RMAN > Vali…

oracle使用loop將增加十天,使用loop循環操作DML語句

---loop循環&#xff1a;--創建測試表&#xff1a;suxingPROD>create table total3(2 t1 number(8),3 t2 number(8),4 cr date default sysdate);Table created.#測試表已經創建。--查看表中原來的數據&#xff1a;suxingPROD>select * from total3;T1 T2 CR-…

iOS富文本

iOS富文本 背景&#xff1a;前些天突然想做一個筆記本功能&#xff0c;一開始&#xff0c;覺得挺簡單的呀&#xff0c;一個UITextView,網絡緩存也不干了&#xff0c;直接本地NSUserDefault存儲&#xff0c;然后完事了&#xff0c;美工&#xff0c;弄幾張好看的圖片&#xff0c;…

SQL編程題-----1

首先&#xff0c;題目給出這個數據庫表格 要求寫出SQL語句使之變成如下表格 解決方法&#xff1a; SELECT t1.Rq,t1.勝,t2.負 FROM //t1和t2是自己命的新表格的名字 (SELECT Rq,COUNT(*) AS 勝 //As 勝意思是輸出結果時列名為”勝“FROM testtableWHERE Sh…

maven設置jdk版本

兩種方式&#xff1a;一、可以修改 MAVEN 的 setting.xml 文件&#xff0c;統一修改。<profiles> <profile> <id>jdk-1.6</id> <activation> <activeByDefault>true</activeByDefault>…

獲取系統時間出錯oracle-,oracle 獲取系統時間(轉)

Oracle中如何獲取系統當前時間select to_char(sysdate,yyyy-mm-dd hh24:mi:ss) from dual;ORACLE里獲取一個時間的年、季、月、周、日的函數select to_char(sysdate, yyyy ) from dual; --年select to_char(sysdate, MM ) from dual; --月select to_char(sysdate, dd ) f…

PHP環境搭建

以Apache模塊運行PHP環境搭建方法 下載Apache 注意&#xff1a;在http://www.apachelounge.com/ 下載Apache&#xff0c;因為該網站提供的Apache是通過更高版本的VC編譯器編譯的。由于接下來我下載的PHP版本是VC11的&#xff0c;所以下載的Apache版本也是基于VC11的。 download…

Java語言中的-----訪問修飾符

day04 Java語言中的----訪問修飾符一、訪問修飾符概述&#xff1a;訪問修飾符就是對變量或者是方法或者是類的一個修飾&#xff0c;通過修飾以后實現一些必要的權限&#xff0c;主要是說明類成員如何被使用的作用。二、訪問修飾符1、訪問修飾符有哪些&#xff1f;訪問修飾符總共…

六角填數---第五屆藍橋杯

/** 如圖【1.png】所看到的六角形中&#xff0c;填入1~12的數字。使得每條直線上的數字之和都同樣。圖中&#xff0c;已經替你填好了3個數字&#xff0c;請你計算星號位置所代表的數字是多少&#xff1f;請通過瀏覽器提交答案。不要填寫多余的內容。*/ public class 六角填數 {…

linux命令編寫,編寫簡單的linux命令

8種機械鍵盤軸體對比本人程序員&#xff0c;要買一個寫代碼的鍵盤&#xff0c;請問紅軸和茶軸怎么選&#xff1f;又到了周四分享環節&#xff0c;鑒于最近在看linux編程實踐&#xff0c;所以就的講一下如何編寫一個簡單的who命令。PPTManual PageManual Page 也就是大家常用的m…

如何在ASP.NET 5和XUnit.NET中進行LocalDB集成測試

今天繼續昨天的話題——單元測試&#xff0c;不過是在ASP.NET 5中的單元測試。 在當前的Visual Studio 2015 CTP6中&#xff0c;MSTest是不支持對ASP.NET 5項目進行單元測試的。因而&#xff0c;要對ASP.NET 5進行單元測試&#xff08;或集成測試&#xff09;&#xff0c;就需要…

mysql數據庫詳解(續一)

第三節 配置MYSQL數據庫配置mysql數據庫通常通過命令行選項、配置文件、和環境變量來進行&#xff0c;并且優先順序也是命令行最高&#xff0c;環境變量優先級最低。1、配置文件定位mysql的配置文件可以在以下四個位置&#xff1a;(按照查找順序)1、/etc/my.cnf2、DATADIR/my.c…

ImageLoader設置圓形圖片

//自定義MyApplication類&#xff0c;需要在列表清單中設置 <application android:name"com.ce.image.MyApplication"//將類的名稱賦給這個application package com.ce.image;import com.nostra13.universalimageloader.core.DisplayImageOptions;import …

用戶模式 內核模式 linux,linux – “內核模式”和“用戶模式”硬件...

內核模式和用戶模式是硬件功能,特別是處理器的功能.專為中高端系統(PC,功能手機,智能手機,除最簡單的網絡設備之外的所有系統……)設計的處理器都包含此功能.內核模式可以使用不同的名稱&#xff1a;管理程序模式,特權模式等.在x86(PC中的處理器類型)中,它被稱為“ring 0”,用戶…

SANS研究所:7大最危險的攻擊技術介紹

本文講的是SANS研究所&#xff1a;7大最危險的攻擊技術介紹&#xff0c;很顯然&#xff0c;網絡攻擊威脅已經從理論走入現實生活&#xff0c;無論是個人、企業還是國家重要基礎設施都處在日益嚴峻的威脅之中。本周三&#xff08;2月15日&#xff09;在加利福尼亞州舊金山舉辦的…

第六周作業

上網調查一下目前流行的源程序版本管理軟件和項目管理軟件都有哪些&#xff0c; 各有什么優缺點&#xff1f; &#xff08;提示&#xff1a;搜索一下Microsoft TFS、GitHub、Trac、Bugzilla、Rationale&#xff0c;Apple XCode&#xff09;? 答&#xff1a;目前流行的源程序版…