P1004 方格取數

来源:http://www.cnblogs.com/zwfymqz/archive/2017/06/21/7061782.html
-Advertisement-
Play Games

題目描述 設有N*N的方格圖(N<=9),我們將其中的某些方格中填入正整數,而其他的方格中則放 人數字0。如下圖所示(見樣例): A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4 0 0 ...


題目描述

設有N*N的方格圖(N<=9),我們將其中的某些方格中填入正整數,而其他的方格中則放

人數字0。如下圖所示(見樣例):

A
 0  0  0  0  0  0  0  0
 0  0 13  0  0  6  0  0
 0  0  0  0  7  0  0  0
 0  0  0 14  0  0  0  0
 0 21  0  0  0  4  0  0
 0  0 15  0  0  0  0  0
 0 14  0  0  0  0  0  0
 0  0  0  0  0  0  0  0
.                       B

某人從圖的左上角的A點出發,可以向下行走,也可以向右走,直到到達右下角的B

點。在走過的路上,他可以取走方格中的數(取走後的方格中將變為數字0)。

此人從A點到B點共走兩次,試找出2條這樣的路徑,使得取得的數之和為最大。

輸入輸出格式

輸入格式:

輸入的第一行為一個整數N(表示N*N的方格圖),接下來的每行有三個整數,前兩個

表示位置,第三個數為該位置上所放的數。一行單獨的0表示輸入結束。

輸出格式:

只需輸出一個整數,表示2條路徑上取得的最大的和。

輸入輸出樣例

輸入樣例#1:
8
2 3 13
2 6  6
3 5  7
4 4 14
5 2 21
5 6  4
6 3 15
7 2 14
0 0  0
輸出樣例#1:
67

說明

NOIP 2000 提高組第四題

 

  走法分為四種情況:
  ①兩條路都從上邊到達此點

  ②兩條路都從左邊到達此點

  ③第一條路從左邊到達此點,第二條路由上邊到達此點

  ④第一條路從上邊到達此點,第二條路由左邊到達此點

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6 void read(int & n)
 7 {
 8     char c='+';int x=0;    
 9     while(c<'0'||c>'9')c=getchar();
10     while(c>='0'&&c<='9')
11     {
12         x=x*10+c-48;
13         c=getchar();
14     }
15     n=x;
16 }
17 const int MAXN=10;
18 int a[MAXN][MAXN];
19 int dp[MAXN][MAXN][MAXN][MAXN];
20 int main()
21 {
22     //ios::sync_with_stdio(false);
23     int n;
24     read(n);
25     while(1)
26     {
27         int x,y,z;
28         read(x);read(y);read(z);
29         if(x==0&&y==0&&z==0)
30         break;
31         a[x][y]=z;
32     }
33         
34 
35     for(int i=1;i<=n;i++)
36         for(int j=1;j<=n;j++)
37             for(int k=1;k<=n;k++)
38                 for(int l=1;l<=n;l++)
39                 {
40                     if(i+j!=k+l)continue;
41                     dp[i][j][k][l]=max(max(dp[i-1][j][k-1][l],
42                                        dp[i-1][j][k][l-1]),
43                                        max(dp[i][j-1][k-1][l],
44                                        dp[i][j-1][k][l-1]))+a[i][j]+a[k][l];
45                     if(i==k&&j==l)
46                     dp[i][j][k][l]-=a[i][j];
47                 }
48     printf("%d",dp[n][n][n][n]);
49     return 0;
50 }

 


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

-Advertisement-
Play Games
更多相關文章
  • Lucene是apache軟體基金會4 jakarta項目組的一個子項目,是一個開放源代碼的全文檢索引擎工具包,但它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。Lucene的目的是為軟體開發人員提供一個簡單易用的工具包. 粘貼這句話的意思 ...
  • #文件內容 lisilock = open("lock_info.txt", "r+",encoding="utf-8")lock_line = lock.readline()lock_list = lock_line.split(",")print(lock_list)y = lock_line. ...
  • 函數式編程1.簡化代碼,2,調用方便,修改方便3.調用參數,形參數,與位置參數。關鍵參數,位置參數只能發在關鍵參數之後4.預設參數5.參數組(*args) 元組參數6 接受字典 ( **kwargs) 當同時使用時必須放到參數的最後程式運行的從文件的上邊到下邊的運行局部變數 一個變數只在函數中生效。... ...
  • 工具:python2.7 相關包:traits-4.6.0-cp27-cp27m-win32.whl, VTK-7.1.1-cp27-cp27m-win32.whl, mayavi-4.5.0+vtk71-cp27-cp27m-win32.whl 下載地址:http://www.lfd.uci.ed ...
  • 模塊 1. 模塊的分類 模塊,又稱構件,是能夠單獨命名並獨立地完成一定功能的程式語句的集合(即程式代碼和數據結構的集合體)。 (1)自定義模塊 自己定義的一些可以獨立完成某個功能的一段程式語句,可以是一個文件,也可以是一個目錄。 (2)第三方模塊 是由其他人寫的一些程式語句,我們可以用它來實現自己的 ...
  • 由於第3章第一題網上有很多種非常優秀的解法,我就不貼出來了,大家不妨自己探索。 練習3-2 編寫一個函數escape(s,t),將字元串t複製到字元串s中,併在複製過程中將換行符、製表符等不可見字元分別轉換成'\n'、'\t'等相應的可見的轉義字元序列。要求使用switch語句。再編寫一個具有相反功 ...
  • MyBatis 的配置文件包含了影響 MyBatis 行為甚深的設置(settings)和屬性(properties)信息。文檔的頂層結構如下: configuration 配置 properties 屬性 settings 設置 typeAliases 類型命名 typeHandlers 類型處理... ...
  • 在開始之前呢,先瞭解一下UIView和CALayer大體的區別(重點列舉了以下四點): UIView繼承自 UIResponder,因此UIView 可以處理響應事件,而CALayer繼承自NSObject,所以它只是負責內容的創建,繪製。 UIView負責對內容的管理,而CALayer則是對內容的 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...