HDU 4421 Bit Magic(奇葩式解法)
2024-08-25 09:31:50
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=4421
题目大意:
给了你一段代码, 用一个数组的数 对其进行那段代码的处理,是可以得到一个矩阵
让你判断这个矩阵能否由一个数组转化而来。
思路: 既然每组数据可以得到,那么他肯定能消去。 我们用一个数组P[i][j] 保存 a[i]^a[j] 的值
a[i]^a[j] 我们可用 P[i][j] = P[i][j-1]^a[j-1]^a[j]
这样我们就可以找出所有 P[i][j] = a[i]^a[j] 的值
然后自己推出了个公式
(a^b)&(a&b) == 0
(a^b)&(~(a|b)) == 0
(a^b)^(a^b) == 0
然后 用所有找出来的值进行计算 当所有值 为 0 则 满足
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<queue>
#include<string.h>
#include<iostream>
#include<vector>
using namespace std;
#define maxn 560
__int64 map[maxn][maxn];
__int64 P[maxn][maxn], n;
bool Judge()
{
__int64 i, j, sum;
for(i = ; i<n; i++)
{
if(map[i][i])
return ;
for(j = ; j<i; j++)
{
sum = map[i][j] ^ map[j][i];
if(sum)
return ;
}
}
memset(P,,sizeof(P));
for(i = ; i < n; i++)
{
P[i][i] = ;
for(j=i+; j <= n; j++)
P[i][j] = P[i][j-]^map[j-][j];
} for(i = ; i<n; i++)
{
for(j = i+; j<n; j++)
{
if(i% == && j% == )//(a^b)&(a&b)
sum = P[i][j]&(map[i][j]); else if(i% == && j% == )//(a^b)&(~(a|b))
sum = P[i][j]&(~map[i][j]);
else//(a^b)^(a^b)
sum = P[i][j]^map[i][j]; if(sum)
return ;
}
}
return ;
}
int main()
{
int i, j;
while(scanf("%I64d",&n) != EOF)
{
for(i = ; i<n; i++)
{
for(j = ; j<n; j++)
scanf("%I64d",&map[i][j]);
} if(Judge())
printf("YES\n");
else
printf("NO\n");
}
return ;
}
最新文章
- C#夯实基础之多线程三:线程的优先级
- 进阶系列一【绝对干货】---SQL语句执行效率优化
- ";递归";实现";约瑟夫环";,";汉诺塔";
- 源代码版本管理与项目管理软件的认识与github的注册
- java基础-表达式,语句和代码块
- JDK源码分析之集合03LinkedList
- Uva 10305 - Ordering Tasks 拓扑排序基础水题 队列和dfs实现
- (转) DockPanel 右键增加关闭,除此之外全部关闭的功能
- Cppcheck代码分析(2)
- js基础知识之_入门变量和运算符
- C# 调用外部程序,并获取输出和错误信息
- 比NotePad++更好的文本代码(C#)编辑器Sublime Text
- CentOS/RedHat rpm方式安装Apache2.2
- django 中文乱码问题
- 提纲挈领webrtc之NS(noise suppression)模块
- Android Material Design(一)史上最全的材料设计控件大全
- 微服务下的容器部署和管理平台Rancher
- java结合testng,利用txt做数据源的数据驱动实例
- 【公众号系列】在SAP里查看条件记录的方法
- 【AT1219】历史研究
热门文章
- sed 批量替换多个文件里的某个字符/串
- apk代码的破解
- 模板-->;单变元模线性方程
- Pyhton开发【第五篇】:Python基础之杂货铺
- noip 2013 华容道
- ASP.NET实现文件下载
- 关于异常的疑难解答:System.Runtime.InteropServices.COMException
- C# Double String互转
- idea maven web工程明明添加了maven lib的依赖,但启动web容器时始终报No Class Found?
- cas sso单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析