time limit: 5000 ms memory limit: 128 mb建立乙個三維座標系,把能覆蓋到的地方全部標記上,然後計算數量total submission: 146 submission accepted: 34
description
給定兩個長度均為3的數字序列,每位上為乙個範圍是1-n的正整數,求有多少個仍然由3個1-n的整數構成的數字序列能與給定的兩個序列中的任意乙個匹配。
如果兩個序列匹配,當且僅當兩個序列中的每個對應數字的最近距離不超過2。
比如當n為9時,每一位數字可能是1,2,3,4,5,6,7,8,9,並且數字是迴圈的。也就是說9和1是相鄰的。
數字之間的距離就是兩個數字的位置之差。
也就是說在上面的例子中,9和1的最近距離是1,9和2的最近距離是2,2和5的最近距離是3。
比如現在給定兩個序列組合為(1,2,3)和(4,5,6), (2,4,8)或者(1, n, 5) 是能和兩個序列匹配中的至少乙個匹配的,但是(1, 5, 6)是不能和給定的兩個序列中的任何乙個匹配的。
input
多組輸入,以eof結束。
每組輸入包含三行第一行為乙個整數n(1 <= n <= 50),第二行和第三行都是以三個空格分隔的整數。
output
對於每組輸入,輸出乙個數字,表示能和給定的兩個序列中的任意乙個匹配的序列的個數。
sample input
original
transformed
501 2 3
5 6 7
sample output
original
transformed
249source
roll
其中要注意小於等於0和大於n的情況**換後還應該在0-n之間)。
1/*2by:ohyee
3github:ohyee
4email:[email protected]*/
6 #include 7 #include 8 #include 9 #include 10 #include
11 #include 12 #include 13 #include 14 #include 15 #include 16
using
namespace
std;
1718
#define rep(n) for(int o=0;o19
20const
int maxn = 55;21
2223
bool
do() ;
3031
for(int x = a1 - 2;x <= a1 + 2;x++)
32for(int y = b1 - 2;y <= b1 + 2;y++)
33for(int z = c1 - 2;z <= c1 + 2;z++)
41for(int x = a2 - 2;x <= a2 + 2;x++)
42for(int y = b2 - 2;y <= b2 + 2;y++)
43for(int z = c2 - 2;z <= c2 + 2;z++)
50 printf("
%d\n
",cnt);
51return
true;52
}535455
intmain()
30 序列構造
給定兩個長度為 n 的正整數序列 a a1,a2,an 和 b b1,b2,bn 現在你選擇 k 個數構成序列 p p1,p2,pk 使得 序列 p 中的元素是不重複的1 pi n 其中1 i k2 ap1 a pk 大於序列 a 所有元素的和2 bp1 b pk 大於序列 b 所有元素的和 k 小...
192220序列型別
序列表示索引未非負整數的有序物件集合,包括字串,列表,元祖。說明 舉例 元祖跟裡面的逗號相關 mytuple a b c d type mytuple 列表根中括號相關 mylist a b c d type mylist 字串跟雙引號有關 mystr a,b,c,d type mystr 適用於所...
38 序列解包
序列解包可以用於元組 列表 字典。序列解包可以讓我們方便的對多個變數賦值。1 也就是以下 效果 類似。in 35 a,b c,d 1,2 3,4 in 36 aout 36 1in 37 bout 37 2in 38 cout 38 3in 39 dout 39 4序列解包用於字典時,預設是對 鍵 ...