博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单字符串处理 hdu2532 Engine
阅读量:7067 次
发布时间:2019-06-28

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

本来可以把这篇文章放入上一篇文章里,不过做这个题花了一点时间,也有一点收获,同时觉得网上的这个题目可供参考的文章有些少,那么就单独成篇吧。

首先分析下题目思路:

这个题目是个模拟题,步骤也很清晰。

首先需要每行读入,将论文的名字,序号,与被引数放到一个结构体里,同时需要一步处理:将文章名称分为关键字存储。

然后程序进行一次排序,以被引数为第一关键字,以号数为第二关键字排序。

排序之后,按照类似方式读入查询命令,将查询命令分为不同关键字,将这些关键字挨着与论文关键字比较,相同即可输出。

按照这些步骤就可以写出靠谱的代码了,结果我还是wa了三次。。

先上代码,收获就放后面,可忽略。。

1 #include
2 #include
3 #include
4 typedef struct record 5 { 6 int num; 7 int count; 8 int keyL; 9 char name[300]; 10 char afname[300]; 11 char key[11][21]; 12 }Record; 13 Record rec[1001]; 14 Record qy; 15 int divide(char a[],char b[11][21],int n) 16 { 17 int cur=0,j=0; 18 for(int i=0;i
='A') 59 { 60 b[ii]=char(a[ii]+32); 61 } 62 else 63 b[ii]=a[ii]; 64 } 65 66 } 67 int main() 68 { 69 int T,i; 70 while(scanf("%d",&T)) 71 { 72 if(T==0)break; 73 memset(rec,0,sizeof(Record)*T); 74 getchar(); 75 for(i=0;i
hdu 2532

 

代码方面这是第一次全用C写的结构体+重载比较函数构成的多关键字排序,(之前常用C++),

第一次碰到读入一行的问题,解决方法是在用scanf读入之后,要用getchar+gets配合,

第一次处理memset多组初始化问题memset(rec,0,sizeof(Record)*T);+memset(&qy,0,sizeof(Record));配合使用。

其他的一些辅助函数用来模拟的就不值一提了。

非代码方面,这题大体思路昨晚已经有了,但wa了两次,在不知道错误原因的情况下担心wa之后是TLE,所以当时有点心灰意冷,其实最近也一直很忐忑,面试的通知一直没下来,今天妹妹升学宴又出去一天,可晚上回来没想到只用了半小时就调了两个bug出来,而且A了这个少有人问津的题目。虽然心中依然忐忑,依然对未知的错误充满恐惧,但是我相信会好起来的。

---一个事情,自己找不到原因,非常可怕。

转载于:https://www.cnblogs.com/holyprince/p/3283681.html

你可能感兴趣的文章
C#开发微信门户及应用(1)--开始使用微信接口(转)
查看>>
Kali-linux使用社会工程学工具包(SET)
查看>>
ScriptManager(脚本控制器)
查看>>
Android chromium 2
查看>>
poj_3468,线段树成段更新
查看>>
什么是mybatis?
查看>>
【算法导论】学习笔记——第6章 堆排序
查看>>
NS3编译运行
查看>>
Python+Appium自动化环境搭建
查看>>
wap网站seo如何优化呢?
查看>>
Java基础-Date类常用方法介绍
查看>>
js 属性getset
查看>>
cursor:hand与cursor:pointer的区别介绍
查看>>
.net 4.0发布后不能正常显示图片问题
查看>>
小程序使用smart模板的方法
查看>>
HTPC家庭娱乐和XBOX未来发展畅想<另:创业工作机会>
查看>>
MUI下拉刷新
查看>>
C#操纵Excel,此工作薄包含嵌入对象,Office 2007的设定方法
查看>>
【转载】ANSYS 动力分析 (9) - 瞬态动力分析 (1)
查看>>
PHP观察者模式的简单实现
查看>>