SDUTOJ Message Flood (STL容器求解)
来源:互联网 发布:专业处理淘宝盗图申诉 编辑:程序博客网 时间:2024/06/05 02:40
//这道题太狗了..一般查找的话,不用想,直接就回超时.于是第一次的想法就是构造字典树+查找..妈 蛋 ,SDUTOJ的内存我怀疑是否够65536K.无论怎么优化,直接MLE,悲剧了.最后还是容器求解吧....醉了..先附上MLE代码../*#include<iostream>#include<string.h>#include<stdlib.h>#include<stdio.h>using namespace std;typedef struct trie{int count;struct trie *next[26];}trie;trie *root;void createtrie(char *s){int i;int len=strlen(s);trie *p=root,*q;for(i=0;i<len;i++){int id = s[i]-'a';if(p->next[id]==NULL){ q=new trie;q->count=1;for(int j=0;j<26;j++)q->next[j]=NULL;p->next[id]=q;p=p->next[id];}else{p->next[id]->count++;p=p->next[id];}}p->count=-1;}int findtrie(char *s){int i;int len=strlen(s);trie *p=root;for(i=0;i<len;i++){int id=s[i]-'a';p=p->next[id];if(p==NULL)return 0;if(p->count==-1)return 1;}return 1;}void deal(trie *t){for(int i=0;i<26;i++){if(t->next[i])deal(t->next[i]);}delete t;}void trans(char *s){int len=strlen(s);for(int i=0;i<len;i++){if(s[i]>='A'&&s[i]<='Z')s[i]=s[i]-'A'+'a';}}int main(){int n,m,i,c,o;char s[11],s1[11];while(cin>>n){if(n==0){break;}cin>>m;c=0;root=new trie;for(o=0;o<26;o++)root->next[o]=NULL;for(i=0;i<n;i++){cin>>s;trans(s);createtrie(s);}for(i=0;i<m;i++){cin>>s1;trans(s1);c+=findtrie(s1);}cout<<c<<endl;deal(root);}return 0;}*/下面就是容器求解的正确代码。。#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <set>using namespace std;int main(){ int n,m,i,j,len; char s[30]; while(scanf("%d",&n)!=EOF&&n) { set<string>mp;//声明set容器 set<string>::iterator it;//声明set迭代器 scanf("%d",&m); getchar(); for(i=0; i<n; i++) { gets(s); len=strlen(s); for(j=0; j<len; j++) { s[j]=towlower(s[j]); } mp.insert(s);//向set里加入一个元素 } for(i=0; i<m; i++) { gets(s); len=strlen(s); for(j=0; j<len; j++) { s[j]=towlower(s[j]); } if(mp.count(s))//判断容器里是否存在该元素 mp.erase(s);//如果容器里存在该元素,则删除 } printf("%d\n",mp.size());//输出容器内剩余元素个数 } return 0;}
1 0
- SDUTOJ Message Flood (STL容器求解)
- Message Flood(STL map容器求解)
- Message Flood(STL set容器求解)
- SDUTOJ 1500 Message Flood 【STL】
- Message Flood sdutoj 1500 (STL map 的使用)
- 【1500】Message Flood (SDUTOJ)
- Message Flood(STL)
- STL--D - Message Flood
- Message Flood《STL》
- NOJ1121 Message Flood STL应用
- SDUTOJ 1500 ——Message Flood 字典树或map
- STL --字典树-- Message Flood-----map
- Message Flood
- Message Flood
- Message Flood
- Message Flood
- Message Flood
- Message Flood
- VS2012快捷键大全
- win 7 64位安装oracle 11g前须知
- eventfd与线程间通信
- LIstView中CheckedTextView的应用
- Big Number
- SDUTOJ Message Flood (STL容器求解)
- 接上面极光推送提到的原生推送(APNS)
- Linux系统最大进程数和单进程最大线程数
- 获取SELinux TYPE
- Search in Rotated Sorted Array
- 傅立叶变换及频谱图
- 影片内容相似度计算关键点
- poj 1222 EXTENDED LIGHTS OUT(数学:高斯消元||爆搜:DFS)
- 从C++转C#