題目描述
在乙個r行c列的**裡,我們要選出3個不同的單元格。但要滿足如下的兩個條件:
(1)選中的任意兩個單元格都不在同一行。
(2)選中的任意兩個單元格都不在同一列。
假設我們選中的單元格分別是:a,b,c,那麼我們定義這種選擇的「費用」= f[a][b] + f[b][c] + f[c][a]。 其中f[a][b]是指單元格a到單元格b的距離,即兩個單元格所在行編號的差的絕對值 + 兩個單元格所在列編號的差的絕對值。例如:單元格a在第3行第2列,單元格b在第5行第1列,那麼f[a][b] = |3-5| + |2-1| = 2 + 1 = 3。至於f[b][c], f[c][a]的意義也是同樣的道理。現在你的任務是:有多少種不同的選擇方案,使得「費用」不小於給定的數mint,而且不大於給定的數maxt,即「費用」在【mint, maxt】範圍內有多少種不同的選擇方案。答案模1000000007。所謂的兩種不同方案是指:只要它們選中的單元格有乙個不同,就認為是不同的方案。
分析
公式**~
首先我們知道有兩種三點所處能形成乙個長方形而不在同一行、列的情況:
第一種:一點固定在頂點上,另外兩點在與其相反的兩條邊上(可以看出在乙個長方形上可以做到四次)
第二種:兩點固定在頂點上(對頂),另一點在任意一條邊上
根據這些可得公式:
當長為i,寬為j時,單元格個數為:
6×(i-2)×(j-2)【這裡是上述得出的公式】×(r-i+1)×(c-j+1)【這裡是在規定**內,此類方格能放的個數】
#include
#include
using namespace std;
long long r,c,mx,my,i,j,n;
int main()
printf("%lld",n);
return
0;}
JZOJ 3 18 1509 普及模擬 單元格
題目描述 在乙個r行c列的 裡,我們要選出3個不同的單元格。但要滿足如下的兩個條件 1 選中的任意兩個單元格都不在同一行。2 選中的任意兩個單元格都不在同一列。假設我們選中的單元格分別是 a,b,c,那麼我們定義這種選擇的 費用 f a b f b c f c a 其中f a b 是指單元格a到單元...
1509 普及模擬 單元格
在乙個r行c列的 裡,我們要選出3個不同的單元格。但要滿足如下的兩個條件 1 選中的任意兩個單元格都不在同一行。2 選中的任意兩個單元格都不在同一列。假設我們選中的單元格分別是 a,b,c,那麼我們定義這種選擇的 費用 f a b f b c f c a 其中f a b 是指單元格a到單元格b的距離...
jzoj P1509 普及模擬 單元格
題目大意 在乙個r行c列的 要選出3個不同的單元格a,b,c。定義這種選擇的 費用 f a b f b c f c a f x y 是指x到y的距離,即x,y所在行編號的差的絕對值 x,y所在列編號的差的絕對值。求出在min max費用範圍內有多少個這種選擇。題解 ans 6 r 2 c 2 r i...