HDU 6130 Kolakoski【】
2017-08-16 15:17
357 查看
Kolakoski
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 713 Accepted Submission(s): 368
Problem Description
This is Kolakosiki sequence: 1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1…….
This sequence consists of 1 and 2,
and its first term equals 1.
Besides, if you see adjacent and equal terms as one group, you will get 1,22,11,2,1,22,1,22,11,2,11,22,1…….
Count number of terms in every group, you will get the sequence itself. Now, the sequence can be uniquely determined. Please tell HazelFan its nth
element.
Input
The first line contains a positive integer T(1≤T≤5),
denoting the number of test cases.
For each test case:
A single line contains a positive integer n(1≤n≤107).
Output
For each test case:
A single line contains a nonnegative integer, denoting the answer.
Sample Input
2
1
2
Sample Output
1
2
Source
2017 Multi-University Training Contest - Team 7
思路:根据题意可发现,第一个数列的第i位上的数字就是第二个数列第i组合的个数,然后就可以写出数列的内容。
以下是Kolakoski数列:$1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1……$,这个数列仅有11和22组成,并且第一项是11。同时还满足一个性质,如果把相邻且相同的项看成一组,可以得到$1,22,11,2,1,22,1,22,11,2,11,22,1……$,计算每一组项的数量,则能得到这个序列本身。这个数列是可以被唯一确定的,请求出它的第nn项。1\leq
n\leq10^71≤n≤107。
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<queue> #include<stack> #include<vector> #include<map> #include<set> #include<algorithm> using namespace std; #define ll long long #define ms(a,b) memset(a,b,sizeof(a)) const int M=1e7+10; const int MM=2e3+10; const int inf=0x3f3f3f3f; const int mod=1e9+7;; const double eps=1e-8; int n,m; int a[M]; void init() { a[1]=1,a[2]=2; int k=1; for(int i=1;i<M;i++){ if(k>M)break; if(i%2==0){ if(a[i]==2)a[k++]=2,a[k++]=2; else a[k++]=2; } else{ if(a[i]==2)a[k++]=1,a[k++]=1; else a[k++]=1; } } } int main() { int t; init(); scanf("%d",&t); while(t--){ scanf("%d",&n); printf("%d\n",a ); } return 0; }
相关文章推荐
- hdu 6130 Kolakoski - 多校联盟7
- HDU 6130 Kolakoski
- HDU 6130 Kolakoski
- HDU 6130 Kolakoski(构造序列)
- HDU 6130 Kolakoski【找规律】
- hdu-6130-Kolakoski
- HDU 6130-Kolakoski(Kolakoski序列)
- hdu 6130 Kolakoski
- 【HDU 6130 Kolakoski】& Kolakoski & 打表
- HDU 6130 Kolakoski(水~)
- HDU 6130-Kolakoski
- 17暑假多校联赛7.11 HDU 6130 Kolakoski
- HDU 6130 Kolakoski 打表
- HDU_6130 Kolakoski 【规律】
- 多校7 HDU-6130 Kolakoski 构造数列 & 模拟
- 2017杭电多校第七场1011 Kolakoski(签到题)HDU 6130
- hdu 6130 Kolakoski
- HDU 6130 Kolakoski(数学)
- HDU 6130 Kolakoski
- hdu 6130 Kolakoski