博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ4404] [Neerc2015]Binary vs Decimal(BFS)
阅读量:5809 次
发布时间:2019-06-18

本文共 2176 字,大约阅读时间需要 7 分钟。

被奶死了。

基本解法清清楚楚,因为后缀满足性质,所以搜一发就行了。

一个月前写了Java?没卵用。

bitset优化?没卵用。

位数优化?没卵用。

啊。。。为什么我忽略了这么显然的剪枝呢?

 

4404: [Neerc2015]Binary vs Decimal

Time Limit: 10 Sec  Memory Limit: 512 MB
Submit: 157  Solved: 66
[][][]

Description

一个数A,如果它转成二进制后B。A是B的后缀,这个数就是我们所要的。

现在给出数字N,求第N个这样的数(1 ≤ n ≤ 10000)

Input

 

Output

 

Sample Input

2

Sample Output

10

HINT

 

 

#include 
using namespace std;const int maxl = 180;const int modn = 1e9 + 7;const int maxn = 10500;bitset
xp[maxl];void add(bitset
&a, bitset
b) { int carry = 0; for (int i = 0; i < maxl; ++i) { int t = carry + (int)a.test(i) + (int)b.test(i); a.set(i, t % 2); carry = t / 2; }}struct Node { Node() { len = 0; } bool set() { //cout << len << endl; s.set(len - 1); bitset
& c = xp[len-1]; int carry = 0; for (int i = 0; i < maxl; ++i) { int t = carry + (int)b.test(i) + (int)c.test(i); if (i < len && t % 2 != s.test(i)) return false; b.set(i, t % 2); carry = t / 2; } return true; } bitset
s; bitset
b; int len;};queue
q;vector
ans[maxl];int anscnt;void insert_ans(Node &x) { if (!x.s.test(x.len - 1)) return; char res[maxl]; memset(res, 0, sizeof(res)); for (int i = 0; i < x.len; ++i) res[x.len-i-1] = x.s.test(i) + '0'; anscnt++; ans[x.len].push_back(res);}string find_string(int rank) { int tot = 0; for (int i = 0; i < maxl; ++i) { if (tot + ans[i].size() >= rank) { sort(ans[i].begin(), ans[i].end()); return ans[i][rank-tot-1]; } else tot += ans[i].size(); }}int main(){ #ifdef ULTMASTER freopen("a.in", "r", stdin); #endif int N; cin >> N; xp[0].set(0); for (int i = 1; i < maxl; ++i) { xp[i] = (xp[i-1]<<1); add(xp[i], xp[i]<<2); } Node zero; zero.len = 1; Node one = zero; one.set(); q.push(zero); q.push(one); while (!q.empty()) { if (anscnt > N + 200) break; Node u = q.front(); insert_ans(u); q.pop(); u.len++; q.push(u); if (u.set()) q.push(u); } cout << find_string(N) << endl; return 0;}

  

 

转载于:https://www.cnblogs.com/ultmaster/p/6166362.html

你可能感兴趣的文章
(转) 多模态机器翻译
查看>>
【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档
查看>>
矩阵常用归一化
查看>>
Oracle常用函数总结
查看>>
【聚能聊有奖话题】Boring隧道掘进机完成首段挖掘,离未来交通还有多远?
查看>>
CMake 手册详解(二十)
查看>>
嵌入式 busybox自带的tftp、telnet、ftp服务器
查看>>
USNews大学排名遭美国计算机研究学会怒怼,指排名荒谬要求撤回
查看>>
struts1——静态ActionForm与动态ActionForm
查看>>
七大关键数据 移动安全迎来历史转折点
查看>>
在AngularJS中学习javascript的new function意义及this作用域的生成过程
查看>>
盘点物联网网关现有联网技术及应用场景
查看>>
网络钓鱼大讲堂 Part3 | 网络钓鱼攻击向量介绍
查看>>
阿里云与Intel联合发布加密计算,亚洲首个云上“芯片级”数据保护
查看>>
1、下载安装scala编译器(可以理解为scala的jdk),地址:http://www.scala
查看>>
mui 总结2--新建第一个app项目
查看>>
nginx的lua api
查看>>
考研太苦逼没坚持下来!看苑老师视频有点上头
查看>>
HCNA——RIP的路由汇总
查看>>
zabbix监控php状态(四)
查看>>