問題 B 分組統計

2022-01-26 04:35:27 字數 3298 閱讀 1160

問題 b: 分組統計時間限制: 1 sec 記憶體限制: 32 mb

提交: 416 解決: 107

[提交][狀態][討論版][命題人:外部匯入]

先輸入一組數,然後輸入其分組,按照分組統計出現次數並輸出,參見樣例。

輸入第一行表示樣例數m,對於每個樣例,第一行為數的個數n,接下來兩行分別有n個數,第一行有n個數,第二行的n個數分別對應上一行每個數的分組,n不超過100。

輸出m行,格式參見樣例,按從小到大排。

1

73 2 3 8 8 2 3

1 2 3 2 1 3 1

1=

2=3=

這個是典型的雜湊演算法了。

這個樣例是統計每組數字裡面各數字(出現在第一行的數字,這一次是3,2,8)的個數。

所以每一組數字要個陣列3,記錄2,3,8的個數

先搞乙個在n個數字第一次出現時的陣列num,記錄那些數字出現了,出現了幾次,以該數字為下標的陣列值++,那這個陣列大小應該是很大的啊 。

再來就是分組了,再來乙個陣列zu,以上一行出現過數字為下標,值為所分的組。

組數肯定要小於n

這問題幾個月之前就遇到過了。

#include #include #include //#include #define maxn 10005

int cmp(const void*a, const void*b)

int main();

//int temp[n+1] = int_max;

int temp[n+1] = ;

for(int i = 1; i <= n; i++)

int zu[n+1] = , num = 0, kzu[n+1] = ;

for(int i = 1; i <= n; i++)

/*二維陣列裡行代表這個數,列代表該行對應數在某組裡出現的次數*/

for(int i = 1; i <= n; i++)

//num記錄分的組的個數

/*該對第一行的n個數按大小排序了*/

qsort(temp+1, n, sizeof(temp[0]), cmp);

/*for(int i = 1; i <= n; i++)//排序正確*/

/*剔除重複項,建立新陣列*/

int newtemp[n+1], newxu = 2;

newtemp[1] = temp[1];

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

/*for(int i = 1; i < newxu; i++)//剔除重複項,新陣列正確*/

for(int j = 1; j <= num; j++)

printf("}\n");

} }

} return 0;

}

s066 problem b 分組統計 - csdn部落格

#include #include #include using namespace std;

const int maxn = 102;

int main()

, classflag[maxn] = , class[maxn], clan = 0, num[maxn], tmp, numui[maxn], n = 0;

cin >> n;

for (int i = 0; i < n; ++i)

cin >> num[i];//讀入第一行所有數

for (int i = 0; i < n; ++i)

table[tmp][table[tmp][maxn - 1]++] = num[i];//建立這個表,第幾組就是第幾行 ,避免了陣列越界

}//該數是第幾組存進第幾行的,存進哪一列呢?從第1列,開始存,該行最後一列記錄了該組的數字個數

sort(class, class + clan);//組序號排序 ,clan記錄組的個數

sort(num, num + n);//第一行數字排序

/*剔除重複項,建立新陣列*/

for (int i = 0; i < n; ++i)

}for (int k = 0; k < clan; ++k)

printf("%d=%d", numui[h], c);

if (h < n-1)

printf(",");

}printf("}\n");}}

}#ifdef _debug

cin.close();

system("pause");

#endif // _debug

return 0;

}

c/c++[codeup 2066]分組統計 - csdn部落格

c++ stl演算法系列4---unique , unique_copy函式 - 夏雪冬日 -

#include #include //max_element,unique_copy

#include #include using namespace std;

int main()

cout << '}' << endl;}}

}return 0;

}

這裡比較重要的是,取得容器內最大值,防止二維陣列越界問題。

c++ stl之min_element()與max_element()(取容器中的最大最小值) - angel_kitty -

#include#includeusing namespace std;  

bool cmp(int a,int b)

int main()

; cout<<"最小值是 "<<*min_element(num,num+6)cout<<"最大值是 "<<*max_element(num,num+6,cmp)也就是說,要置零,使用memset最好了。

memset(cur,0,sizeof(cur))

#include #include //max_element,unique_copy

#include #include using namespace std;

int main()

cout << '}' << endl;}}

}return 0;

}

c 問題 B 分組統計(用set解決)

先輸入一組數,然後輸入其分組,按照分組統計出現次數並輸出,參見樣例。輸入第一行表示樣例數m,對於每個樣例,第一行為數的個數n,接下來兩行分別有n個數,第一行有n個數,第二行的n個數分別對應上一行每個數的分組,n不超過100。輸出m行,格式參見樣例,按從小到大排。173 2388 2312 3213 ...

Mysql 解決 分組統計問題

我有四張表a b c d,a b c d a b a c a d d e 1 1 1 1 1 a a 1 2 2 1 3 2 b b 2 3 4 1 4 3 c c 3 4 6 2 1 4 d d 4 現在要用一條sql語句將a表所有的列,b表對與a表a欄位 相關聯的列求count,通過c表,將d表...

XYNUOJ 問題 B 彩燈統計

時間限制 1 sec 記憶體限制 128 mb 提交 34 解決 12 提交 狀態 討論版 兒童樂園有各種顏色的彩燈,小明想要知道哪種顏色的燈數量最多。但是由於資料過於龐大,小明也束手無策,所以他想請聰明如你的acmer來幫忙。第一行輸入彩燈的數量n 1 n 1000 接下來的n行輸入n個字串表示彩...