很顯然,題目中給出的計算方式(a-b=c),a,b都是未知的,所以唯一的做法是對其中乙個數字在給出的數串當中進行列舉,c是唯一確定的,所以列舉每一位數時對應的匹配數也是對應的,只需要查詢這個對應數在給出資料當中是否存在,則就讓我們聯想到了hash匹配。
由於題目中告訴條件(不同位置的數字一樣的數對算不同的數對),所以對每個數進行hash時需要儲存它出現的次數(下面用struct實現)。
#include#include#include#include#include#include#include#include#define n 1400000
#define ma1 1000000007
#define ma2 317
using namespace std;
struct node;
int num[n],n,c;
node hash[n];
int loca(int x)
int main()
long long ans=0;
scanf("%d%d",&n,&c);
for(int i=1;i<=n;++i)
for(int i=n;i>=1;--i) }
cout<
最好取2個magic數,最後if條件句要特判一下temp>0。
對10個數進行排序
解題思路 可以採用氣泡排序,每次把相鄰的兩個比較大小,然後把大一點兒的資料放在最後面,這樣第一趟下來,最大的那個數就跑到了最後面,下一次排序就不用跟最後乙個數字比較了,然後倒數第二大的數字會在倒數第二.因此可以使用兩個函式,乙個用於控制每一趟比較的元素個數,乙個用於交換 public class m...
cogs 610 數對的個數
輸入檔案 dec.in輸出檔案 dec.out簡單對比 時間限制 1 s 記憶體限制 128 mb description 出題是一件痛苦的事情!題目看多了也有審美疲勞,於是我捨棄了大家所熟悉的a b problem,改用a b了哈哈!好吧,題目是這樣的 給出一串數以及乙個數字c,要求計算出所有a ...
數對的個數 cogs610
description 出題是一件痛苦的事情!題目看多了也有審美疲勞,於是我捨棄了大家所熟悉的a b problem,改用a b了哈哈!好吧,題目是這樣的 給出一串數以及乙個數字c,要求計算出所有a b c的數對的個數。不同位置的數字一樣的數對算不同的數對 input format 第一行包括2個非...