zoukankan      html  css  js  c++  java
  • HDU 1004 题解

    HDU 1004

    【标记】【字符串】【map】
    题目


    Main Idea:

        输入数字N,有N个气球,每行输入气球颜色,最后输出相同颜色气球最多的颜色。
    

    Summary:

        1.用while会造成PE
    
    int N=1;
        while(N!=0){
            scanf("%d",&N);
            
        }
    
        2.熟练运用strcpy、strcmp、strlen等函数
    
        3.关于颜色个数专门开一个数组或者vector来标记
    
        4.用map容器可以很快的解决问题。
    

    Problem Solving Idea

        对于每个输入的字符串用一个二维字符串数组存储,并构建一个元素全为0数组,在二维字符串数组对应的行数进行标记(+1)。如果发现输入字符串在二维字符串数组中已存在,则不新存入字符串,在数组对应的地方++。最后检查数组哪个地方数字最大,则得出二维字符串数组中第几行的字符串是出现次数最多的,输出该字符串。
    

    AC代码(version 1)

    #include <bits/stdc++.h> 
    #define ll long long
    using namespace std;
    
    int Findmax(int record[]){
    	int Find=0,max=0,i=1;
    	for(i=1;i<101;i++){
    		if(max<record[i]){
    			max=record[i];
    			Find=i;
    		}
    	}
    	return Find;
    }
    
    int main(){
    	int N=1;
    	for(;;){
    		scanf("%d",&N);
    		if(N==0)	break;
    		int cnt=0;
    		char compare[103][17];
    		int record[101];
    		memset(record,0,sizeof(record));
    		for(int i0=0;i0<N;i0++){
    			int flag=1,i;
    			char s[17];
    			scanf("%s",s);
    			for(i=1;i<=cnt;i++){
    				if(strcmp(compare[i],s)==0){
    					flag=0;
    					//printf("%d",flag);
    					break;
    				}
    			}
    			if(flag==1){
    				strcpy(compare[++cnt],s);
    				record[cnt]++;
    			}
    			if(flag==0)	record[i]++;
    			
    		}
    		printf("%s
    ",compare[Findmax(record)]);
    	}
    	return 0;
    }
    

    AC代码(version 2)

    #include <bits/stdc++.h> 
    using namespace std;
    typedef long long ll;
    map<string,int> mp;
    int main()
    {
    	int t;
     	while(cin >> t && t != 0)
     	{
     		mp.clear();
     		string p;
     		int maxs = 0;
     		for(int i = 0;i < t;i ++)
     		{
     			string k;
     			cin >> k;
     			mp[k]++;
     			if(mp[k] > maxs)
     			{
     				maxs = mp[k];
     				p = k;
    			}
    		}
    	   cout << p << endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    洛谷P2737 [USACO4.1]麦香牛块Beef McNuggets(DP,裴蜀定理)
    洛谷P4924 魔法少女小Scarlet
    洛谷P3912 素数个数
    洛谷P4016 负载平衡问题(费用流)
    洛谷P2736 [USACO3.4]“破锣摇滚”乐队 Raucous Rockers
    母函数(生成函数)
    洛谷P4086 [USACO17DEC]My Cow Ate My Homework S
    洛谷P5097 [USACO04OPEN]Cave Cows 2(ST表)
    洛谷P2713 罗马游戏(左偏树)
    洛谷P1260 工程规划
  • 原文地址:https://www.cnblogs.com/Fhr2001/p/11959202.html
Copyright © 2011-2022 走看看