集训作业 洛谷P1100 高低位交换】的更多相关文章

这个题简单来说就是把一个数转成32位的2进制数,不够的补0.然后把这个数的前半部分和后半部分互换,再计算结果. 思路简单明了,接下来是代码: #include<iostream> #include<cstdio> #include<map> #include<cmath> using namespace std; long long a,b,shu[50],s=1,zshu; int main() { scanf("%lld",&…
P1100 高低位交换 题目描述 给出一个小于2^32的正整数.这个数可以用一个32位的二进制数表示(不足32位用0补足).我们称这个二进制数的前16位为“高位”,后16位为“低位”.将它的高低位交换,我们可以得到一个新的数.试问这个新的数是多少(用十进制表示). 例如,数1314520用二进制表示为0000 0000 0001 0100 0000 1110 1101 1000(添加了11个前导0补足为32位),其中前16位为高位,即0000 0000 0001 0100:后16位为低位,即00…
P1100 高低位交换 题目描述 给出一个小于2^32的正整数.这个数可以用一个32位的二进制数表示(不足32位用0补足).我们称这个二进制数的前16位为“高位”,后16位为“低位”.将它的高低位交换,我们可以得到一个新的数.试问这个新的数是多少(用十进制表示). 例如,数1314520用二进制表示为0000 0000 0001 0100 0000 1110 1101 1000(添加了11个前导0补足为32位),其中前16位为高位,即0000 0000 0001 0100:后16位为低位,即00…
题目描述 给出一个小于2^{32}232的正整数.这个数可以用一个3232位的二进制数表示(不足3232位用00补足).我们称这个二进制数的前1616位为“高位”,后1616位为“低位”.将它的高低位交换,我们可以得到一个新的数.试问这个新的数是多少(用十进制表示). 例如,数13145201314520用二进制表示为0000 0000 0001 0100 0000 1110 1101 100000000000000101000000111011011000(添加了1111个前导00补足为323…
集训的题目有点多,先写困难的绿题吧(简单的应该想想就会了) 嗯,这个题看起来像个搜索呢(就是个搜索) 我们仔细想想就知道这个题肯定不能用深搜,可以优化的地方太少了,TLE是必然的. 那我们该怎么办呢? 很简单,用选代加深啊,我真是个睿(弱)智的小孩. 一遍自认为很强大的选代加深后: 嗯,放弃了. 明显以我的能力驾驭不了选代加深,优化不够…… 我只能用优化力度更大的广搜了. 什么?为啥早不用?我说了,我是个睿(弱)智的小孩. 广搜可以用的优化更多了,有一个神奇的东西叫做记忆化,广搜有个特点,如果这…
这个题目就是让我们实现进制的转换. 我只会很简单的把他从一个别的进制转化成10进制,然后再继续转化成目标进制. #include<iostream> #include<cstdio> #include<map> #include<cmath> using namespace std; long long a,b,shu,hh,e[100]; string s,jg; string sz=0123456789ABCDEF;//这是最后用来转化输出的,我不想把1…
这个题的长度真的有点长,我直接放图片吧 这个题又是一个和谐的搜索,找到yizhong的y就开始8面搜索,遇见正确的字母就继续搜索,不正确就果断放弃,果然又是一个和谐的搜索呢. #include<iostream> #include<string> #include<cstdio> using namespace std; string a[300],shu[300]; int aa[8]={0,-1,-1,-1,0,1,1,1},bb[8]={1,1,0,-1,-1,-…
这个…… 这个题看上去有点难的样子. 仔细看看,感觉有点简单.啊,是递归啊,正经的看一看,好像是把一个数分成2的几次方的和. 然后余数和比他小的最大的2的次方数如果不是2的一次方或者2的0次方,就继续递归. 仔细一想貌似很简单,只不过余数是在括号外面,商是在里面的,这种小事稍微写写就可以了. 直接代码吧,这题除了题意有点复杂以外还行…… #include<iostream> #include<cstdio> using namespace std; long long m; lon…
这个题我见过!!! 我之前在石油大学的网站上做练习赛,提高了很多,这个题是我第一次在比赛里见到深搜. 当时蒙蔽的一批,现在发现好简单…… 这个题和普通的深搜没什么区别,甚至可以说简单了,因为这个是1维的,别的是二维的(见到老熟人,我快高兴疯了). 我们先来个代码吧,解释什么的写进注释里了: #include<iostream> #include<cstdio> using namespace std; long long a,b,n; long long k[300]; long…
嗯?这题竟然是个绿题. 这个题真的不难,不要被他的难度吓到,我们只是不会计算2点之间的距离,他还给出了公式,这个就有点…… 我们直接套公式去求出需要的值,然后普通的搜索就可以了. 这个题我用的深搜,因为广搜没什么意义. #include<iostream> #include<string> #include<algorithm> #include<cmath> #include<cstdio> struct z { double x,y; }g[…