枚举——POJ2965

POJ2965


/*
	Amazing!
	************************************************************
	算法原理:
	设'+'出现在位置(i,j)
	对于除去{(i,j)+(i,:)+(:,j)}的开关每个被翻转2次;
	对于{(i,:)+(:,j)}上的开关每个被同行(同列)翻转4次;
	对于(i,j)上的开关被翻转7次(在实现过程中是(8-1)次);
	这样,偶数次的输出为开关不变化,只有奇数次才会有翻转的效果!
	Notice:只对偶数*偶数(此题为4*4)的矩阵成立!
	************************************************************
	实现:
	1)初始化一个handle矩阵,初值为0。
	2)在输入的过程中,一旦有'+'(即'closed'状态)
	①handle{(i,:)+(:,j)}++;
	②handle(i,j)--	,减去的是二重循环中重复计算的(i,j)位置的值
	3)完成输入之后,handle[4][4]上每个位置的计算次数已经确定,
	出现奇数次的位置即为所需翻转的位置,出现的总的次数和即为步骤!
	Notice:因为所需是输出的总效果࿰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值