TopCoder Srm671 一二題翻譯及題解

2021-07-09 22:57:37 字數 2316 閱讀 6837

第1題染色(paint)

現有w*h

的棋盤格仔,要在其上用藍色染其中的一些格仔,形成乙個藍色的矩形。由於費用問題,你最多只能染色

m個格仔,請問你能染色的矩形最大面積是多少?

【輸入格式】

(paint.in)

第1行:2

個整數w和h

,範圍在

[1…10^6]。

第2行:

1個整數

m,範圍在

[1…10^12]。

【輸出格式】

(paint.out)

乙個整數,可能的矩形最大面積。

【輸入輸出樣例】

輸入 輸出

3  5

14 12

4  4

10 9

1000000  1000000

999999999999

999999000000

【分析】

這顯然是一道很簡單的題,但是我交的時候竟然錯了三次,有一次是因為沒有考慮到m>w*h的情況,有兩次是因為沒有去掉測試的語句。這一道題最直觀的思路就是列舉所有的w和h,求出所有的面積,並取乙個小於m又最大的情況。不過顯然可以觀察到只需列舉w或h即可,因為m/w就是以當前的w為一邊的最大又不超過m的矩形面積的另一邊長度。當然,還要判斷一下m/w是否超過h,如果超過就不行了,就放不下了。當然要注意另一點:當m>w*h時,怎樣列舉都是找不出來的,則直接輸出w*h就好了。

【**】

# include 

# include

using namespace std;

unsigned long long int w,h;

unsigned long long int m,i;

unsigned long long int maxans = 0;

int main()

for (i=1;i<=w;++i)

}cout << maxans << endl;

}

第2題飛鏢(dart)

小明喜歡玩飛鏢遊戲,他會把每次的得分都記錄在陣列中。今天有個飛鏢大獎,得獎的規則是:如果你

4次飛鏢的得分先後是

(a,b,c,d)

,滿足a*b*c = d 。

小明準備把記錄裡的其他項刪除,只留下滿足獲獎條件的

4個分數,他想問你有多少種不同方案?

【輸入格式】

(dart.in)

第1行:1

個整數n。

第2行:

n個整數,每個整數範圍在

[1…10^6]。

【輸出格式】

(dart.out)

乙個整數,方案數。

【輸入輸出樣例】

輸入 輸出

610  2  2  7  40  160 2

注:(10,2,2,40)

、(2,2,40,160) 8

128  64  32  16  8  4  2  1 0

212  3  4  5  6  8  12  16  20  24  40  24  20  16  12  8  6  5  4  3  2 3

【n範圍】

80%在[4…500],

100%

在[4…2000]。

【分析】

這一道題最基本的解法(最直觀的)是列舉a,b,c,並判斷a*b*c是否在陣列中存在,這可以用乙個計數排序的思想(或者雜湊表)用o(1)的時間判定a*b*c是否存在(還要判定a*b*c是否小於10^6),就可以過80%的資料。而滿分演算法,則是找到a*b和d/c的對應性,因為若a*b=d/c,則a*b*c=d,所以可以得出乙個o(n^2)的題解。

只不過要注意一點:在聯賽的時候,因為系統的不同,scanf對於linux與windows中long long的讀入所用的方式是不同的。舉個例子,假如a是long long,用scanf讀入時,在linux下是scanf("%lld",&a);,windows下是scanf("%i64d",&a);。考試時要注意這個不同。

【**】

# include 

using namespace std;

const int maxn = 2000;

const int pow10_6 = 1000000;

int show[pow10_6 + 2];

int num[maxn + 1];

int main()

for (int i=2;i!=n;++i)

}for (int j=i+1;j!=n;++j)}}

printf("%i64d\n",ans);

}

topcoder SRM 641 解題報告

題意 給乙個長度2n的序列,每次洗牌可以把前n個數任意排列 記為a 後n個數任意排列 記為b 然後把兩個序列交叉,即把序列排成a1,b1,a2,b2,a3,b3 an,bn。現在初始序列是1,2,3,4 2n,給出乙個目標序列,求能否用兩次洗牌達到目標序列。思路 大大大水題!3行 因為前n個數和後n...

topcoder SRM 642 解題報告

題意 有一張圖,n n 個節點 n 50 role presentation style position relative n 50 n 50 每條邊有乙個高度值,the king要從某條路走過必須滿足他的shoes高度小於等於這條路的高度值。他現在有一些金幣,把一條邊的高度約束上調 k k 個單...

67 單詞模式

給定一種 pattern 模式 和乙個字串 str 判斷 str 是否遵循相同的模式。這裡的遵循指完全匹配,例如,pattern 裡的每個字母和字串 str 中的每個非空單詞之間存在著雙向連線的對應模式。示例1 輸入 pattern abba str dog cat cat dog 輸出 true ...