追梦算法----拯救公主?
说明
今天是十月三号,学姐还没有想好该出什么题,有点慌张,但是学姐最近迷上了一堆小游戏,其中一个学姐不想玩,你可以帮忙将这个小游戏玩通关吗?
游戏规则很简单,游戏一开始,你将身处于一座城堡之中,公主被巨龙抓走到了山谷里,你需要去拯救公主。
发布者会给你两个一维坐标l和r(l<l<=r<=1e6),l和r分别是城堡和山谷的位置,从l到r之间的每一个数字都是你即将可能拥有的一起去救公主的伙伴,伙伴的条件是该数字对应的二进制数字中的1的总个数是素数,问你会有多少个伙伴和你一起去救公主(ps: 最后你千辛万苦找到了你的伙伴去到了山谷,救走了公主,然后你又一个人回到了山谷,和巨龙快乐的生活在一起,好耶,完结撒花!!)
输入格式
第一行是两个数l和r,表示城堡和山谷的位置。
输出格式
输出1行,表示有多少个伙伴
样例
输入数据 1
6 9
Copy
输出数据 1
3
Copy
提示
样例解释:
6的二进制表达是110,110中有2个1,2是素数
7的二进制表达是111,3个1,3是素数
8的二进制表达是1000,1个1,1不是素数
9的二进制表达是1001,2个1,2是素数
所以输出3。
总结反思:
看了题目很容易想到,这道题使用位运算来做。
1、这道题目的关键在于确定这个数字再二进制的情况下,1的个数。
2、没有想到可以直接让数字和1进行&操作,然后让数字左移1位再判断就好了。
以后要记住:当需要确定一个数字1的个数时,可以使用与1按位与+左移操作!!!
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <vector>
#include <iostream>
#include <string.h>
#include <queue>
using namespace std;
int n;
int l,r,ans;
int main() {scanf("%d%d",&l,&r);for(int i=l; i<=r; i++) {int temp=i,s=0,k=0;while(temp) {if(temp&1==1)s++;temp=temp>>1;}int x=sqrt(s);for(int j=2; j<=x; j++) {if(s%j==0) {k=1;break;}}if(s==1)k=1;if(!k)ans++;}printf("%d\n",ans);return 0;
}
使用位运算函数:__builtin_popcount ( n ) 来确定数字中含有的1的个数!再判断素数即可!!
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <vector>
#include <iostream>
#include <string.h>
#include <queue>
using namespace std;
int l,r,ans=0;
int main() {scanf("%d%d",&l,&r);for(int i=l; i<=r; i++) {int k=0;int temp=__builtin_popcount(i),m=sqrt(temp);if(temp==1)continue;for(int j=2; j<=m; j++) {if(temp%j==0) {k=1;break;}}if(!k) {ans++;}}printf("%d",ans);return 0;
}
追梦算法----拯救公主?相关推荐
- 追梦算法----方格取数
说明 在 n 行.m 列的方格矩阵中,每个方格都包含一个数字.小明可以从任意方格出发开始移动.每次移动可以移到与当前方格有一条边相邻的方格(即向上.下.左或右方向移动 1 格,且不能移出边界).除此之 ...
- 追梦算法----修路
说明 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府 "村村通工程" 的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接的道路相连, ...
- 追梦算法----P1072. 排队打水
题目描述 有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小? 输入格式 第一行包含整数 n. 第二行包含 n ...
- 追梦算法----数字找朋友
Description 给定起始数字 a (1<=a<=10^5) 还有终止数字 b (0<=b<=10^8)我们现在有三种操作方法: 给当前的数字 x 乘3 给当前的数字 ...
- 追梦算法----睡懒觉
Description 你的同桌犯困了,于是她想睡会让你待会叫她起来,但是她这个人吧有个癖好,喜欢在 回文时间 的时候起来,例如 12:21 就是一个回文时间(精确到分) 如果她被你叫起来的时候发现不 ...
- 追梦算法----马的遍历
说明 中国象棋半张棋盘如图(a)所示.马自左下角往右上角跳.今规定只许往右跳,不许往左跳,且要求马跳的方式按照(b)图顺时针深度优先递归.比如图(a)中所示为一种跳行路线.如果马要从0,0点,跳到4, ...
- 追梦算法----智力大冲浪
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 m 元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则 ...
- 【2022年终总结】勇敢追梦,去和人生博弈
目录 序言 刚开始的1月 松懈的2月 忙碌的3月 迷茫的4月 开源项目的5月 入职汇报的6月 7月 8月 9月 假期过后的10月 至关重要的11月 最后冲刺的12月 2022年的总结 2023年的目标 ...
- 追梦App系列博客——设计思路篇
文章目录 前言 一.追梦体系 1."寻梦" 2.追梦 3.追梦之旅 二.个人账户成长系统 三.积极的反馈机制--任务系统 四.虚拟货币系统 五.社交系统 1.社交新方式--梦见 2 ...
最新文章
- Windows Phone 二十、陀螺仪
- linux 网卡 开启dhcp,Linux DHCP如何绑定指定的网卡???
- Cookie application session
- [网络收集]avascript中top.location.href 与 location.href的区别
- C++ 基本数据类型 的 字节数
- php软件开发--yii2框架搭建及gitlib同步线上网站
- c语言水仙桃树编程,辰颐物语编辑部整理:春季适合种植哪些花卉品种?樱花和桃花怎么区分?...
- java 同步块关键字_Java同步关键字,同步方法和块
- 7.07 生成累积乘积
- android 图层绘画分析,Android绘图技巧使用详解
- 翻译:where在Swift中的用法
- 右键菜单 GenericMenu
- 小甲鱼鱼c论坛python作业_[全套55讲]鱼C论坛小甲鱼Python课后题试题.doc
- 火绒软件+软媒雷达(win10,弥补了火绒无优化内存服务)
- 使用Windows Server Backup备份与还原Hyper-V虚拟机
- 使用docker成功安装paddlespeech进行语音识别
- C++——NOIP模拟题——葫芦
- flash控件使用手册
- dota攻略(dota全部英雄装备合成和英雄打法)
- bokeh参数设置详解