题目链接

https://atcoder.jp/contests/agc022/tasks/agc022_c

题解

大水题一道

就他给的这个代价,猜都能猜到每个数只能用一次

仔细想想,我们肯定是按顺序从大到小用,一个数用多次肯定没意义,于是证完了

并且所有元素独立

所以我们就是要从大到小贪心判断每个元素是否能不用

比如当前要判断\(x\)是否能不用,那么就判断用当前已经确定要用的集合并上所有小于\(x\)的数能不能达到目的

这个东西建个图判一下连通性就行了

时间复杂度\(O(N^4)\)

代码

#include<cstdio>
#include<cstdlib>
#include<iostream>
#define llong long long
using namespace std; void read(int &x)
{
int f=1;x=0;char s=getchar();
while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
x*=f;
} const int N = 50;
int f[N+3][N+3];
int a[N+3];
int b[N+3];
int n; bool check(llong sta)
{
for(int i=0; i<=N; i++) for(int j=0; j<=N; j++) f[i][j] = i==j?1:0;
for(int i=0; i<=N; i++)
{
for(int j=1; j<=i; j++)
{
if(sta&(1ll<<j)) {f[i][i%j] = 1;}
}
}
for(int k=0; k<=N; k++)
{
for(int i=0; i<=N; i++)
{
for(int j=0; j<=i; j++)
{
f[i][j] |= (f[i][k]&f[k][j]);
}
}
}
bool ret = true;
for(int i=1; i<=n; i++)
{
if(!f[a[i]][b[i]]) {ret = false; break;}
}
return ret;
} int main()
{
scanf("%d",&n); for(int i=1; i<=n; i++) scanf("%d",&a[i]); for(int i=1; i<=n; i++) scanf("%d",&b[i]);
llong sta = (1ll<<38)-2;
if(!check(sta)) {puts("-1"); return 0;}
for(int i=37; i>=1; i--)
{
llong tmp = sta^(1ll<<i);
if(check(tmp)) {sta = tmp;}
}
printf("%lld\n",sta);
return 0;
}

最新文章

  1. OpenCV 计算区域的内部参数
  2. 宏碁台式机,如何设置u盘启动
  3. iOS 学习 - 11.圆角(小于等于四个)类似气泡和计算字符高度
  4. 回发或回调参数无效。在配置中使用 &lt;pages enableEventValidation=&quot;true&quot;/&gt; 或在页面中使用 &lt;%@ Page EnableEventValidation=&quot;true&quot; %&gt; 启用了事件验证。
  5. mysql编译时报的一个警告warning: type-punning to incomplete type might break strict-aliasing rules,可能是bug
  6. C语言 预处理三(条件编译--#if)
  7. 【leetcode】4Sum
  8. AttributeError: &#39;NoneType&#39; object has no attribute &#39;bytes&#39; python3.4 win64
  9. 怒刷DP之 HDU 1257
  10. Windows下记事本编辑的Shell脚本放到Linux下执行出错,格式问题(/bin/bash^M: bad interpreter: 没有那个文件或目录)
  11. C++ 运行时类型识别 知道实例父类类型,显示出子类类型
  12. CSDN-Code平台使用过程中的5点经验教训
  13. 表示一个文件的 File 类型
  14. 再谈HTTP2性能提升之背后原理—HTTP2历史解剖
  15. [算法总结] 13 道题搞定 BAT 面试——字符串
  16. oracle监听的动态注册和静态注册
  17. bzoj4059
  18. Linux内核读书笔记第三周 调试
  19. Luogu5155 USACO18DEC Balance Beam(概率期望+凸包)
  20. spark work目录处理 And HDFS空间都去哪了?

热门文章

  1. kaggle笔记
  2. 使用Visual Studio 2019--调试汇编32位代码的详细步骤
  3. Hive 教程(七)-DML基础
  4. python基础之函数进阶
  5. leetcode hard
  6. [Next] 四.在next中引入redux
  7. Linux内核、mysql内核、Tcp/Ip内核、java等知识书籍
  8. WPF ListView多行显示
  9. tomcat进行压测时,cpu占用90%
  10. nginx配置详解和原理