數學 (JZOJ) 普及模擬 單元格

2021-07-29 08:09:57 字數 992 閱讀 1049

題目描述

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