zoukankan      html  css  js  c++  java
  • codeup-分组统计

    2066: 分组统计

    Time Limit: 1 Sec  Memory Limit: 32 MB
    Submit: 2038  Solved: 498
    [Submit][Status][Web Board][Creator:Imported]

    Description

    先输入一组数,然后输入其分组,按照分组统计出现次数并输出,参见样例。

    Input

    输入第一行表示样例数m,对于每个样例,第一行为数的个数n,接下来两行分别有n个数,第一行有n个数,第二行的n个数分别对应上一行每个数的分组,n不超过100。

    Output

    输出m行,格式参见样例,按从小到大排。

    Sample Input

    1
    7
    3 2 3 8 8 2 3
    1 2 3 2 1 3 1

    Sample Output

    1={2=0,3=2,8=1}
    2={2=1,3=0,8=1}
    3={2=1,3=1,8=0}

     1 #include <stdio.h>
     2 
     3 //注意,组数不一定连续 
     4 
     5 struct Number{
     6     int zu;
     7     int val;
     8 };
     9 
    10 int main(){
    11     int m, n;
    12     while(scanf("%d", &m) != EOF){
    13         while(m--){
    14             scanf("%d", &n);
    15             Number num[n];
    16             int max=0, maxn=0; //记录出现的组数 
    17             for(int i=0; i<n; i++){
    18                 scanf("%d", &(num[i].val));
    19                 if(num[i].val > maxn){
    20                     maxn = num[i].val;
    21                 }
    22             }
    23             for(int i=0; i<n; i++){
    24                 scanf("%d", &(num[i].zu));
    25                 if(num[i].zu > max){
    26                     max = num[i].zu;
    27                 }
    28             }
    29             int a[max+1][maxn+1];
    30             //初始化不可以用a[max][maxn] = {0}; 
    31             for(int i=0; i<=max; i++){
    32                 for(int j=0; j<=maxn; j++){
    33                     a[i][j] = 0;
    34                 }
    35             }
    36             for(int i=0; i<n; i++){
    37                 a[0][num[i].val] = 1;
    38                 a[num[i].zu][0] = 1;
    39                 a[num[i].zu][num[i].val]++;
    40             }
    41             for(int i=1; i<=max; i++){
    42                 if(a[i][0]==0){
    43                     continue;
    44                 }
    45                 printf("%d={", i);
    46                 for(int j=0; j<=maxn; j++){
    47                     if(a[0][j]==1){
    48                         printf("%d=%d", j, a[i][j]);
    49                         if(j!=maxn){
    50                             printf(",");
    51                         }
    52                     }
    53                 }
    54                 printf("}
    ");
    55             }
    56         }
    57     }
    58     return 0;
    59 }
  • 相关阅读:
    【NOI2008】志愿者招募
    【2010国家集训队】人员雇佣
    html5手机移动端三级联动城市选择器
    WebSocket实现简单的在线聊天
    游戏开发完整学习路线(各个版本都有)
    vs下开发windows服务程序
    解决Firefox下,页面元素不刷新问题
    C# JObject和JArray 的分享
    jQuery如何改变css伪元素样式
    safari 浏览器window.history.go(-1)运行无效解决办法
  • 原文地址:https://www.cnblogs.com/heyour/p/12149895.html
Copyright © 2011-2022 走看看