首页 > 代码库 > RQNOJ144伯虎点秋香(水)

RQNOJ144伯虎点秋香(水)

 

又是一道水题,转语言就是这样,经常被水题虐翻。。。

这种水题似乎不适合写出来,不过也没办法,没题目交了
字符串处理:           RQNOJ144 伯虎点秋香

题目描述

题目描述:

上次唐伯虎点秋香那是秋香自己跑出来滴,这次他可要真的自己点了,下面由我来描述一下点的规则.当然事先要列举所有姑娘的匿名咯,我要对他进行1次提问,我问他对第几个姑娘感兴趣,他选的当然是他的意中人咯.

输入格式

第一行为一个整数小于1001的整数n,k.从第二行到第n+1行是对每个姑娘的名字.

输出格式

输出文件有且仅有一行,为他点中的“秋香”即第k个名字

 

 

样例输入:

5 3
     faff
     adf
     beig
     plaie
     zfdeegeetulae

样例输出:

faff

 

 

 

必须吐槽RQNOJ的设计,怎么复制都不行。。。

思路很明显:读入,将可爱的字符串们进行比较排序(主要是我不会写C++字符串快排,就用了个冒泡),输出

无聊的思路,但是第一次做字符串处理总会有麻烦的。。。。。

 

 

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
using namespace std;
char strings[2005][2005];
char tmp[2005];

int n,k,i,j;
int main()
{
   cin>>n>>k;
   for (i=1;i<=n;i++) cin>>strings[i];
   for (i=1;i<=n-1;i++) 
    {
        for(j=i+1;j<=n;j++) 
        {
            if (strcmp(strings[i],strings[j])>0)
            {
                strcpy(tmp,strings[i]);
                strcpy(strings[i],strings[j]);
                strcpy(strings[j],tmp);
            }   
        }  
    }
    cout<<strings[k];
   return 0;
}
  • 测试点1 Accepted / 4ms / 7048kB
  • 测试点2 Accepted / 15ms / 7048kB
  • 测试点3 Accepted / 27ms / 7048kB
  • 测试点4 Accepted / 50ms / 7048kB
  • 测试点5 Accepted / 42ms / 7048kB
  • 测试点6 Accepted / 20ms / 7048kB
  • 测试点7 Accepted / 34ms / 7048kB
  • 测试点8 Accepted / 62ms / 7048kB
  • 测试点9 Accepted / 25ms / 7048kB
  • 测试点10 Accepted / 10ms / 7048kB
过是可以轻松过掉,但是居然有耗时。。。据说有神牛5行代码。。不是很相信
反思一下,字符串处理:1.赋值是没有用的 不能写string1=string2;要写strcpy(string1,string2);(前面的写法会报错)
                            2.比较大小不能用 if (string1>string2) 要写 if (strcmp(string1,string2)>0) ;(前面的写法测试中似乎可以过,但是在实际代码运行中不会起到作用,整个冒泡排序将无效)
                            3.定义字符串:如代码 char strings[2005][2005];
                                                       char tmp[2005];
                           但是切记,一切关于字符串的都要include<cstring>
  字符串复习网站:http://www.jb51.net/article/37410.htm