博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杭电2093
阅读量:5132 次
发布时间:2019-06-13

本文共 1063 字,大约阅读时间需要 3 分钟。

此题应用了结构体数组,给人的感觉有点像贪心,但事实上比贪心简单多了哈!!!

此题的思路跟贪心的问题差不太多!!具体说明见程序!!
关于sort()函数的讲解请参考:
关于memeset()函数的讲解请参考: 
这里不做过多的说明!!!

 

#include<iostream>

#include<algorithm>
#include<iomanip>
using namespace std;
struct Student{
    char name[11];
    int solve;
 int time;
}data[10000];//定义结构体数组!!!
bool cmp(const Student &a,const Student &b)//sort比较函数用来,排序!!!
{
    if(a.solve!=b.solve)
     if(a.solve>b.solve)
        return true;
     else
     return false;
 else if(a.time!=b.time)
        return a.time<b.time;
  else
  return (strcmp(a.name,b.name)<0);
}

int main()//主函数!!
  {
   int n,m,k=0,i,l;
     cin>>n>>m;
  memset(data,0,sizeof(data));//memeset()函数对数组进行清零!!!
    while(cin>>data[k].name)
  {
   
    for(i=0;i<n;i++)
    {
    int s;
    char ch;
    cin>>s;
    if(s<=0)
   continue;
    data[k].solve++;
    data[k].time+=s;
    if(getchar()=='(')
    {
     cin>>l;
     cin>>ch;
     data[k].time+=l*m;
    }
    }
    k++;//输入数据!!!
    }
    sort(data,data+k,cmp);//排序!
       for(i=0;i<k;i++)
      cout<<left<<setw(10)<<data[i].name<<' '<<right<<setw(2)<<data[i].solve<<' '<<setw(4)<<data[i].time<<endl;
    return 0;//按要求的格式输出!!关于此处的疑问可参考:
}
最后祝你成功AC!!!哈!

转载于:https://www.cnblogs.com/xiohao/archive/2012/11/26/2789738.html

你可能感兴趣的文章
css 选择器
查看>>
线程池
查看>>
qqq
查看>>
数据库最大连接数
查看>>
java实现文件的移动
查看>>
CDQ解决一些三维偏序的问题
查看>>
CocoaPods在OS X Yosemite上突然不能用了的解决办法
查看>>
移动端bug集合
查看>>
day07_mysql基本操作
查看>>
js闭包的用途
查看>>
分布式系统关注点(8)——99%的人都能看懂的「熔断」以及最佳实践
查看>>
黑客攻防技术宝典web实战篇:利用信息泄露习题
查看>>
临时和永久关闭Selinux
查看>>
ES6学习笔记(四)-数值扩展
查看>>
类似腾讯手机管家应用android源码
查看>>
Ubuntu里面vi编辑器在编辑文本时 如何在所有行行首或行尾插入字符
查看>>
Oracle Procedure
查看>>
2017.12.7 URAT 串口通信
查看>>
mysql隔离级别与锁,接口并发响应速度的关系(2)
查看>>
STC51几种简单的延时函数
查看>>