博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu5386(暴力)
阅读量:5828 次
发布时间:2019-06-18

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

题意:

给出两个n*n的矩阵,一个作为初始矩阵。一个作为目标矩阵,给出m个操作,操作有两种,一种是“L,x,y”。代表我们要把x这一行赋成y,还有一种是“H,x,y”,代表要把x这一列赋成y。问我们怎样安排这些操作才干把初始矩阵转化成目标矩阵。输出方案。special judge

思路:

首先明白一点,初始矩阵是没实用的~,依照题解的说法。我们能够按顺序枚举全部操作,假设是L操作,我们就在目标矩阵中找一行都是y的。把这一行都更成0,同一时候把答案更新,如此往复,直至我们得到一种方案。

附上题解代码(绍兴一中的):

#include 
#include
using namespace std;int T,n,m,t,i,j,k,l;int a[105][105],b[505],c[505],ans[505];char opt[505],ch;int main(){ scanf("%d",&T); for(;T;--T) { scanf("%d%d",&n,&m);t=0; for(i=1;i<=n;++i) for(j=1;j<=n;++j) scanf("%d",&a[i][j]); for(i=1;i<=n;++i) for(j=1;j<=n;++j) scanf("%d",&a[i][j]); for(i=1;i<=m;++i) { for(ch=getchar();ch!='H'&&ch!='L';ch=getchar()); opt[i]=ch;scanf("%d%d",&b[i],&c[i]); } for(;t
n) { ans[++t]=i;b[i]=0; for(j=1;j<=n;++j)a[j][k]=0; } } else { for(j=1;j<=n;++j) if(a[k][j]&&a[k][j]!=c[i]) break; if(j>n) { ans[++t]=i;b[i]=0; for(j=1;j<=n;++j)a[k][j]=0; } } } } for(i=m;i>=1;--i)printf("%d ",ans[i]); printf("\n"); }}

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

你可能感兴趣的文章
Flex很难?一文就足够了
查看>>
【BATJ面试必会】JAVA面试到底需要掌握什么?【上】
查看>>
CollabNet_Subversion小结
查看>>
mysql定时备份自动上传
查看>>
Linux 高可用集群解决方案
查看>>
17岁时少年决定把海洋洗干净,现在21岁的他做到了
查看>>
linux 启动oracle
查看>>
《写给大忙人看的java se 8》笔记
查看>>
倒计时:计算时间差
查看>>
Linux/windows P2V VMWare ESXi
查看>>
Windows XP倒计时到底意味着什么?
查看>>
tomcat一步步实现反向代理、负载均衡、内存复制
查看>>
运维工程师在干什么学些什么?【致菜鸟】
查看>>
Linux中iptables详解
查看>>
java中回调函数以及关于包装类的Demo
查看>>
maven异常:missing artifact jdk.tools:jar:1.6
查看>>
终端安全求生指南(五)-——日志管理
查看>>
Nginx 使用 openssl 的自签名证书
查看>>
创业维艰、守成不易
查看>>
PHP环境安装套件:快速安装LAMP环境
查看>>