Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
不是吧,没用那么多哦In Reply To:这是我见过使用STL最充分的题 Posted by:blablabla at 2006-12-16 16:50:51 //by David #include "cstdlib" #include "cctype" #include "cstring" #include "cstdio" #include "cmath" #include "algorithm" #include "vector" #include "string" #include "iostream" #include "sstream" #include "set" #include "queue" #include "stack" #include "fstream" #include "strstream" using namespace std; typedef __int64 LL; //scanf("%I64d", &x); typedef vector<int> VI; typedef pair<int,int> PII; #define MP make_pair #define FOR(i,a) for( int i = 0 ; i < a ; i ++ ) #define LL(a) a<<1 //a=a*2 LL和RR主要用于线段树 #define RR(a) a<<1|1 //a=a*2+1 const double Pi = acos(-1.0); template<class T> inline void checkmmin(T &a,T b) {if(a < 0 || a > b)a = b;} template<class T> inline void checkmax(T &a,T b) {if(a < b) a = b;} int dx[] = {-1,0,1,0,1,1,-1,-1};//up Right down Left int dy[] = {0,1,0,-1,1,-1,1,-1};//复制strcpy和strncpy //strstr查找子串;strrev对字符串反序 //strncpy后加'\0' //----------------------------------------------------------------- string str[100]; unsigned char a[100][27]; int main() { int i,j,n; memset(a,0,sizeof a); i=0; while(cin>>str[i]) { if(str[i]=="XXXXXX") break; i++; } n=i; sort(str,str+n); for(i=0;i<n;i++) for(j=0;j<str[i].length();j++) a[i][ str[i][j]-'a' ]++; string s; while(cin>>s) { if(s=="XXXXXX") break; unsigned char b[27]; memset(b,0,sizeof b); for(j=0;j<s.length();j++) b[s[j]-'a']++; bool f=1; for(i=0;i<n;i++) { if(s.length()==str[i].length()) { for(j=0;j<27;j++) if(a[i][j]!=b[j]) break; if(j==27) { f=0; cout<<str[i]<<endl; } } } if(f) { cout<<"NOT A VALID WORD"<<endl; } cout<<"******"<<endl; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator