zoukankan      html  css  js  c++  java
  • Gym 100712A - Who Is The Winner

    原题见:

    题目要求:两队比赛解决问题并记罚时;解决问题数多则为胜出,解决问题数相同时,惩罚时间小为胜!

    代码如下:

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 #define MAX 105
     5 //两队比赛解决问题并记罚时;s为解决问题数,p为惩罚时间
     6 //s多则为胜出,s相同时,p小为胜! 
     7 using namespace std;
     8 struct team
     9 {
    10     char name[25];
    11     int s,p;
    12 };
    13 
    14 int cmp(team a,team b)
    15 {
    16     return a.s>b.s||a.s==b.s&&a.p<b.p;
    17 }
    18 
    19 int main()
    20 {
    21     team a[MAX];
    22     int i,t,n;;
    23     scanf("%d",&t);
    24     while(t--)
    25     {
    26         scanf("%d",&n);
    27         memset(a,0,sizeof(a));
    28         for(i=1; i<=n ;i++)
    29         {
    30             getchar();
    31             scanf("%s%d%d",a[i].name,&a[i].s,&a[i].p);        
    32         }
    33         sort(a+1,a+1+n,cmp);
    34         printf("%s
    ",a[1].name);
    35     }
    36     return 0; 
    37 }
           memset(起点,0或-1,sizeof());

           其中的memset函数作用是初始化第一个指针变量的元素为第二个数值(通常为0或-1);

           sort函数:1、#include <algorithm>下有一个直接的sort(begin,end)   注意:这是默认是升序排列

                         2、想降序的话要自己写一个比较函数——cmp函数(即compare 比较),然后调用sort(begin,end,compare)

     C语言代码如下:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #define MAX 105
     4 //两队比赛解决问题并记罚时;s为解决问题数,p为惩罚时间
     5 //s多则为胜出,s相同时,p小为胜! 
     6 
     7 struct team
     8 {
     9     char name[25];
    10     int s,p;
    11 };
    12 
    13 int main()
    14 {
    15     team a[MAX];
    16     int i,t,n;
    17     int max=0,maxs=0,maxp=10000; 
    18     scanf("%d",&t);
    19     while(t--)
    20     {
    21         scanf("%d",&n);
    22         max=0;maxs=0;maxp=10000;
    23         for(i=1; i<=n ;i++)
    24         {
    25             getchar();
    26             scanf("%s%d%d",a[i].name,&a[i].s,&a[i].p);
    27             if(a[i].s>maxs)
    28             {
    29                 maxs=a[i].s;
    30                 max=i;
    31                 maxp=a[i].p;
    32             }
    33             else if(a[i].s==maxs)
    34             {
    35                 if(a[i].p<maxp)
    36                    {
    37                     maxp=a[i].p;
    38                     max=i;
    39                 }
    40             }
    41         }
    42         printf("%s
    ",a[max].name);
    43     }
    44     return 0; 
    45 }

             注意排序!

  • 相关阅读:
    鹅厂女专家:用“爱折腾”实现跨界之美
    基于腾讯云的视频聊天研究
    iOS微信内存监控
    2017年数据库技术盘点
    如何做好游戏内实时语音体验
    腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来
    使用腾讯云“自定义监控”监控GPU使用率
    如何在Python中从零开始实现随机森林
    DataGridView 设置某个列为只能为数字
    Ieditor
  • 原文地址:https://www.cnblogs.com/ivangin/p/5191411.html
Copyright © 2011-2022 走看看