乙個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 ...