博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1147 Binary codes
阅读量:6411 次
发布时间:2019-06-23

本文共 1756 字,大约阅读时间需要 5 分钟。

Binary codes
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 5647   Accepted: 2201

Description

Consider a binary string (b1…bN) with N binary digits. Given such a string, the matrix of Figure 1 is formed from the rotated versions of the string.

b1 b2 bN−1 bN
b2 b3 bN b1
bN−1 bN bN−3 bN−2
bN b1 bN−2 bN−1

Figure 1. The rotated matrix

Then rows of the matrix are sorted in alphabetical order, where ‘0’ is before ‘1’. You are to write a program which, given the last column of the sorted matrix, finds the first row of the sorted matrix.

As an example, consider the string (00110). The sorted matrix is

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

and the corresponding last column is (1 0 0 1 0). Given this last column your program should determine the first row, which is (0 0 0 1 1).

Input

The first line contains one integer N ≤ 3000, the number of binary digits in the binary string. The second line contains N integers, the binary digits in the last column from top to bottom.

Output

The first line contains N integers: the binary digits in the first row from left to right.

Sample Input

51 0 0 1 0

Sample Output

0 0 0 1 1

对由0,1组成的n个数。照题中的旋转,最后依据每行的字典序排序,组成n*n的矩阵,给出矩阵的最后1列,求矩阵

的第首行。

给出最后一列能够求出第0列,由于是按字典序排的,所以第0列肯定0在前,1在后。而第0列为0的相对位置在最后

1列不变。由于第0列都为0,又是按字典序排的。第0列为1也一样。依据第0列和最后一列就能够将相应关系求出。

也就是next数组。

比如例子的

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

next[ ]={1,2,4,0,3}

第0行第0列为0,第0行的第1列下次旋转后为第0列的第0行,所以第0行第1列为第0列的第1行为0,第1列的第0行

为第2列的第1行,为第0列的第2行。所以第0行的第2列为第0列的第2行为0,通过推理发现为next数组中元素递推

代码:

#include 
#include
#include
using namespace std;const int maxn=5000+100;int last[maxn];int first[maxn];int next[maxn];int main(){ int n; while(~scanf("%d",&n)) { for(int i=0;i

转载地址:http://yrzra.baihongyu.com/

你可能感兴趣的文章
SQL Server 自动增长清零
查看>>
多核与云计算
查看>>
C++中的头文件和源文件
查看>>
SQLite在Android中使用
查看>>
Spring 3 MVC And RSS Feed Example
查看>>
【转】Linux 下修改Tomcat使用的JVM内存大小
查看>>
【uTenux实验】事件标志
查看>>
利用Python进行数据分析(15) pandas基础: 字符串操作
查看>>
busybox inetd tftpd
查看>>
函数可重入性及编写规范
查看>>
Scribe应用实例
查看>>
一个通过BackgroundWorker实现WinForm异步操作的例子
查看>>
net中System.Diagnostics.Process.Start用法
查看>>
Ural_1090. In the Army Now (数状数组)
查看>>
Gridview中生成的属性rules="all",在Firefox出现内线框解决办法
查看>>
10容易实现基于Flash的MP3播放器为您的网站
查看>>
轻松实现QQ用户接入
查看>>
ToString精确到毫秒
查看>>
关于Android横竖屏切换的解决方法
查看>>
POJ_2184 Cow Exhibition (0-1背包)
查看>>