40分用例1,3,5,7对其他不对
  • 板块P1885 Moo
  • 楼主Titan_Hope
  • 当前回复0
  • 已保存回复0
  • 发布时间2020/7/28 15:27
  • 上次更新2023/11/6 21:58:30
查看原帖
40分用例1,3,5,7对其他不对
352285
Titan_Hope楼主2020/7/28 15:27
 
#include<iostream>
using namespace std;
void solution(int n );
int main(void)
{
	int n;
	cin>>n;
	string s0="moo",s1,s2 = s0;
	//考虑下要不要创立这个创立这个就超空间了 
/*	for (int i = 0; i<n; i++)
	{
		s1 = s2 + "m";

			s1 = s1 + "oo";
			for (int k = 0; k<i+1; k++)
				s1 = s1 + "o";
			s1 = s1 + s2;
		

		s2 = s1;
	}*/
	
	
	 //看第n个是什么字母:
	 solution(n) ;
	 //out<<s1[n-1];
	 //cout<<s1[n];
} 
 
void solution(int n)
{
	//看数据有多长
	int s0=3;
	int s1=3;//字符串总长度 
	if(n<=3)
	{
		if(n==1)
		{
			cout<<"m";
		}
		else cout<<"o";
		return ;
	}
	for(int i=1;i<=n;i++)
	{
		s1=s0*2+3+i;
		s0=s1;
		if(n==s1+1) {
			cout<<"m";
			break;
		}
		else if(n>s1+1&&n<=s1+3+i) 
		{
			cout<<"o";
			break;
		}
	//应该不可能在后面半截。
	else if(n>s1+3+i &&n<=2*s1+3+i ) 
	{
		solution(n-s1+i+3+1);
		return ;
	}
	} //算出字符串总长度
	 //看n在什么位置:
/*	if(n>s1/2)//其实肯定在前面一截 
	{
		
	} */
	
return ;	
} 
2020/7/28 15:27
加载中...