https://vjudge.net/contest/174235#problem/H

【题意】

  • 求[x,y]之间有多少个Sheldon Number
  • Sheldon Number是二进制满足以下条件的数:
  • 可以写成ABABAB . . . ABA或ABABAB . . . AB,其中,A是连续的n个1,B是连续的m个0
  • 这个二进制数可以没有0但不能没有1

【思路】

  • 对于确定的n,m,和二进制数的长度len,二进制数唯一确定的,所以按n,m,len枚举的话复杂度为64^3
  • 我们可以预处理所有的Sheldon Number,保存在数组中,排序
  • 可能有重复,所以要去重
  • 对所求的[x,y],在数组中二分查找x和y,x为lower_bound,y为upper_bound-1

【Accepted】

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath> using namespace std;
typedef unsigned long long ull;
typedef long long ll;
ll x,y;
ll two[];
ll ans[];
void init()
{
two[]=1ll;
for(int i=;i<=;i++)
{
two[i]=two[i-]*;
}
}
ll calc(int n,int m,int len)
{
int digit[];
int cntn=,cntm=;
for(int i=;i<len;i++)
{
if(cntn<n)
{
digit[i]=;
cntn++;
if(cntn==n)
{
cntm=;
}
}
else
{
digit[i]=;
cntm++;
if(cntm==m)
{
cntn=;
}
}
}
ll res=0ll;
for(int i=;i<len;i++)
{
res+=1ll*digit[i]*two[len--i];
}
return res; }
int main()
{
init();
int cnt=;
for(int i=;i<=;i++)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
if((j==&&k%i==&&k/i>=)||(j!=&&k%(i+j)==&&k/(i+j)>=)||(j!=&&(k+j)%(i+j)==&&(k+j)/(i+j)>=))
{
ans[cnt++]=calc(i,j,k);
}
}
}
}
sort(ans,ans+cnt);
cnt=unique(ans,ans+cnt)-ans;
while(~scanf("%lld%lld",&x,&y))
{
int p=lower_bound(ans,ans+cnt,x)-ans;
int q=upper_bound(ans,ans+cnt,y)-ans-;
cout<<q-p+<<endl;
}
return ;
}

【枚举】Southwestern Europe Regional Contest H - Sheldon Numbers的更多相关文章

  1. Southwestern Europe Regional Contest 2015 题解

    题目链接:http://codeforces.com/gym/101128 题目数7/10 Rank 34/209 A: 题意:给出一张n个点的有向图表示一家有n个员工的公司的隶属图,u->v表 ...

  2. Southwestern Europe Regional Contest 2014 题解

    时间:2017/9/8 题目8/10 Rank 5/150 体会:三星的题目和国内区域赛差距大,大多数题读懂题意就能做,所以静心读题是关键,套路性太深. A: 题意:给出一个算式,算式中的数字用大写字 ...

  3. 【优先级队列】Southwestern Europe Regional Contest Canvas Painting

    https://vjudge.net/contest/174235#problem/D [题意] 给定n个已知size的帆布,要给这n块帆布涂上不同的颜色,规则是这样的: 每次选择一种颜色C 对于颜色 ...

  4. 2015-2016 ACM-ICPC Southwestern Europe Regional Contest (SWERC 15)

    C. Canvas Painting 合并果子. E. Wooden Signs \(dp(i,l,r)\)表示第\(i\)块木板的长度区间为\([l,r]\)的方案数,根据题意,\(l\)或\(r\ ...

  5. Gym 101128A :Promotions (Southwestern Europe Regional Contest )

    题意 一个公司里有E个员工P个上下级关系.这个公司有一种晋升制度.如果要晋升员工a,那么必须要先晋升a的所有领导.给出一个区间[A,B],如果要晋升A个员工,有哪些员工是一定会被晋升的?如果要晋升B个 ...

  6. ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków

    ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...

  7. Central Europe Regional Contest 2012 Problem H: Darts

    http://acm.hunnu.edu.cn/online/problem_pdf/CERC2012/H.pdf HUNNU11377 题意:飞镖环有十个环,没个环从外到里对应一个得分1~10,每个 ...

  8. 2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17)

    A. Assignment Algorithm 按题意模拟即可. #include<stdio.h> #include<iostream> #include<string ...

  9. The 2019 ICPC Asia Shanghai Regional Contest H Tree Partition k、Color Graph

    H题意: 给你一个n个节点n-1条无向边构成的树,每一个节点有一个权值wi,你需要把这棵树划分成k个子树,每一个子树的权值是这棵子树上所有节点权值之和. 你要输出这k棵子树的权值中那个最大的.你需要让 ...

随机推荐

  1. P3717 [AHOI2017初中组]cover

    题目背景 以下为不影响题意的简化版题目. 题目描述 一个n*n的网格图上有m个探测器,每个探测器有个探测半径r,问这n*n个点中有多少个点能被探测到. 输入输出格式 输入格式: 第一行3个整数n,m, ...

  2. android开发学习 ------- 【转】EventBus的学习理解

    EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间.组件与后台线程间的通信. 比如请求网络,等网络返回时通过Handler或Broadca ...

  3. hihocoder1744 hohahola

    思路: 二分. 实现: #include <bits/stdc++.h> using namespace std; typedef long long ll; const ll INF = ...

  4. scrollTop、offsetTop、clientTop

    1.offsetTop: obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置. 2.clientTop: 这个返回的是元素周围边框的厚度, ...

  5. sql server 2000备份还原数据库

    转载请注明出处:http://blog.csdn.net/neochan1108/article/details/79248017 备份: -- Create the backup device fo ...

  6. 用JS获取Html中所有图片文件流然后替换原有链接

    function displayHtmlWithImageStream(bodyHtml) { var imgReg = /<img.*?(?:>|\/>)/gi; var arr ...

  7. 如何安装Virtual Box的VBox Guest Additions扩展程序

    Virtual Box的默认安装是不包含Guest Addition这个扩展的,在实际使用过程中带来种种不便,比如只能通过小窗口访问虚拟机的操作系统,通过默认的右Ctrl切换鼠标,不能和宿主操作系统共 ...

  8. Unity3D_最简单的开始界面_结束界面

    开始界面1.创建一个新的场景添加button 2.C#脚本LoadingGame.cs using System.Collections;using System.Collections.Generi ...

  9. DROP DATABASE - 删除一个数据库

    SYNOPSIS DROP DATABASE name DESCRIPTION 描述 DROP DATABASE 删除一个现存数据库的目录入口并且删除包含数据的目录. 只有数据库所有者能够执行这条命令 ...

  10. 【整理】 vue-cli 打包后显示favicon.ico小图标

    vue-cli 打包后显示favicon.ico小图标 https://www.cnblogs.com/mmzuo-798/p/9285013.html