樂山師範程式設計大賽2020 A 好數對

2021-10-12 10:20:55 字數 906 閱讀 5051

題目描述

給你乙個整數陣列 nums。

如果一組數字 (i, j) 滿足 nums[i] == nums[j] 且 i < j,就可以認為這是一組好數對。

請計算這樣的好數對的數量。

輸入輸入只包含一組資料;

第一行只包含乙個正整數 n,表示這個陣列 nums 的大小是 n (1 ≤ n ≤ 1000);

第二行包含 n 個整數 nums[i] (1 ≤ nums[i] ≤ 1000)。

輸出輸出對好數的數量。

樣例輸入

61 2 3 1 1 3

樣例輸出

提示針對樣例輸入,共四組好數對,分別是 a1 == a4,a1 == a5,a3 == a6,a4 == a5 。

思路用乙個nums陣列記錄每乙個值出現的次數。如果某個數出現n次,就有1 + 2 +…+ n - 1種好數對。問題傳化為求前n項和問題。

sn = (an + a1) * n / 2;

題面資料有問題:nums[i]可能為0.

ac**

#include

using

namespace std;

typedef

long

long ll;

const

int maxn =

1e3+5;

int nums[maxn]

;ll getsum

(int n)

void

solve()

ll sum =0;

for(

int i =

0; i <= maxn;

++i)

printf

("%lld\n"

, sum);}

intmain()

2023年樂山師範學院程式設計大賽解題報告

題目描述不明確,很多同學誤以為只是兩個數的組合。解法一 直接列舉,每個數選與不選,總的可能是2的20次方,在可以接受的範圍內。include include include using namespace std typedef long long ll const int max n 30 int...

《陝西師範大學第九屆ACM程式設計競賽》

a 其實並不是特別難的乙個題,想的太複雜了。首先,我們把關係看成能夠傳遞的,那麼我們並查集統計連通塊之後。可以發現,對於乙個連通塊,最優方案肯定只有1個人會沒朋友。因為一直把和當前刪的點有關係的人的人刪進去,最後肯定就能刪完全部點,並且保證只有第乙個進去的人沒朋友。因為要保證字典序最小,我們每次合併...

第十屆北京師範大學程式設計競賽

題目鏈結 a 題 旅遊每只要任選連個沒有走過的葉子節點,經過 p 1 2 p表示葉子節點的個數 任意兩個葉子節點之間有且有唯一一條路徑可走 b題 打表 對於乙個數n,可以用n mod 10 x 取其後x位 用n 10 x 取其前幾位 c題 猜數字 應為題目說了保證有有一次猜最多錯兩位,暴力列舉即可 ...