AGC 022 C - Remainder Game
2024-10-08 09:47:50
显然权值是 2^i 这种的话就是要你贪心,高位能不选就不选。
并且如果 % x 之后再去 % 一个>=x的数是没有用的,所以我们可以把操作的k看成单调递减序列。
这样的话就是一个有向图联通性问题了,直接做就可以了。
#include<bits/stdc++.h>
#define ll long long
using namespace std; int n,a[55],b[55];
bool v[55][55];
ll ans=0; inline bool can(){
memset(v,0,sizeof(v));
for(int i=1;i<=50;i++) if((1ll<<i)&ans)
for(int j=0;j<=50;j++) v[j][j%i]=1; for(int i=0;i<=50;i++) v[i][i]=1; for(int k=0;k<=50;k++)
for(int i=0;i<=50;i++)
for(int j=0;j<=50;j++) if(v[i][k]&&v[k][j]) v[i][j]=1; for(int i=0;i<n;i++) if(!v[a[i]][b[i]]) return 0;
return 1;
} int main(){
scanf("%d",&n),ans=1ll<<51,ans-=2;
for(int i=0;i<n;i++) scanf("%d",a+i);
for(int i=0;i<n;i++) scanf("%d",b+i); if(!can()){ puts("-1"); return 0;} for(int i=50;i;i--){
ans^=1ll<<i;
if(!can()) ans|=1ll<<i;
} printf("%lld\n",ans);
return 0;
}
最新文章
- asp.net下webform的ReadOnly和Enabled属性最终渲染的结果
- java向oracle数据库中插入当前时间
- jQuery数组的遍历 function的加载
- Windows Service 之 详解(一)
- Android EditView 阻止软键盘自动弹出
- DexIndexOverflowException: Cannot merge new index 66080 into a non-jumbo instruction!
- css 权威指南笔记( 五)结构和层叠之三种样式来源
- document 例子
- BZOJ 1208 HNOI2004 宠物收容所 平衡树/set
- Uber广州车主官网本周将暂关闭
- 《android开发艺术探索》读书笔记(二)--IPC机制
- MQTT报文格式
- ant安装报错:ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME.
- Linux下面将windows写的脚本转换成 Linux 格式的文件
- localtime函数和strftime函数
- springboot多环境(dev、test、prod)配置
- P2176 [USACO14FEB]路障Roadblock
- windows本地hash值获取和破解详解
- 使用C++实现二叉搜索树的数据结构
- 重构改善既有代码设计--重构手法08:Replace Method with Method Object (以函数对象取代函数)
热门文章
- JS之递归(例题:猴子吃桃)
- 【洛谷 P3628】 [APIO2010]特别行动队 (斜率优化)
- .NET Core Data Access
- jq_从右向右的滑入滑出效果
- Linux命令--hostname和uname
- vuejs怎么在服务器部署?
- skb管理函数之skb_clone、pskb_copy、skb_copy
- python基础===open()文件处理使用介绍
- 【LA3882】And then there was one
- VPS性能测试(2):内存大小、交换空间、高速缓存、实际使用内存