hdu 1880 魔咒词典
2016-06-12 09:25
405 查看
用map做超内存,然后老老实实的用普通方法去做秒了!
map方法(Memory Limit Exceeded):
普通方法:
map方法(Memory Limit Exceeded):
#include<bits/stdc++.h> using namespace std; int main() { string str; map<string,string>pq; while(getline(cin,str),str!="@END@") { string str1; int pn=str.find(']'); str1=str.substr(0,pn+1); pq[str1]=str.substr(pn+2,str.length()-1); str1=str.substr(1,pn-1); pq[str.substr(pn+2,str.length()-1)]=str1; } int t; cin>>t; getchar(); while(t--) { getline(cin,str); if(pq[str].size()) cout<<pq[str]<<"\n"; else cout<<"what?\n"; } return 0; }
普通方法:
#include<bits/stdc++.h> using namespace std; struct point { string m,g; }pq[100005]; int main () { string str; int k=0,pn; while(getline(cin,str),str!="@END@") { pn=str.find(']'); pq[k].m=str.substr(0,pn+1); pq[k].g=str.substr(pn+2,str.length()-1); k++; } int t; cin>>t; getchar(); while(t--) { int f=0; getline(cin,str); for(int i=0;i<k;i++) { if(str==pq[i].m) { f=1; cout<<pq[i].g<<"\n"; break; } if(str==pq[i].g) { f=1; cout<<pq[i].m.substr(1,pn-1)<<"\n"; break; } } if(!f) cout<<"what?\n"; } return 0; }
相关文章推荐
- 【HDU 5366】The mook jong 详解
- 【HDU 2136】Largest prime factor 详细图解
- 【HDU 1568】Fibonacci 数学公式 详解
- HDU 1568
- HDU1290
- HDU1568(Fobonacci公式)
- HDU ACM Step 2.2.2 Joseph(约瑟夫环问题)
- HDU 1405
- HDU 1297
- hdu 1205
- hdu 2087
- hdu 1016
- HDU 4898 The Revenge of the Princess’ Knight ( 2014 Multi-University Training Contest 4 )
- HDU 5592 ZYB's Premutation 线段树(查找动态区间第K大)
- HDU 5240 Exam (好水的题)
- HDU5237 Base64 大模拟
- HDU 1000
- HDU 1001
- HDU 1016 Prime Ring Problem
- HDU 1017 A Mathematical Curiosity