HDUOJ----旋转的二进制
时间:2022-05-05
本文章向大家介绍HDUOJ----旋转的二进制,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
旋转的二进制
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 46 Accepted Submission(s) : 10
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
给定一个自然数M,及其二进制长度N,得到一个N位的二进制串 b1 b2 ... bN-1 bN 将该串做左旋转,即b1移到bN后面,得到一个新的二进制串: b2 b3 ... bN-1 bN b1 对新的二进制串再做左旋转,得二进制串 b3 b4 ... bN-1 bN b1 b2 重复旋转操作操作,可得N个二进制串,对这N个串排序,可得一个N*N的矩阵. 例如: 1 0 0 0 1->0 0 0 1 1->0 0 1 1 0->0 1 1 0 0->1 1 0 0 0 对它们做排序,得矩阵
0 0 0 1 1
0 0 1 1 0
0 1 1 0 0
1 0 0 0 1
1 1 0 0 0
问:给出一个自然数M,及其二进制长度N,求出排序矩阵的最后一列。 对于上面的例子,给出M=3,N=5,要你的程序输出10010。 补充说明:存在自然数M的二进制表达超过N位的情况,在这种情况下,取前N次循环的二进制串排序后的最后一列即可。
Input
第一行有一个自然数K,代表有K行测试数据(K<=1000)。 第二行至第K+1行,每行的第一个为自然数M,第二个为二进制长度N(N<64)。
Output
输出K行,每行N个二进制,表示矩阵最后一列从上到下的二进制。
Sample Input
3
3 5
4 7
1099512709120 45
Sample Output
10010
1000000
110000000000000000000000000000100000000000000
Source
CodingTrip - 携程编程大赛 (预赛第一场)
题意不明确,到底超过了n之后全保留排序结果是挫的,截取后面的n位反而是对的...
这道题还恶心,居然m要用unsigned __Int64
代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char str[68][100];
int cmp(const void *a , const void *b)
{
return strcmp((char *)a ,(char *)b);
}
int main()
{
int test,nn,i,j;
unsigned __int64 m;
scanf("%d",&test);
while(test--)
{
scanf("%I64d%d",&m,&nn);
memset(str,'0',sizeof(str));
i=nn-1;
while(m>0)
{
if(m&1) str[0][i]='1';
m>>=1L;
i--;
if(i<0) break;
}
for(i=1;i<nn;i++)
{
for(j=0;j<nn;j++)
{
str[i][j]=str[i-1][(j+1)%nn];
}
}
qsort(str,nn,sizeof(str[0]),cmp);
for(i=0;i<nn;i++)
printf("%c",str[i][nn-1]);
putchar(10);
}
return 0;
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法