2017 Multi-University Training Contest - Team 7:1011. Kolakoski(模拟)
2017-08-15 21:36
447 查看
其他题目题解:
2017 Multi-University Training Contest - Team 7:1005. Euler theorem
2017 Multi-University Training Contest - Team 7:1003. Color the chessboard
2017 Multi-University Training Contest - Team 7:1008. Hard challenge
2017 Multi-University Training Contest - Team 7:1002. Build a tree
2017 Multi-University Training Contest - Team 7:1010. Just do it
这题难在题意吧。。
题意:Kolakoski数列仅有1和2组成
前几项如下:1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1
把相邻相同的数拼在一起:1,22,11,2,1,22,1,22,11,2,11,22,1
就可以发现一个神奇的性质:拼接后的序列中每个数的位数构成的新序列刚好是原序列
求这个序列的第n项是什么?
很好办,直接模拟过去,当然也可以输出rand()%2+1,成功率高达20%
2017 Multi-University Training Contest - Team 7:1005. Euler theorem
2017 Multi-University Training Contest - Team 7:1003. Color the chessboard
2017 Multi-University Training Contest - Team 7:1008. Hard challenge
2017 Multi-University Training Contest - Team 7:1002. Build a tree
2017 Multi-University Training Contest - Team 7:1010. Just do it
这题难在题意吧。。
题意:Kolakoski数列仅有1和2组成
前几项如下:1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1
把相邻相同的数拼在一起:1,22,11,2,1,22,1,22,11,2,11,22,1
就可以发现一个神奇的性质:拼接后的序列中每个数的位数构成的新序列刚好是原序列
求这个序列的第n项是什么?
很好办,直接模拟过去,当然也可以输出rand()%2+1,成功率高达20%
#include<stdio.h> int a[10000055] = {0,1,2}; int main(void) { int T, n, i, j, now = 2; for(i=2;i<=10000000;i++) { for(j=now+1;j<=now+a[i]-1;j++) a[j] = a[j-1]; now += a[i]; if(a[now-1]==1) a[now] = 2; else a[now] = 1; if(now>10000000) break; } scanf("%d", &T); while(T--) { scanf("%d", &n); printf("%d\n", a ); } return 0; }
相关文章推荐
- 2017 Multi-University Training Contest - Team 7 1011 Kolakoski
- 2017 Multi-University Training Contest - Team 7 Kolakoski
- 2017 Multi-University Training Contest - Team 2 - 1011
- 2017 Multi-University Training Contest - Team 3:1011&hdu6066、RXD's date
- 2017 Multi-University Training Contest - Team 7:1008. Hard challenge(模拟)
- 2017 Multi-University Training Contest - Team 8 :1011&hdu6143、Killer Names
- 2017 Multi-University Training Contest - Team 5:1011&hdu6095、Rikka with Competition
- 2017 Multi-University Training Contest - Team 1 1011&&HDU 6043 KazaQ's Socks【规律题,数学,水】
- 2017 Multi-University Training Contest - Team 4:1011&hdu6077、Time To Get Up
- 2017 Multi-University Training Contest - Team 9 1004&&HDU 6164 Dying Light【数学+模拟】
- HDU-6058 Kanade's sum - 2017 Multi-University Training Contest - Team 3(思维+模拟链表)
- 2017 Multi-University Training Contest - Team 8 1011& HDU6143 Killer Names(容斥|| 第二类斯特林数)
- 2017 Multi-University Training Contest - Team 3 1011 RXD's date
- 【2017 Multi-University Training Contest - Team 7】Kolakoski
- 2017 Multi-University Training Contest - Team 4 1011 Time To Get Up
- 2017 Multi-University Training Contest - Team 1 1011 KazaQ's Socks
- 2017 Multi-University Training Contest - Team 2 1011 Regular polygon【求平面中正方形的个数】
- HDU 2017 Multi-University Training Contest - Team 4 1009 1011
- 2017 Multi-University Training Contest - Team 6 1011 Classes
- 2017 Multi-University Training Contest - Team 7:hdu6130、Kolakoski