Kolakosiki序列问题

来源:互联网 发布:erp开源软件 编辑:程序博客网 时间:2024/06/13 04:01

Kolakoski

描述

题目描述:

这是Kolakosiki序列:1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1 ......。 该序列由1和2组成,其第一项等于1.此外,如果将相邻的相同数字视为一组,则将获得1,22,11,2,1,22,1,22,11,2,11,22,1......。 计算每组数字的数量,您将获得序列本身。 所以,序列可以唯一确定。 请告诉HazelFan其第n个元素的值。

输入:

第一行包含一个正整数T(1≤T≤5),表示测试样例数。 对于每个测试样例: 单行包含正整数n(1≤n≤1e7)。

输出:

对于每个测试用例: 单行包含一个非负整数,表示答案。

样例输入

2
1
2

样例输出

1
2


这道题,,,思路很简单,,,代码也很短。。。但是博主。。很久才AC。。。(好菜)

其实重点就是怎么找关系,数量的关系和数字的关系,数量及和下标有关,数字为1或2及和数量及i-1项的数为多少有关。

#include<stdio.h>int a[10000005];int main(){int i,j;int n,res,num,flag,flag2;scanf("%d",&n);a[1] = 1;a[2] = 2;a[3] = 2;flag = 3;flag2 = 2;for(i = 4;i < 1e+7;){num = a[flag];//2for(j = 0;j < num;j ++){if(flag2 == 2)a[i] = 1;elsea[i] = 2;if(j == num-1) flag2 = a[i];i ++;}flag ++;}while(n--){scanf("%d",&res);printf("%d\n",a[res]);}return 0;}


原创粉丝点击