多校7 HDU-6130 Kolakoski 构造数列 & 模拟
来源:互联网 发布:帝国cms怎么建站 编辑:程序博客网 时间:2024/05/29 17:59
原题链接:
HDU-6130
大意:
生成 Kolakoski 序列,查询第 n 个数。
Kolakoski 满足很有意思的性质。 a[1]=2,a[n]表示第 n 个组有多少个数字(把连续的相同数字看成一组
前几个是 1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,
分组后 1,22,11,2,1,22,1,22,11,2,11,22,1,2,11,2,1,22,11
即1,2 ,2, 1,1,2, 1,2, 2, 1, 2, 2,1,1,2,...
此外还有一些性质:
没有循环节、没有通项公式、无限数列、具体 wiki 上有很多。
思路:
这是一个构造题,准确地说是一个模拟题。。涉及到我的知识盲区了,有必要补一下,比赛的时候队友马上打掉了,当时就不再想了。
#include <bits/stdc++.h>using namespace std;typedef long long ll;#define mem(s,t) memset(s,t,sizeof(s))#define D(v) cout<<#v<<" "<<v<<endl#define inf 0x3f3f3f3f#define pb push_back//#define LOCALinline void read(int &x){ x=0;char p=getchar(); while(!(p<='9'&&p>='0'))p=getchar(); while(p<='9'&&p>='0')x*=10,x+=p-48,p=getchar();}const int MAXN=2e7+10;int a[MAXN]; a[1]=1;a[2]=2; int v=2,j=2; for(int i=2;i<MAXN-5;i++){ int len=a[i]; while(len){ a[j++]=v; len--; if(j>MAXN-5) break; } if(j>MAXN-5) break; v=v%2+1; } int t; read(t); while(t--){ int n; read(n); printf("%d\n",a[n]); }}
阅读全文
0 0
- 多校7 HDU-6130 Kolakoski 构造数列 & 模拟
- HDU 6130 Kolakoski数列
- HDU 6130 Kolakoski(构造序列)
- HDU 6130-Kolakoski(Kolakoski序列)
- 【HDU 6130 Kolakoski】& Kolakoski & 打表
- hdu-6130-Kolakoski
- HDU 6130 Kolakoski
- HDU 6130 Kolakoski
- HDU 6130-Kolakoski
- hdu-6130-Kolakoski
- hdu 6130 Kolakoski
- hdu 6130 Kolakoski
- hdu 6130 Kolakoski
- HDU 6130 Kolakoski【】
- HDU 6130 Kolakoski
- HDU 6130 Kolakoski
- hdu 6130 Kolakoski
- HDU 6130 Kolakoski 打表
- mysql之常用指令语句
- Error mounting /dev/sda1 at /media/XXXX: Command-line `mount -t "ntfs" -o
- 使用加密工具类进行有效的字符串加密——CSDN博客
- 如何解决Mysql中中文乱码的问题
- 冒泡排序算法之JAVA实现
- 多校7 HDU-6130 Kolakoski 构造数列 & 模拟
- nginx 卸载
- Handler相关概念简介
- 致敬高斯林的第一天
- <8/15>集训日记
- mybatis快速入门(一)
- CentOS访问Windows共享文件夹的两种方法
- android studio2.3.2增加jni
- 利用java 写XML 修改XML文件