時間限制:500ms 記憶體限制:1000k
zayhero 在印度比賽時的紀念品是一幅精緻的竹葉畫。他在看其他選手的竹葉畫時發現其中一幅是以字元菱形為基礎畫出來的。下圖就是半徑為1---5 時的字元菱形。
那幅畫的構圖,就是將很多個半徑為10 的字元菱形不斷延伸畫成。由於這種圖案包含了太多字元,所以
zayhero 覺得很混亂,為了理清思路,他需要知道畫面上的字元分別有多少個。但由於畫面太大了,所以
他每次只能看到畫面的一部分,假設這個部分是乙個矩形,請計算該矩形內部某種字元的個數。
在下面的圖中,黃色部分的左上角為(13, 12),右下角為(53, 25),這個區域內沒有字元a,但有12 個字
符e,49 個字元i,58 個字元j。
第一行,乙個整數t (t <= 500),為測試資料組數。之後2t 行,每2 行表示一組測試資料。每組資料
第一行,乙個字元ch,表示需要計算個數的字元種類(a <= ch <= j)。
第二行,四個整數x1,y1,x2,y2,(1<=x1 <= x2<=50000,1<=y1 <= y2<=50000),表示詢問
的矩陣的範圍,其中(x1,y1)為矩形左上角,(x2,y2)為右下角。
請注意,在本問題中,原點在左上角,而非一般的左下角。
每組資料輸出一行,輸出需要計算的字元個數,具體格式見sample。
8j1 1 19 19
a1 1 1 1
a13 12 53 25
e13 12 53 25
i13 12 53 25
j13 12 53 25
f13 23 33 333
g2 2 100 100
case 1: 36zayherocase 2: 0
case 3: 0
case 4: 12
case 5: 49
case 6: 58
case 7: 397
case 8: 630
暴力掃tle
除錯許久,才發現自己複製思路時多寫了幾句,算重了
#include #include #include using namespace std;
void fill_in(int square[19],int start_x,int start_y)
}void full_of(int square[19])
}int id_search(int square[19],int x1,int y1,int x2,int y2,int id)
; for(int i=x1;i<=x2;++i)
if(tmp_j<9)j+=((9-tmp_j)*2-1);
else j+=((19-tmp_j)*2-2);}}
ans+=hang;
flag[tmp_i]=1;
if(x2-i>=19)}}
return ans;
}void print(int square[19])
}//#define local
int main()
return 0;
}
演算法訓練 字元刪除
問題描述 編寫乙個程式,先輸入乙個字串str 長度不超過20 再輸入單獨的乙個字元ch,然後程式會把字串str當中出現的所有的ch字元都刪掉,從而得到乙個新的字串str2,然後把這個字串列印出來。輸入格式 輸入有兩行,第一行是乙個字串 內部沒有空格 第二行是乙個字元。輸出格式 經過處理以後的字串。輸...
藍橋杯演算法訓練 字元統計
問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。輸出格式 一行,題目要求的字串。輸入樣例1 4 bba...
演算法訓練 字串變換
時間限制 1.0s 記憶體限制 256.0mb 提交此題 問題描述 相信經過這個學期的程式設計訓練,大家對於字串的操作已經掌握的相當熟練了。今天,徐老師想測試一下大家對於字串操作的掌握情況。徐老師自己定義了1,2,3,4,5這5個引數分別指代不同的5種字串操作,你需要根據傳入的引數,按照徐老師的規定...