第一题:破碎的矩阵

题目链接:https://ac.nowcoder.com/acm/contest/932/A

       刚看到这题的时候感觉特别熟悉...诶,这不就是codeforces某场比赛的某某题吗?(心里激动了一波)仔细看完题目

   才发现这并不是codeforces那道构造题,但是多多少少还是有点类似...那题是问我们矩阵是否可以构造,这题则问的

   是最多可以构造几个符合题意的矩阵。

      首先要做的和cf那题一样都是先将每行的异或和异或后存于ans1,每列的异或和异或后存于ans2,这样ans1就等于每

      一行的每个元素异或总和,ans2就等于每一列的每个元素异或总和。

   很快我们会发现ans1、ans2其实就是这个矩阵的每一个元素的异或和,那么当ans1^ans2==0(即ans1 == ans2)时,  

   用题目数据构造出来的矩阵就是合法的了,否则该矩阵不存在,直接输出0即可。

   那么当矩阵合法的时候我们怎么算出符合题意的矩阵的个数呢?

      其实很简单——对于每行,我们可以在前面n-1列任意放置一个小于等于x的数,而第n列总有唯一合法的填数方案。

    同理对于每一列也是一样的,所以我们可以得出合法的矩阵的总个数就是(x+1)的(n-1)*(m-1)次方

   下面贴代码

 #include<bits/stdc++.h>
using namespace std;
#define ll long long
#define inf 0x3f3f3f
const ll N = 1e6+;
ll pow_mod(ll a, ll n, ll m)
{
a%=m;
long long ans = ;
while(n)
{
if(n&)
{
ans = (ans * a) % m;
}
a = (a * a) % m;
n >>= ;
}
return ans;
}
ll n,m,x,p;
ll a[N],b[N];
int main()
{
ios::sync_with_stdio(false);
int t;
cin>>t;
while(t--)
{
cin>>n>>m>>x>>p;
ll ans1,ans2;
for(ll i=; i<=n; i++)
{
cin>>a[i];
if(i == )
ans1 = a[i];
else
ans1 = ans1^a[i];
}
for(ll i=; i<=m; i++)
{
cin>>b[i];
if(i == )
ans2 = b[i];
else
ans2 = ans2^b[i];
}
if(ans1^ans2)
{
cout<<<<endl;
continue;
} ll ans = pow_mod(x+,(n-)*(m-),p);
cout<<ans<<endl;
}
return ;
}

   

  第二题bit树调bug调了三十分钟测试样例还是没过,所以果断暴力取30分。

  暴力完第二题已经快11点了,此时心态已崩。想着11点就可以和小伙伴们去

  吃饭,直接写个特判拿了5分

  以后题解多了会把这两题也补上,目前就这样...

   

最新文章

  1. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
  2. 使用非Web方式从CA申请证书
  3. php 自动绑定di容器实现
  4. JVM ,JIT ,GC RUNTIME 解析
  5. Storm累计求和进群运行代码
  6. 三、android中Handle类的用法
  7. SecureCRT连接虚拟机中的Linux系统(Ubuntu)
  8. ics OverbyteIcsHttpProt
  9. Javascript预解析、作用域、作用域链
  10. PowerShell因为在此系统中禁止执行脚本解决方法
  11. 站在Java的角度看LinkedList
  12. 保存和恢复 Android Fragment 的状态
  13. lodash源码分析之NaN不是NaN
  14. ActiveMQ的使用
  15. ThinkPHP5+Apicloud+vue商城APP实战
  16. Centos 7 搭建.net web项目
  17. 《Gradle权威指南》--Java Gradle插件
  18. 运用visual studio进行简单的单元测试
  19. Unsupported major.minor version 49.0的错误解决
  20. 深入理解Java类加载器(1)

热门文章

  1. 【故障公告】docker swarm 集群问题造成新版博客后台故障
  2. 优秀的github项目学习
  3. PostGIS 使用Mysql_fdw同步ArcGIS填坑记录
  4. Asis CTF 2016 b00ks理解
  5. 剖析nsq消息队列(四) 消息的负载处理
  6. Selenium+Java(二)Selenium打开IE浏览器
  7. 【前端】之jQuery基础知识
  8. 为NLog自定义LayoutRenderer
  9. Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览
  10. virtualenv 在windows下的简单应用