score——3354
2015-06-19 19:50 HaodongGUO 阅读(151) 评论(0) 收藏 举报#include<stdio.h>
#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
int main()
{
int n,i,j,sum=0;
char s[81];
scanf("%d%*c",&n);
while(n--)
{
sum=0;
gets(s);
for(i=0;s[i]!='\0';i++)
{
//cout<<sum<<endl;
if(s[i]=='O')
{
sum += 1;
j=i;
while(j-1>=0&&s[j-1]!='X')
{
sum+=1;
j--;
}
}
}
cout<<sum<<endl;
}
return 0;
}
据说是动归题,所以用数组保存中间结果,结果题解有种不伦不类的感觉
贴上题解
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
int main()
{
int n,i,sh,j;
char s[81];int f[81];
scanf("%d%*c",&n);
while(n--)
{
memset(f,0,sizeof(f));
gets(s);
sh=0;
for(i=0;s[i]!='\0';i++)
{
if(s[i]=='O')
{
if(i==0)
{
f[0]=1;
}else{f[i]= 1+f[i-1];}
}
if(s[i]=='X')
{
if(i==0)
{f[0]=0;}
else
{f[i]=f[i-1];}
}
}
for(j=0;j<i;j++)sh+=f[j];
cout<<sh<<endl;
}
return 0;
}
当然此代码仍然并没有提交
浙公网安备 33010602011771号