| ||||||||||
| 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 | |||||||||
帮我看看啊,为什么超时#include<iostream>
#include<string>
using namespace std;
int val(string t)//计算分数
{
int count=0;
for(int i=0;i<t.length ();i++)
{
switch(t.at(i))
{
case'a':count+=2;break;
case'b':count+=5;break;
case'c':count+=4;break;
case'd':count+=4;break;
case'e':count+=1;break;
case'f':count+=6;break;
case'g':count+=5;break;
case'h':count+=5;break;
case'i':count+=1;break;
case'j':count+=7;break;
case'k':count+=6;break;
case'l':count+=3;break;
case'm':count+=5;break;
case'n':count+=2;break;
case'o':count+=3;break;
case'p':count+=5;break;
case'q':count+=7;break;
case'r':count+=2;break;
case's':count+=1;break;
case't':count+=2;break;
case'u':count+=4;break;
case'v':count+=6;break;
case'w':count+=6;break;
case'x':count+=7;break;
case'y':count+=5;break;
case'z':count+=7;break;
}
}
return count;
}
bool isright(int *num,string b)//判断是否有多余字母
{
int co[26]={0};
for(int i=0;i<b.length();i++)
{
int n=b.at(i)-97;
co[n]++;
if(co[n]>num[n])
return false;
}
return true;
}
int main()
{
string a[40000];//保存字符串
string x;//保存原字符串
cin>>x;
int num[26]={0};
int value[40000];//保存每个字符串的分数
int len[40000];
int mm=val(x);//保存原字符串的分数
for(int i=0;i<x.length();i++)
{
num[int(x.at(i))-97]++;
}
int z=0;
int max=0;
for(i=0;i<40000;i++)
{
cin>>a[i];
if(a[i].at(0)=='.') break;
if(z==-1)continue;
len[i]=a[i].length ();
if(len[i]>7) continue;
if(z==0&&isright(num,a[i]))
{
value[i]=val(a[i]);
if(value[i]==mm)
{
z=-1;
}
}
}
// if(z==-1)
// {
// cout<<mm<<endl;
// return 0;
// }
for(int j=0;j<i;j++)
{
if(value[i]<0) continue;
if(value[j]>max)
max=value[j];
if(len[j]==7) continue;
for(int k=j+1;k<i;k++)
{
if(len[k]==7) continue;
if(len[j]+len[k]>7) continue;
string y=a[j]+a[k];
if(isright(num,y)&&value[j]+value[k]>max) max=val(y);
if(max==mm)
{
cout<<mm<<endl;
return 0;
}
}
}
cout<<max<<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