HDU 1251 统计难题(字典数)
2016-07-30 14:14
465 查看
一个很典型的字典数题,不需要什么技巧模板就可以过,但是我在做这道题时出现一个状况,可以说也是学到了吧O(∩_∩)O
因为我是在linux下写的这道题,在字符串输入时一直选择了gets()函数,但是linux下的gcc好像不支持这个函数,上网搜了几个解决办法:
1 下载一个readliine-dev包
2 自己写一个readline.h的头文件
3 改用fgets函数,fgets函数跟gets函数比较相似但是还是有不同的,输入格式是这样的:
来说一说fgets(..)函数。
原型 char * fgets(char * s, int n,FILE *stream);
参数:
s: 字符型指针,指向存储读入数据的缓冲区的地址。
n: 从流中读入n-1个字符
stream : 指向读取的流。
返回值:
1. 当n<=0 时返回NULL,即空指针。
2. 当n=1 时,返回空串"".
3. 如果读入成功,则返回缓冲区的地址。
4. 如果读入错误或遇到文件结尾(EOF),则返回NULL.
这一部分摘自c语言文件操作之fgets函数
以下是代码(代码选用的是之后用fgets函数解决的):
因为我是在linux下写的这道题,在字符串输入时一直选择了gets()函数,但是linux下的gcc好像不支持这个函数,上网搜了几个解决办法:
1 下载一个readliine-dev包
2 自己写一个readline.h的头文件
3 改用fgets函数,fgets函数跟gets函数比较相似但是还是有不同的,输入格式是这样的:
来说一说fgets(..)函数。
原型 char * fgets(char * s, int n,FILE *stream);
参数:
s: 字符型指针,指向存储读入数据的缓冲区的地址。
n: 从流中读入n-1个字符
stream : 指向读取的流。
返回值:
1. 当n<=0 时返回NULL,即空指针。
2. 当n=1 时,返回空串"".
3. 如果读入成功,则返回缓冲区的地址。
4. 如果读入错误或遇到文件结尾(EOF),则返回NULL.
这一部分摘自c语言文件操作之fgets函数
以下是代码(代码选用的是之后用fgets函数解决的):
#include <iostream> #include <cstdio> #include <cstring> using namespace std; struct node { int count; node *next[26]; node() { memset(next,NULL,sizeof(next)); count=0; } }root; void Buildtree(char *str) { int len=strlen(str); node *p=&root,*q; for(int i=0;i<len;++i) { int id=str[i]-'a'; if(p->next[id]==NULL) p->next[id]=new node(); p=p->next[id]; p->count++; } } int search(char *str) { int len=strlen(str); int id; node *p=&root; for(int i=0;i<len;++i) { id=str[i]-'a'; if(p->next[id]==NULL) return 0; p=p->next[id]; } return p->count; } int main() { char s[20]; while(fgets(s,20,stdin)&&s[0]!='\n') { int len=strlen(s); s[len-1]='\0'; Buildtree(s); } while(fgets(s,20,stdin)) { int len=strlen(s); s[len-1]='\0'; int ans=search(s); printf("%d\n",ans); } return 0; }
相关文章推荐
- JavaSE基础之System类的常用方法
- Python爬虫入门二之Urllib库的高级用法
- 【分享】娇蛮之吻系列(つよきす)【汉化硬盘版+日文硬盘版】)[带全CG存档&攻略+免安装&卸载+日本语启动&打开存档补丁]
- HDU 5769 Substring
- 一种终端应用动态适配智能终端屏幕的方法及系统
- 笔记
- 使用 JavaScript 和 canvas 做精确的像素碰撞检测
- 2131数据结构实验之栈一:进制转换
- Java递归实现全排列
- Boost库中scoped_array
- BZOJ2243: [SDOI2011]染色 树链剖分
- py-faster-rcnn_caffemodel对人脸进行标注
- 监控之Nagios+Nrpe
- 实时日志收集方法、系统和应用服务器集群
- 输出打印101-1000之间所有的素数
- Oracle 序列的创建与运用 内含约束补充内容
- 高德云检索
- 卡尔曼滤波(Kalman filtering)小结
- 四种常见的 POST 提交数据方式
- HDU 1.1.5