GCJ--Crazy Rows (2009 Round2 A)

2023-10-13 03:32
文章标签 2009 rows gcj crazy round2

本文主要是介绍GCJ--Crazy Rows (2009 Round2 A),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 values in row X that are to the right of column X.

Return the minimum number of row swaps you need to achieve the goal.

Input

The first line of input gives the number of cases, T. T test cases follow.
The first line of each test case has one integer, N. Each of the next N lines contains N characters. Each character is either 0 or 1.

Output

For each test case, output

Case #X: K
where X is the test case number, starting from 1, and K is the minimum number of row swaps needed to have all the 1 values in the matrix below or on the main diagonal.

You are guaranteed that there is a solution for each test case.

Limits

1 ≤ T ≤ 60

Small dataset

1 ≤ N ≤ 8

Large dataset

1 ≤ N ≤ 40

Sample


以下是我的AC代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define MAX_N 45
using namespace std;
char maze[MAX_N][MAX_N];
int n,temp;
int T;
int a[MAX_N];
void solve()
{int res=0;for(int i=0;i<n;i++){a[i]=-1;for(int j=0;j<n;j++){if(maze[i][j]=='1')a[i]=j;}}for(int i=0;i<n;i++){int pos=-1;for(int j=i;j<n;j++){if(a[j]<=i){pos=j;break;}}for(int j=pos;j>i;j--){swap(a[j],a[j-1]);res++;}}printf("Case #%d: %d\n",temp-T,res);
}
int main()
{//freopen("A-large-practice.in","r",stdin);//freopen("output.out","w",stdout);scanf("%d",&T);temp=T;while(T--){scanf("%d",&n);for(int i=0;i<n;i++){scanf("%s",maze[i]);}solve();}return 0;
}


这篇关于GCJ--Crazy Rows (2009 Round2 A)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200470

相关文章

【系统架构设计师-2009年】综合知识-答案及详解

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【第1题】【第2~4题】【第5题】【第6题】【第7~8题】【第9~10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21题】【第22题】【第23题】【第24题】【第25~26题】【第27~28题】【第29~30题】【第31题】【第32~33题】

火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法

关于 GCJ-02 和 BD-09 ,请参考 http://developer.baidu.com/map/question.htm#qa0043 。 算法代码如下,其中 bd_encrypt 将 GCJ-02 坐标转换成 BD-09 坐标, bd_decrypt 反之。 [cpp] view plain copy print ? #include <math.h>    con

OpenCV学习笔记(20)关于opencv新版本中rows和cols的理解

rows:行 cols:列(column) 对于读入的一张图片SrcImage2,(图像分辨率对应为400×200像素) SrcImage2.rows=200        (行)——(有200行像素) SrcImage2.cols=400         (列)——(有400列像素) 测试程序: Mat SrcImage2;SrcImage2 = imread("400.

九度考研真题 浙大 2009-1浙大1031:xxx定律

//1031:xxx定律 #include<iostream> using namespace std; int main(){ int n; while(cin>>n&&n!=0){ int num=0; while(n!=1){ if(n%2==0){ n/=2; num++; } else{ n=3*n+1; n/

腾讯公司后台服务器经典面试题 (2009年5月)

转自http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1484141&page=1 前些时间去了腾讯面试, 可惜现场没回答好。 是一些基础问题,同时也比较深入的问题。 在此列出来, 欢迎大家讨论交流。 提问(不按时间顺序): 1, 使用Linux epoll模型,水平触发模式(Level-Triggered);当socket可写

杭电 acm 2009

求数列的和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 42988    Accepted Submission(s): 26574 Problem Description 数列的定义如

2009-CVPR - Image deblurring and denoising using color priors

项目地址:http://neelj.com/projects/twocolordeconvolution/ 没有代码=_= 微软研究院 非盲去模糊基于MAP超拉普拉斯先验+颜色先验 文章首先分析了Levin等人使用超拉普拉斯分布惩罚图像梯度(次线性惩罚函数),相比高斯分布更能建模自然图像0峰重尾梯度分布(the zero-peaked and heavy tailed gradient dis

2009年-2022年 地级市-环境污染处罚数据

环境污染处罚数据是环境保护领域中重要的信息资源,它记录了因违反环保法律法规而受到行政处罚或法律制裁的具体情况。这些数据对于提高公众的环保意识、促进企业采取环保措施以及推动环境治理具有重要作用。 数据内容概述 违法行为的主体:即受到处罚的个人或企业。违法事实:具体违反了哪些环保法律法规的行为。处罚依据:依据哪些法律法规进行处罚。处罚类型:如罚款、责令整改、停产整顿等。处罚金额:处罚的具体金额,通

SQL_CALC_FOUND_ROWS 和 FOUND_ROWS()实现对复杂sql实现分页与总条数查询

需求 ReturnResult result = new ReturnResult();try {List<Map> forList = (List<Map>) dao.findForList("Mapper.getList", map);int count = (int) dao.findForObject("Mapper.getCount", map);result.setData(for

Rows matched:1 Changed:0 Warings:0

1.结果: 出现Rows matched:1 Changed:0 Warings:0,原因是MySQL语句重复. 2.情况说明: 由于月末需要进行月结,财务逐渐需要将各个业务线数据,由线下转到线上进行系统自动做账,由于部分款项分摊数据之前是进行手工做账,在账务系统稳定之后,需要减少财务手工做账的场景,就需要进行相关款项分摊数据进行初始化,使得和K3的余额发生情况能够匹配. 3.初始化过程 (1).