jzoj4827 鑽石遊戲

2021-07-24 11:31:19 字數 1136 閱讀 4232

乙個m行n列的棋盤,裡面放了m*n個各種顏色的鑽石。每一次你可以選擇任意兩個相鄰的顏色不同的鑽石,進行交換。兩個格仔相鄰的定義是兩個格仔有一條公共邊。每次交換的分值為通過這次交換後能夠形成的最大矩形的面積,具體請見樣例。跟傳統的鑽石遊戲不太一樣的是,交換後鑽石不會消除。現在告訴你每一次操作,請輸出每一次所能得到的分值。首先我們可以預處理出乙個點往上下左右最遠擴充套件到**(同色),每個詢問就從兩個點中間的連線線o(n)往左往右擴充套件,求出答案。

#include

#include

#include

#include

#include

#include

#define ld double

#define ll long long

#define max(a,b) ((a>b)?a:b)

#define min(a,b) ((a>b)?b:a)

#define fo(i,j,k) for(int i=j;i<=k;i++)

#define fd(i,j,k) for(int i=j;i>=k;i--)

using

namespace

std;

intconst inf=2147483647;

intconst maxn=500,maxm=500;

int n,m,p,a[maxm+10][maxn+10],f[maxm+10][maxn+10],ff[maxm+10][maxn+10],g[maxm+10][maxn+10],

gg[maxm+10][maxn+10],b[maxn+10],s[maxn+10],c[maxn+10];

int get(int p)*/

int l=p,r=p,mi=b[p];

for(;(l!=1)||(r!=b[0]);)else

}else

if(l!=1)else

}return max(ans,mi*(r-l+1));

}int main()

fd(i,m,1)

fd(j,n,1)

scanf("%d",&p);

fo(i,1,p)else

printf("%d\n",ans);

}return

0;}

鑽石和玻璃球遊戲 鑽石位置固定

開始,你可以隨意選擇乙個抽屜,在開啟它之前,主持人會開啟另外乙個抽屜,露出抽屜裡的玻璃球。這時,主持人會給你一次更換自己選擇的機會。請自己認真分析一下 不換選擇能有更高的機率獲得鑽石,還是換選擇能有更高的機率獲得鑽石?或機率沒有發生變化?寫出你分析的思路和結果。設法編寫python程式驗證自己的想法...

鑽石和玻璃球遊戲 鑽石位置不固定

import random defno change times glass ball 0 diamond 0 times2 times while times 0 drawers drawer with diamond random.randint 1,3 獲取隨機數1 3 drawers dra...

JZOJ 規律 遊戲

有一堆金塊,king和貓老大輪流抽金塊,每次抽的個數必然是2的次方冪,求勝利 抽走最後一塊 的是誰 三行每行乙個數 n 0對於每局,如果 king 必勝則輸出一行 king will win.否則第一行輸出 maolaoda willwin.第二行輸出他第一次拿的最小數量。8 42maolaoda ...