题目  http://vjudge.net/contest/view.action?cid=51142#problem/G

自己做的结构体

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <algorithm>

using namespace std;

struct Name
{
    char name[35];   ///输入之前的12个名字
    char check[35];   ///输入之后进行比较的名字
} str[105];

int main()
{
    int t,n,k;   ///t组测试数据  n个名字
    int num;   ///标记奖牌
    int each,total[105];  ///每队猜对的数  放到一个数组里
    char medal[35];
    for(int i=0; i<12; i++)
        cin>>str[i].name;

cin>>t;
    memset(total,0,sizeof(total));
    k=0;
    while(t--)
    {
        each=0;
        cin>>n;
        for(int j=0; j<n; j++)
        {
            cin>>str[j].check;
            gets(medal);
            int len=strlen(medal);
            if(medal[len-1]=='d')  ///金
                num=0;
            else if(medal[len-1]=='e')  ///铜
                num=1;
            else  if(medal[len-1]=='r')  ///银
                num=2;
            for(int i=0; i<12; i++)
            {
                if((strcmp(str[j].check,str[i].name)==0)&&(((i==0||i==1||i==2||i==3)&&num==0)||((i==4||i==5||i==6||i==7)&&num==2)||((i==8||i==9||i==10||i==11)&&num==1)))
                    each++;
            }
        }
        total[k]=each;
        k++;
    }
    int ss=1;
    sort(total,total+k);
    for(int i=0; i<k-1; i++)
    {
        if(total[i]==total[k-1])
        ss++;
    }
      cout<<ss*5<<endl;
    return 0;
}

map:

#include <iostream>
#include <stdio.h>
#include <map>
#include <string.h> using namespace std;
int p[105]; int main()
{
    string d;
    memset(p,0,sizeof(p));
    map<string,string>Map;
    for(int i=0;i<12;i++)
    {
        cin>>d;
        if(i>=0&&i<=3) Map[d]="gold";   ///我的理解哦  将字符串d覆盖成gold
        else if(i>=4&&i<=7)  Map[d]="silver";
        else  Map[d]="bronze";
    }
    int n,t;
    int maxx;maxx=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {         cin>>t;
        string a,b,c;
        for(int j=0;j<t;j++)
        {
            cin>>a>>b>>c;
            if(c==Map[a])  p[i]++;  ///如果覆盖后的a串等于c串  就++;
        }
        maxx=max(maxx,p[i]);
    }
    int sum=0;
    for(int i=0;i<n;i++)
    {
        if(maxx==p[i])
        sum++;
    }
    cout<<sum*5<<endl;
    return 0;
}

初次见识结构体与map的区别的更多相关文章

  1. C#中结构体和类的区别

    结构体和类同样能够定义字段,方法和构造函数,都能实例化对象,这样看来结构体和类的功能好像是一样的了,但是他们在数据的存储上是不一样的 C#结构体和类的区别问题:这两种数据类型的本质区别主要是各自指向的 ...

  2. C#中结构体与类的区别

    一.结构体和类非常相似 1,定义和使用非常相似,例子如下:public struct Student{    string Name;    int Age;}public class Questio ...

  3. [转]C#中的结构体与类的区别

    C#中的结构体与类的区别   经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字cla ...

  4. C#结构体和类的区别(转)

    结构体和类的区别:    在做一个项目时,使用了较多的结构体,并且存在一些结构体的嵌套,即某结构体成员集合包含另一个结构体等,总是出现一些奇怪的错误,才终于下决心好好分析一下到底类和结构体有啥不同,虽 ...

  5. 结构体作为map的key或放入set中,需要重载<运算符

    结构体作为map的key或放入set中,需要重载<运算符,如下: typedef struct tagRoadKey{    int m_i32Type;    int m_i32Scale; ...

  6. GO学习-(38) Go语言结构体转map[string]interface{}的若干方法

    结构体转map[string]interface{}的若干方法 本文介绍了Go语言中将结构体转成map[string]interface{}时你需要了解的"坑",也有你需要知道的若 ...

  7. Swift基础语法(五)枚举、结构体与类的区别

    swift中的结构体值可以是整型.浮点型.字符串.字符.元祖,如果不赋值默认为整型且从0开始计数,如果为整型枚举且要求不是从0开始只需指定枚举的第一个值以后的值自动依次加1 引用方式也与oc有所出入 ...

  8. C#中的结构体与类的区别

    经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...

  9. 【 转】 C/C++结构体和联合体的区别

    联合体用途:使几个不同类型的变量共占一段内存(相互覆盖) 结构体是一种构造数据类型用途:把不同类型的数据组合成一个整体-------自定义数据类型 总结: 声明一个联合体: union abc { i ...

随机推荐

  1. python基础易错题

    1.以下代码输入什么: class Person: a = 1 def __init__(self): pass def getAge(self): print(__name__) p = Perso ...

  2. PHP编程时的规范化命名

    要想成为一名“合格”的程序员,就必须要有良好的编程习惯和规范,这样做的好处有很多,诸如:可以提高代码质量,提高程序的可维护性,提高开发速度和效率等.以下就简要的列出几条日常编写程序时大概要注意的一些“ ...

  3. PS制作纸质复古野外露营插画分享

    经常有人说一些复古风,就觉得蛮难,其实制作过程其实没有想象中复杂,从1850年到2017年,通过这160多年里的平面设计,给我们的作品添加上一些新鲜的灵感和活力,本次教程就来教大家用PS做出耐看的纸质 ...

  4. django数据库多对多修改对应关系

    obj = models.Book.objects.get(id=1) #添加对应关系,给书添加作者# obj.m.add(3)# obj.m.add(2,4)# obj.m.add(*[1,2,3, ...

  5. Spring MVC 中的 forward redirect Flash属性

    forward:转发 redirect:重定向 -- 转发比重定向快,因为重定向经过客户端,而转发并没有. -- 重定向能够重定向到一个外部网站,但转发不行. -- 重定向能够避免在用户重新加载页面时 ...

  6. Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

    一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...

  7. Python 递归函数 详解

    Python 递归函数 详解   在函数内调用当前函数本身的函数就是递归函数   下面是一个递归函数的实例: 第一次接触递归函数的人,都会被它调用本身而搞得晕头转向,而且看上面的函数调用,得到的结果会 ...

  8. 再读c++primer plus 002

    1.读取char值时,与读取其它基本类型一样,cin将忽略空格和换行符,函数cin.get(ch)读取输入的下一个字符(即使是空格),并将其赋给变量ch. 2.指针和const:(1)让指针指向一个常 ...

  9. 43.Charles抓包(iOS的http/https请求)

    Charles安装 HTTP抓包 HTTPS抓包     1. Charles安装 官网下载安装Charles: https://www.charlesproxy.com/download/ 2. H ...

  10. 【转】利用virtualenv管理Python环境

    virtualenv virtualenv用于创建独立的Python环境,多个python相互独立,互不影响,它能够:1. 在没有权限的情况下安装新套件2. 不同应用可以使用不同的套件版本3. 套件升 ...