多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > UVA 10479 The Hendrie Sequence 規律

UVA 10479 The Hendrie Sequence 規律

來源:程序員人生   發布時間:2015-05-27 08:20:15 閱讀次數:3284次

題目大意:1個序列,剛開始由0變到了1,接著往后1個個變化下去
變化的規則是,如果當前數是k,就在這個序列的最后面加上k-1個0,再加上k+1
現在問這個序列的第n個數是多少

解題思路:這是有規律的,第2的k次方個數恰好是k
如果當前數是k,且k恰好是2的n次方,那末這個數前面就有n-1個0,n-2個1,n-3個02組合,以此類推
如果要求第n個數是多少,只需要找到n是哪一個k之前的,然后依照上面的規律順次遞歸下去便可

#include<cstdio> #include<cstring> using namespace std; #define maxn 64 typedef unsigned long long ull; ull pos[maxn], num[maxn]; void init() { num[0] = num[1] = 1; for(int i = 2; i < maxn; i++) num[i] = num[i - 1] * 2; pos[1] = 2; for(int i = 2; i < maxn; i++) pos[i] = pos[i - 1] * 2; } int dfs(ull len, int n) { if(len == 0) { return n; } int now = 0; for(int i = n - 1; i > 0; i--) { if(len > i * num[now]) len -= i * num[now]; else { if(now == 0 || now == 1) { return now; } len = (len - 1) % num[now]; return dfs(len, now); } now++; } } int main() { init(); long long n; while(scanf("%lld", &n) == 1 && n) { if(n == 1) { printf("0 "); continue; } for(int i = 1; i <= 64; i++) { if(n <= pos[i]) { printf("%d ", dfs(pos[i] - n, i)); break; } } } }
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲视频免费看 | 爽a中文字幕一区 | 欧美黑人ⅹxxx另类猛交 | 一二三四免费观看在线视频6+1 | 国产在线原创剧情麻豆 | 久久亚洲国产成人影院 | 日韩欧美精品有码在线观看 | 国产在线精品一区二区中文 | 韩国av片永久免费 | 国产日韩精品欧美一区视频 | 亚洲人成网站999久久久综合 | 在线免费观看国产视频 | 最新毛片久热97免费精品视频 | 久久久久久国产精品视频 | 中文字幕专区在线亚洲 | 亚洲精品一区二区三区四区 | 国产精品视频久久久久 | 亚洲国产成人精品女人久久久 | 国产精品欧美亚洲韩国日本不卡 | 伊人久久大香线蕉 | 波多野结衣 在线资源观看 波多野结衣 一区二区 | 亚洲一区二区精品视频 | 在线观看男女激情小视频 | 亚洲免费中文 | 亚洲精品视频在线观看免费 | 国产精品久久久久久久久免费观看 | 乱码精品一区二区三区 | 久久精品国产自在一线 | 秋霞午夜鲁丝片午夜精品久 | 欧美俄罗斯一级毛片 | 国产综合在线观看视频 | 欧美性猛交xxxx免费看久久久 | 亚洲视频第一页 | 亚洲春色在线视频 | 视频1区 | 动漫精品在线 | 精品无码久久久久国产 | 日韩欧美第一区二区三区 | 国产亚洲美女精品久久久久 | 亚洲黄色一区二区 | 亚洲综合图 |