HDU1894 String Compare 字符串比较
来源:互联网 发布:网络键盘侠 编辑:程序博客网 时间:2024/06/05 13:34
题目链接:HDU1894
这道题不难,但是我掉进了好几个坑= =
1、std::ios::sync_with_stdio(false);
这条语句可以取消输出缓冲的关联,C++的io不仅包括iostream也包含C语言的io, 默认情况下2个缓冲互相同步,这样在程序中可同时使用cin , cout , stdin,stdout。
如果取消了cin.sync_with_stdio(false);这种情况下只可使用cin,在用stdin就产生冲突了。不能跟C的 scanf,sscanf, getchar, fgets之类的一起使用.
切记,如果不加这条语句,cin scanf之类可以一起使用,
如果加了这条语句,一定不能混合使用,只能使用cin cout,否则会出错的。
2、string类用cin输出,cout输出,不能用scanf读入
AC代码
/*2017年7月30日21:57:04HDU1894 WA:11次TLE:4次AC代码 */ #include<stdio.h> #include<string> #include<iostream> #include<algorithm>using namespace std;const int maxn=50000+10;string a[maxn];int main(){ /* 取消同步 来自网上的解释 cin慢是有原因的,其实默认的时候,cin与stdin总是保持同步的, 也就是说这两种方法可以混用,而不必担心文件指针混乱, 同时cout和stdout也一样,两者混用不会输出顺序错乱。 正因为这个兼容性的特性,导致cin有许多额外的开销, 如何禁用这个特性呢?只需一个语句std::iOS::sync_with_stdio(false);, 这样就可以取消cin于stdin的同步了 */ std::ios::sync_with_stdio(false); int t,n,cnt; cin>>t; while(t--){ cnt=0; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } /* 这里排序,主要是为了加快计算,字符串排序 sort只能对c++里面的string串排序,不能对c里面的字符数组排序 先按字典序在按照长度由小到大 */ sort(a,a+n); for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ if(a[i].size()<a[j].size()){ if(a[i][0]!=a[j][0]) continue; if(a[i].compare(0,a[i].size(),a[j],0,a[i].size())==0) cnt++; else break; /* 这个break ,如果当前的a[i] 不是a[j]的前缀,那么剩下的所有a[j] 都不可能有a[i]作为前缀了 */ } /* 这个break,如果当前a[i]的长度大于a[j]的长度,那么按照sort 排序规则,剩下的显然不会有a[i]作为前缀了 */ else break; /* 如果没有这两个break 会超时的! */ } } /* 这是一个坑点,题目说了,只有 大于 11519 才取模! */ if(cnt>11519) cnt=cnt%11519; cout<<cnt<<endl; } return 0;}
阅读全文
0 0
- HDU1894 String Compare 字符串比较
- hdu1894 String Compare(string判断子串)
- iOS compare字符串比较
- HDU1894——字符串处理
- 【LintCode】 Compare Strings 比较字符串
- 用 Compare 函数对字符串进行比较
- NSString字符串比较 compare参数浅谈
- lintcode 比较字符串(Compare Strings ) (Java)
- hust 1004 - String Compare 字符串排序
- 比较(compare)
- String字符串比较探讨
- String中文字符串比较
- 【string 】字符串比较
- String字符串比较
- String源码比较字符串
- Compare Version Numbers 版本大小比较 字符串处理
- mark-点滴积累-字符串比较compare继承与重写
- NSString [a compare:b] NSOrderedSame NSOrderedAscending NSOrderedDescending字符串比较
- 利用qwtplot3d绘制3维图形
- Java 网络IO编程总结(BIO、NIO、AIO)
- SQL优化(索引)
- UVA 1586
- Java源码阅读-HashMap
- HDU1894 String Compare 字符串比较
- Shell学习笔记
- 高频使用命令
- 最短单源路径之dijkstra算法
- CSU1569 Wet Tiles
- 互斥锁的使用
- Oracle查询语句
- SAN、NAS、SCSI、iSCSI等存储基础知识
- 503. Next Greater Element II