哈理工OJ 1431 摞盘子 (思维水题)

    xiaoxiao2026-08-26  1

    摞盘子 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 169(79 users) Total Accepted: 91(76 users) Rating: Special Judge: No Description Leyni有n个盘子,只要盘子i的半径严格小于盘子j,那么盘子i就可以摞在盘子j上(不允许将两个盘子同时并排摞在一个盘子上,即使半径足够小),Leyni想知道这n个盘子至少要摞几坨。

    Input 输入包含多组测试数据。

    对于每组测试数据:

    第1行,包含一个整数n (1 ≤ n ≤ 105)

    接下来n行,每行包含一个半径r (1 ≤ r ≤ 109),代表着n个盘子的半径。

    处理到文件结束

    Output 对于每组测试数据:

    第1行,输出至少要摞几坨。

    Sample Input 4

    2

    5

    5

    3

    Sample Output 2

    本题只需要找出最多的盘子有几个就好了,具体为什么仔细思考下。 下面是AC代码:

    #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; int a[100005]; int main() { int n; while(~scanf("%d",&n)) { for(int i=0;i<n;i++) { scanf("%d",&a[i]); } sort(a,a+n); int maxn=1,sum=0; for(int i=0;i<n;i++) { if(a[i]==a[i+1]) { sum++; } else { sum++; maxn=max(sum,maxn); sum=0; } } printf("%d\n",maxn); } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-1311590.html
    最新回复(0)