zoukankan      html  css  js  c++  java
  • PAT A1083!

    网上的博客贴实在毫无灵魂,这道题第三个测试点如果最后一行输出完后,如果不多输出一个换行,就会被判格式错误。这样一个明显令人无语的判定竟然没人吐槽更让人无语。

    前景提要:目前刷的40多道PATA题中有多行输出的大部分会有一句要求,即最后一行后面不得有多余的换行,而没有这句话的除这题外,避免输出这个多余的换行都能顺利通过,于是只在多行输出中间加换行,而最后一行输出结束后不输出换行,是我应该也是其他人的惯常做法。

    顺便贴一下我的代码,比网上看到的几个其他人的做法要好。他们的做法大同小异,都是把数据记录在一个无序的结构体数组中,排序,轮询判断输出。时间复杂度是n + nlogn + n,而我的做法是直接将对应name和id记在以grade为下标的结构体数组中,第二步便可轮询指定区间输出,时间复杂度为n + n。

     1 #define _CRT_SECURE_NO_WARNINGS
     2 
     3 #include <cstdio>
     4 #include <string>
     5 #include <iostream>
     6 using namespace std;
     7 
     8 struct Grade {
     9     string name;
    10     string id;
    11     bool flag;
    12     Grade()
    13     {
    14         flag = false;    //true时被使用
    15     }
    16 }grade[105];
    17 
    18 int main()
    19 {
    20     int n;
    21     int grade1, grade2;
    22     bool exist = false;
    23     scanf("%d", &n);
    24 for (int i = 0; i < n; i++) 25 { 26 int tempG; 27 string tempN, tempId; 28 cin >> tempN >> tempId; 29 scanf("%d", &tempG); 30 grade[tempG].flag = true; 31 grade[tempG].id = tempId; 32 grade[tempG].name = tempN; 33 }
    34 scanf("%d%d", &grade1, &grade2);
    35 for (int g = grade2; g >= grade1; g--) 36 { 37 if (grade[g].flag == true) 38 { 39 //if (g < grade2) printf(" "); 40 exist = true; 41 cout << grade[g].name << " " << grade[g].id << endl; 42 } 43 }
    44 if (exist == false) printf("NONE"); 45 46 return 0; 47 }
  • 相关阅读:
    【URL重写】IIS7配置URL重写
    【IIS7.5】Asp文件上传限制,加载页面大小限制
    msxml3.dll 错误 '800c0005' 系统错误: -2146697211。
    【转】修改3389远程端口的批处理文件.bat
    第一篇:无角牛MVC通用后台数据库设计
    无角牛MVC通用后台
    个人收集资料整理-WebForm
    个人收集资料整理-WinForm
    win7系统中桌面图标显示不正常问题
    ASP.NET MVC 第六回 过滤器Filter
  • 原文地址:https://www.cnblogs.com/shooting-gamer/p/13538900.html
Copyright © 2011-2022 走看看