POJ 3252 Round Number

芯片低功耗设计的两种常用EDA流程 如题。 阅读详情

Round Numbers

Time Limit: 2000MS Memory Limit: 65536K

Total Submissions: 5077 Accepted: 1736


Description

The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, Paper, Stone' (also known as 'Rock, Paper, Scissors', 'Ro, Sham, Bo', and a host of other names) in order to make arbitrary decisions such as who gets to be milked first. They can't even flip a coin because it's so hard to toss using hooves.

They have thus resorted to "round number" matching. The first cow picks an integer less than two billion. The second cow does the same. If the numbers are both "round numbers", the first cow wins,
otherwise the second cow wins.

A positive integer N is said to be a "round number" if the binary representation of N has as many or more zeroes than it has ones. For example, the integer 9, when written in binary form, is 1001. 1001 has two zeroes and two ones; thus, 9 is a round number. The integer 26 is 11010 in binary; since it has two zeroes and three ones, it is not a round number.

Obviously, it takes cows a while to convert numbers to binary, so the winner takes a while to determine. Bessie wants to cheat and thinks she can do that if she knows how many "round numbers" are in a given range.

Help her by writing a program that tells how many round numbers appear in the inclusive range given by the input (1 ≤ Start < Finish ≤ 2,000,000,000).

Input
Line 1: Two space-separated integers, respectively Start and Finish.

Output
Line 1: A single integer that is the count of round numbers in the inclusive range Start..Finish

Sample Input
2 12

Sample Output
6

Source
USACO 2006 November Silver
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int limit[50];
int f[50][50];
int sum[50][50];

int calc(int num){
	int i, j, k, len, ans;
	if (num <= 0) return 0;
	for (len = 1; num; len++){
		limit[len] = num & 1;
		num >>= 1;
	}
	limit[len] = 0;
	ans = 0;
	for (i = len - 2; i > 0; i--){
		j = (i + 1) / 2;
		ans += sum[i - 1][j];
	}
	k = 0; 
	/*这里定义为前面出现过k个0
	  若定义为后面可以少k个0,则看上去只考虑长度为i的
	  得到j = i / 2 - k - 1,但这是错的
	  因为没有把i和前面多的k个0放一块考虑,例如
	  ...110, i = 3, k = 1,时 
	  需要i / 2 = 1个0,但这时k告诉说我帮你顶一个,看样子就不需要0了
	  但是不作为0的空缺就会被填上1,于是就有2个1,实际需求变为2个0,而不是1个0	  
	*/
	for (i = len - 2; i > 0; i--){
		if (limit[i] == 1){
			j = len / 2 - k - 1;
			if (j < 0) j = 0;
			ans += sum[i - 1][j];
		}else k++;
	}
	if (k >= len / 2) ans++;
	return ans;
}

int main(){
	int i, j, bg, ed;
	memset(f, 0, sizeof(f));
	memset(sum, 0, sizeof(sum));
	f[0][0] = 1;
	sum[0][0] = 1;
	for (i = 1; i < 31; i++){
		f[i][0] = 1;
		for (j = 1; j <= i; j++){
			f[i][j] = f[i - 1][j] + f[i - 1][j - 1];
		}
		sum[i][i] = 1;
		for (j = i - 1; j >= 0; j--){
			sum[i][j] = sum[i][j + 1] + f[i][j];
//			printf("s[%d][%d] = %d\n", i, j, sum[i][j]);
		}
	}
	while(scanf("%d%d", &bg, &ed) != EOF){
		bg = calc(bg - 1);
		ed = calc(ed);
		printf("%d\n", ed - bg);
	}
	return 0;
}


模型实战(31)之 yolo26 实现对手部关键点数据集 的训练与关键点检测 阅读详情

相关推荐

论文阅读《Eigen-GNN: A Graph Structure Preserving Plug-in for GNNs》

好久没看论文了,感觉好生疏 关于这篇文章的大致脉络,这篇文章已经介绍过了。

且视他人之疑目如盏盏鬼火,大胆地去走你的夜路 461

poj 3252 round number 【数位dp】

题目链接:http://poj.org/problem?id=3252 题意:求 [L , R]区间内 round number数的个数; round numbe就是二进制0的个数大于等于1的个数的数字; #include&lt;stdio.h&gt; #include&lt;iostream&gt; #include&lt;string.h&gt; #include&lt;string&g...

几许情愁的博客 297

实体对齐(Entity Alignment)相关论文与数据集整理

实体对齐(Entity Alignment)、知识图谱融合方法总结整理 年份 模型 主要思想 博文推荐 论文 代码 2019 Entity Alignment between Knowledge Graphs Using Attribute Embeddings 实体对齐数据集整理 名称 — DBpe-dia(DBP) LinkedGeoData(LGD) Geonames(GEO) YAGO ...

bjxxkjdxcdd的博客 1万+

poj3252-Round Number 组合数学

思路基本上就是组合计数,唯一特别需要注意的是在计算组合数的时候很容易越界,虽然上面分析了计算结果在int范围内是没有问题的,但是计算组合数中间过程还是很可能越界,所以这里要特别注意。解决方法是利用C(n,m)=C(n-1,m-1)+C(n-1,m)进行递归计算,而不是使用传统的乘法计算方式。为了更有效率一点,可以事先计算好n=1~32,m=1~32的组合数的结果然后存起来。

smartxxyx的专栏 2041

逆向实战:TikTok X-Gorgon算法解析与Unidg补环境技巧

本文详细解析了TikTok X-Gorgon算法的逆向工程全流程,包括参数定位、变种RC4算法还原及Unidbg补环境技巧。通过动态调试与静态分析相结合,揭示了X-Gorgon的生成逻辑和加密细节,为移动安全研究提供了实用指南。

weixin_28568819的博客 694

Arduino粉尘传感器DIY:打造智能PM2.5监测仪

本文详细介绍了如何利用Arduino和粉尘传感器DIY一个智能PM2.5监测仪。从硬件选购、接线步骤到代码编写,提供了完整的制作指南,帮助读者以低成本打造透明可靠的空气质量监测设备,并探讨了数据解读与智能升级方案。

i3j4k5的博客 391

数位DP——POJ 3252 Round Number

题目链接 : http://poj.org/problem?id=3252 题意: 求区间内 Round Number的数量,定义Round Number:转换为二进制数后0的个数大于等于1的个数的数 分析: 直接当成二进制数位DP来做,需要注意的是要判断一下前导0。前缀就是保存末尾数字,前缀含有0的个数,前缀含有1的个数。 AC代码 /*******************************

FeBr2的博客 443

手把手教你用OpenCV+Python实现HALCON级模板匹配(附工业案例代码)

本文详细介绍了如何利用开源计算机视觉库OpenCV和Python,构建媲美HALCON商业软件的工业级模板匹配解决方案。通过分析工业检测的核心挑战,文章提供了从模板预处理、多策略融合匹配到应对尺度与旋转的完整代码实现,并附有连接器引脚检测的实战案例,为工业自动化场景下的高精度视觉检测提供了低成本、高可控性的技术路径。

e3f4g5的博客 284

POJ3252——Round Number(组合数学)

Round Numbers DescriptionThe cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, Paper, Stone' (also known as 'Rock, Paper, Scissors', 'Ro, Sham, Bo', and a host of oth...

weixin_30426879的博客 144

Python和Spyder:一个完美的编程组合

而Spyder作为一个专门为科学计算和数据分析而设计的IDE,提供了高效的开发环境和丰富的工具。无论是初学者还是专业开发者,Python和Spyder都能满足他们的需求,并为他们的工作带来便利和效率。本文将探讨Python和Spyder之间的关系,以及它们如何相互配合,提供一流的编程体验。每个工具都有其特定的优势和适用场景,开发者可以根据自己的需求选择合适的工具。而Spyder作为一个专门为科学计算而设计的IDE,提供了编写、调试和执行Python代码的环境。

CodeHeroicX的博客 1123

最新Python爬虫实战(入门爬虫篇)——案例7:电影网站电影数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例通过Python爬虫技术,成功实现了对某电影网站Top250多页电影详细信息的批量爬取与Excel保存。代码采用模块化设计,包含分页请求构造、XPath+正则提取结构化信息、Excel数据持久化保存等完整流程。通过配置User-Agent等请求头信息,有效模拟浏览器行为以绕过豆瓣基础反爬策略。整个爬虫逻辑遵循"分页遍历 → 请求页面 → 解析HTML → 提取电影信息 → 保存到Excel"的标准流程,与主流静态网站爬取范式高度一致。

努力让自己发光,对的人才能迎着光而来 11万+

POJ3252 round number 组合数学

由于省赛的粗心以及无法互相检查队友之间的小错误,导致致命伤,所以接下来做到的好题目,代码中都自己仔细标好,做好小习惯 在做数位DP分类下的题目,这道题目一开始怎么想都觉得用数位DP肯定超时,最后想了很久一点思路都没有,后来看了一下题解,发现都是有排列组合做的,没办法只好用组合数学做了,看了一下别人的思路,发现 不是特别难,对于基础要求比较高,所以这道题目觉得是一个好题,解析什么的发现了一篇写的很

shaonianguai 822

ardupilot开发 --- MavLink 篇

ardupilot开发 --- MavLink 篇

记录老板的每次pua,分享领导每天的毒鸡汤... 4251

poj 3252 Round Number

题目不是很难,不过因为一个细节贡献了两次wa(在计算[0, 0]上的round numbers时答案应该是0,结果算成了1) 思路就是[a, b] 上的答案等于[0, b] - [0, a - 1]。 在计算[0, k]上的round numbers时,先求位数比k的二进制小的,这些数肯定比k小,所以0和1可以任意放,用排列组合的方法很容易算。然后求和k的二进制位一样长的,从k的二进制的最高位

stormdpzh的专栏 863

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

POJ_3252_Round Number_递推

递推

_Aka 413

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

poj 3252 Round Number 数位dp

Round Numbers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11481   Accepted: 4305 Description The cows, as you know, have no fingers or thumbs and thus ar

MY Blog 836

[POJ3252]Round Number(数位dp)

题目链接:http://poj.org/problem?id=3252 题意:求范围内数字二进制下0的个数大于等于1的个数的数的个数。 数位dp,dp(l,zero,one,fz)记录当前第l位时0的个数1的个数和当前位是否是前导零中的部分,dfs转移就行。 1 #include <bits/stdc++.h> 2 using namespace std; 3 #d...

weixin_30521161的博客 78

poj3252 round number

题意:求[start,finish]区间内,二进制满足0的个数大于1的个数的数有

smilewsw的专栏 510

POJ 3252.Round Numbers

题目:http://poj.org/problem?id=3252 AC代码(C++): #include #include #include #include #include #include #include #include #include #define INF 0xfffffff #define MAXN 100105 using namespa

njyexiong的博客 213

POJ-3252 Round Number(数位DP)

https://vjudge.net/problem/POJ-3252 题意:给你2个数a,b,求[a,b]区间中的数满足2进制0&gt;=1的个数. (1≤a&lt;b≤ 2,000,000,000). 思路:用数位DP来解决,dp[i][count0][count1],表示搜索到第i位的时候,0与1的数量。记忆化搜索到底的时候如果0的数量大于等于1的数量,就返回1,表示在[a,b]区间存在...

qq_38924883的博客 295

poj 3252 数位dp(Round Number)

题意:输入两个十进制正整数a和b,求闭区间 [a ,b] 内有多少个Round number。所谓的Round Number就是把一个十进制数转换为一个无符号二进制数,若该二进制数中0的个数大于等于1的个数,则它就是一个Round Number。 思路:用dp来做:dp[i][j]表示二进制长度为 i 的数字含 j 个0的个数,比如dp[3][1] = 2(101和110)。做法就是先打表求出d

dearmango 397

POJ3252 Round Numbers

POJ3252 Round Numbers Time Limit:2000MS Memory Limit:65536K Total Submissions:4877 Accepted:1664 Description The cows, as you know, have no fingers or thumbs and ...

weixin_30790841的博客 216

POJ3252 Round Number (基础数位DP

题目描述 如果一个数在二进制下0的个数比一的个数多,则称这个数位round number,问在l~r中有多少这样的数 (1 ≤ Start < Finish ≤ 2,000,000,000). Input 输入l,r。 Output 输出个数 Sample Input 2 12 Sample Output 6 思路:先将数n转化成二进制,然后就成了基础的数位DP裸题,需要注意的是前导零的存在...

qq_43627100的博客 147

poj3252——组合数学

poj3252——组合数学 Round Numbers Time Limit:2000MS Memory Limit:65536K Total Submissions:9790 Accepted:3517 Description The cows, as you know, have no fingers or thum...

weixin_30332705的博客 117

POJ 3252 Round Number(数位DP)

Round Numbers Time Limit:2000MS Memory Limit:65536K Total Submissions:6983 Accepted:2384 Description The cows, as you know, have no fingers or thumbs and thus are...

weixin_33953384的博客 138
上一篇: POJ 1942 Paths on a Grid
下一篇: POJ 2503 Babelfish
cmonkey
博客等级 码龄17年 50粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值