hihocoder-Week173--A Game

hihocoder-Week173--A Game?

A Game

時間限制:10000ms
單點時限:1000ms
內存限制:256MB

描述

Little Hi and Little Ho are playing a game. There is an integer array in front of them. They take turns (Little Ho goes first) to select a number from either the beginning or the end of the array. The number will be added to the selecter's score and then be removed from the array.

Given the array what is the maximum score Little Ho can get? Note that Little Hi is smart and he always uses the optimal strategy.?

輸入

The first line contains an integer N denoting the length of the array. (1 ≤?N?≤ 1000)

The second line contains?N?integers?A1,?A2, ...?AN, denoting the array. (-1000 ≤?Ai?≤ 1000)

輸出

Output the maximum score Little Ho can get.

樣例輸入
4
-1 0 100 2
樣例輸出
99

?

?

使用區間dp,

?

但是我的這種方法只ac了50%, 應該是dp[i][j][1] = max( dp[i][j][1] , ?min( dp[i+1][j][0] , dp[i][j-1][0])?

應該對方的策略不是讓我方最少,而是對方也取得最優。

?

AC 50% Code:?

#include <cstdio> 
#include <cstring> #include <iostream> 
using namespace std; const int MAXN = 1000 + 10; int n, num[MAXN], dp[MAXN][MAXN][2]; int main(){freopen("in.txt", "r", stdin); int n; scanf("%d", &n); for(int i=1; i<=n; ++i){scanf("%d", &num[i]); } memset(dp, 0, sizeof(dp)); for(int i=1; i<=n; ++i){dp[i][i][0] = num[i]; }for(int i=n; i>=1; --i){for(int j=i; j<=n; ++j){dp[i][j][0] = max( dp[i+1][j][1] + num[i],   dp[i][j][0] ); dp[i][j][0] = max( dp[i][j-1][1] + num[j],   dp[i][j][0] ); dp[i][j][1] = max( dp[i][j][1], min( dp[i+1][j][0] ,  dp[i][j-1][0] ) ); }} int ans = dp[1][n][0]; printf("%d\n", ans);return 0; 
}

  

?

?

所以,?

?dp[i][j] = max( sum(i,j) - dp[i+1][j], sum(i,j) - dp[i][j-1])?

雙方都在求最優,所以 dp[i][j] 指的是當前下手的選手,可以取得的最優成果。 所以當前狀態是依賴于前面的 dp[i][j-1] 和 dp[i+1][j] ,?

?

AC Code?

#include <cstdio> 
#include <cstring> #include <iostream> 
using namespace std; const int MAXN = 1000 + 10; int n, num[MAXN], sum[MAXN], dp[MAXN][MAXN]; int main(){int n; scanf("%d", &n); sum[0] = 0; for(int i=1; i<=n; ++i){scanf("%d", &num[i]); sum[i] = sum[i-1] + num[i];  } memset(dp, 0, sizeof(dp)); for(int i=1; i<=n; ++i){dp[i][i] = num[i]; }for(int i=n; i>=1; --i){for(int j=i+1; j<=n; ++j){dp[i][j] = (sum[j] - sum[i-1]) - min( dp[i+1][j], dp[i][j-1] ); }} int ans = dp[1][n]; printf("%d\n", ans);return 0; 
}

  

?

轉載于:https://www.cnblogs.com/zhang-yd/p/7718448.html

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

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

相關文章

php打亂數組二維數組、多維數組

//這個是針對二維數組的!下面針對多維數組的亂序方法<?php function shuffle_assoc($list) { if (!is_array($list)) return $list; $keys array_keys($list); shuffle($keys); $random array(); foreach ($keys as $key) $random[$key] $list[$key]; ret…

明明一樣的程序為啥有的系統就報錯有的就正常運行呢_SurfaceGo Android系統折騰筆記...

Surface Go平板在Win10系統下的表現我認為還是比較出色的&#xff0c;x86架構CPU意味著不考慮性能的情況下&#xff0c;臺式機上能跑的程序&#xff0c;這臺平板也能跑&#xff0c;新Galgame一出就能直接安裝上躺床上玩&#xff0c;妙哉。但遺憾的是現實世界還是要考慮性能問題…

c語言實訓作業總結,c語言程序設計上機實踐心得報告

c語言程序設計上機實踐心得報告 班級:11 電信 2 姓名:莫金波 學號:1107032242012.12.28 惠州學院 HUIZHOU UNIVERSITY 我們專業的學生在專業老師的帶領下進行了 c 語言設計基礎教程的 實踐學習。在這之前&#xff0c;我們已經對 c 語言這門課程學習了差不多一 個學期&#xff0…

JavaOne 2012:在JVM上診斷應用程序

值得參加Staffan Larsen &#xff08;Oracle Java Serviceability Architect&#xff09;的演講“ 在JVM上診斷應用程序 ”&#xff08;Hilton Plaza A / B&#xff09;&#xff0c;只是為了學習Oracle JVM 7隨附的新jcmd命令行工具。該演示對我來說是“獎金”&#xff0c;這對…

mysql慢查詢工具

GeorgeHao安裝過程&#xff1a; [rootlocalhost-centos6 ~]# wget percona.com/get/pt-query-digest [rootlocalhost-centos6 ~]# chmod ux pt-query-digest [rootlocalhost-centos6 ~]# mv /root/pt-query-digest /usr/bin/ 今天有在阿里云服務器跑分的時候出現"Cant loc…

python字符串轉date,在Python上將字符串轉換為Date類型

I have this string:2012-02-10 # (year-month-day)and I need it to be as date type for me to use the date function isoweekday().Does anyone know how I can convert this string into a date?解決方案You can do that with datetime.strptime()Example:>>> f…

文檔詞頻矩陣_論文理解:從詞嵌入到文檔距離

論文作者簡介本論文第一作者Matt J. Kusner是牛津大學的副教授&#xff0c;致力于設計適應現實世界問題需求的新機器學習模型&#xff08;例如&#xff0c;fair algorithms, discrete generative models, document distances, privacy, dataset compression, budgeted learning…

C# 線程理解

概念引用&#xff1a;http://blog.csdn.net/yujie_yang/article/details/53173752 多線程和多進程的區別&#xff1a;任務管理器里各種不同的進程就是多進程&#xff0c;或者是你同時運行多個”.exe’程序就可以理解為多進程&#xff0c;多進程是要更多消耗CPU資源的。 多線程是…

c語言主調函數和被調函數,在C語言中,何為主調函數和被調函數,他們之 – 手機愛問...

2007-08-30請詳細一些~最好舉出例子你好。評價寶寶的標準基本上是&#xff1a;技能>資質>成長因為寶寶的評價是一項 仁者見仁的活兒&#xff0c;但其中有些規律我想是可以具體話的&#xff0c;希望能對你有幫助&#xff1a;1&#xff1a;技能&#xff1a;技能的意義有多大…

學習關于display :flex 布局問題!

很多人不明白這個display:flex是到底是什么東西&#xff0c;如何使用的 。 1.什么是display&#xff1a;flex呢&#xff1f; 答&#xff1a;flex是 flexible box的縮寫&#xff0c;意為彈性布局 &#xff1b;這個東西的引入&#xff0c;為盒模型提供了最大的靈活性&#xf…

QT信號和槽函數學習筆記

//connect 函數有4個參數 分別是 發送者 信號。接受者 &#xff0c;槽 //connect(sender,signal,receiver,slot) /* * 信號和槽 * 信號 就是一個普通的函數 定義信號的時候需要在函數前面加上signals: &#xff0c;不需要實現 * 槽 函數 在QT5中科院是類的任意成員函數&#xf…

數據庫和Webapp安全

威脅模型 這是根據我網站上的快速參考頁松散地討論數據庫和Webapp安全的問題。 該頁面變得笨拙&#xff0c;并且使讀者無法輕松地與我或其他人進行交互。 威脅模型 所有安全分析都必須從檢查威脅模型開始。 威脅模型要求您回答四個問題&#xff1a; 我要保護的是什么&#…

note同步不及時 one_一輛理想ONE又“跪了”?理想官方緊急發文回應

汽車行業關注(autochat.com.cn)10月16日報道——10月15日&#xff0c;有網友在社交媒體上發布視頻&#xff0c;從視頻可以看到&#xff0c;一輛理想ONE在遭遇事故后&#xff0c;左前輪脫落在車外疑似斷軸,從視頻未能判定是斷軸引起的事故&#xff0c;還是事故引起的斷軸。針對該…

C語言連續多個空格合并一個,C語言合并連續空格

一開始自己寫的&#xff1a;a&#xff1a;#includemain(){int c;int state0;while (( cgetchar()) ! EOF) {if (c ){state1;continue;}if (state){state0;putchar( );putchar(c);}elseputchar(c);}}網上搜的&#xff1a;b:#include #define NONBLANK avoid main(){int c , last…

Skywalking 中 Agent 自動同步配置源碼解析

文章目錄 前言正文實現架構實現模型OAP 同步 ApolloConfigWatcherRegisterConfigChangeWatcher Agent 側 前言 本文代碼 OAP 基于 v9.7&#xff0c;Java Agent 基于 v9.1&#xff0c;配置中心使用 apollo。 看本文需要配合代碼“食用”。 正文 Skywalking 中就使用這種模型…

華為5720設置靜態路由不通_【干貨分享】交換機與路由器在環路中的處理機制了解一下!...

點擊藍字關注我們-今天小盟帶大家來討論一下交換機與路由器在環路中的處理機制-01基礎配置1---如圖配置路由器各接口地址&#xff0c;AR-2為PC-1的網關路由器2---AR-1配置靜態默認路由&#xff0c;下一跳地址指向AR-2&#xff1b;[AR-1]ip route-static 0.0.0.0 0 12.1.1.2AR-2…

IPC 進程間通信方式——信號量

信號量 本質上是共享資源的數目&#xff0c;用來控制對共享資源的訪問。用于進程間的互斥和同步每種共享資源對應一個信號量&#xff0c;為了便于大量共享資源的操作引入了信號量集&#xff0c;可對多對信號量一次性操作。對信號量集中所有的操作可以要求全部成功&#xff0c;也…

css選擇器的優先級

選擇器的優先級表述為4個部分&#xff0c;用0,0,0,0表示。 !important--1,0,0,0行內樣式ID選擇器--0,1,0,0類選擇器(例如,.example)、屬性選擇器&#xff08;例如, [type"radio"]&#xff09;或偽類&#xff08;例如, :hover&#xff09;--0,0,1,0元素&#xff08;例…

VisualVM介紹使用

1 打開VisualVM&#xff08;這個工具放在JDK安裝目錄的bin目錄下&#xff0c;雙擊jvisualvm.exe即可打開&#xff09;&#xff0c;如下圖所示 以VisualVM自身為例&#xff0c;VisualVM本身也是一個java程序&#xff0c;當然也而已用VisualVM來分析 2 概述頁面主要顯示程序…

c語言奇葩錯誤,6個奇葩的(hello,world)C語言版(轉)

//下面的所有程序都可以在GCC下編譯通過&#xff0c;只有最后一個需要動用C的編譯器用才能編譯通過。//程序功能輸出 Hello,world!01.c#define _________ }#define ________ putchar#define _______ main#define _(a) ________(a);#define ______ _______(){#define __ _____…