GCJ——Crazy Rows (2009 Round 2 A)

题意:

  给定一个N*N的矩阵,由0,1组成,只允许交换相邻的两行,把矩阵转化为下三角矩阵(对角线上方全是0),最少需要多少次交换?(保证可以转化为下三角矩阵)

Large:

  N<=40

解析:

  假如每一行的1的个数都是不相同的,即,最终答案中的矩阵是唯一的,这就相当于求对给定数组冒泡排序需要几次交换一样。但显然,题目没有如此保证。

  方法是贪心法:(策略不给出证明)

    从第一行到最后一行依次满足,因为可以满足前面行的也一定可以满足后面的,所以每次只需要找到可以满足当前行的最近的就可以了。

  预处理最后一个1的位置的话,时间复杂度是N^2

时间: 2024-10-30 02:48:12

GCJ——Crazy Rows (2009 Round 2 A)的相关文章

每天水一水 Crazy Rows (2009 Round2 A) GCJ

#include <bits/stdc++.h> using namespace std; #define maxn 10000 + 10 int M[maxn][maxn]; int mark[maxn]; int n, m; int solve() { int ans = 0; for(int i=1; i<=n; i++) { int pos = -1; for(int j=i; j<=n; j++) { if(mark[j] <= i) { pos = j; brea

Google Code Jam 2009, Round 1C C. Bribe the Prisoners (记忆化dp)

Problem In a kingdom there are prison cells (numbered 1 to P) built to form a straight line segment. Cells number i and i+1 are adjacent, and prisoners in adjacent cells are called "neighbours." A wall with a window separates adjacent cells, and

GCJ 2009 Round 1C Bribe the Prisoners

Bribe the Prisoners no tags     Problem In a kingdom there are prison cells (numbered 1 to P) built to form a straight line segment. Cells number i and i+1 are adjacent, and prisoners in adjacent cells are called "neighbours." A wall with a wind

Crazy Rows

Problem You are given an N x N matrix with 0 and 1 values. You can swap any two adjacent rows of the matrix. Your goal is to have all the 1 values in the matrix below or on the main diagonal. That is, for each X where 1 ≤ X ≤ N, there must be no 1 va

查询每个表大小

SELECT CONCAT(table_schema,'.',table_name) AS 'Table Name', CONCAT(ROUND(table_rows/1000000,4),'M') AS 'Number of Rows', CONCAT(ROUND(data_length/(1024*1024),2),'MB') AS 'Data Size', CONCAT(ROUND(index_length/(1024*1024),2),'MB') AS 'Index Size', CON

mysql表结构表空间和索引的查询

1.查询表的结构信息 Sql代码 desc tableName; show columns from tableName; describe tableName 上面的结果返回的结果是一样的. 2 查询表的列信息. Sql代码 select * from information_schema.columns where table_name='tableName'; 3 查看库中所有的库 Sql代码 SELECT LOWER(schema_name) schema_name FROM infor

查看mysql库大小,表大小,索引大小

说明: 通过MySQL的 information_schema 数据库,可查询数据库中每个表占用的空间.表记录的行数:该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大小INDEX_LENGTH:索引大小 其他字段请参考MySQL的手册,查看一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 . 查看所有库的大小 mysql> u

SlickGrid example 1: 最简单的例子和用法

SlickGrid例子和用法 开始学习使用SlickGrid,确实挺好用,挺方便的. 官网地址: https://github.com/mleibman/SlickGrid 不多说,先上效果图. 上代码.(源码) <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <he

SlickGrid example 2: 按想要的风格展示列

先上效果图. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"