题目链接

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

题解

大水题一道

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

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

并且所有元素独立

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

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

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

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

代码

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<iostream>
  4. #define llong long long
  5. using namespace std;
  6. void read(int &x)
  7. {
  8. int f=1;x=0;char s=getchar();
  9. while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
  10. while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
  11. x*=f;
  12. }
  13. const int N = 50;
  14. int f[N+3][N+3];
  15. int a[N+3];
  16. int b[N+3];
  17. int n;
  18. bool check(llong sta)
  19. {
  20. for(int i=0; i<=N; i++) for(int j=0; j<=N; j++) f[i][j] = i==j?1:0;
  21. for(int i=0; i<=N; i++)
  22. {
  23. for(int j=1; j<=i; j++)
  24. {
  25. if(sta&(1ll<<j)) {f[i][i%j] = 1;}
  26. }
  27. }
  28. for(int k=0; k<=N; k++)
  29. {
  30. for(int i=0; i<=N; i++)
  31. {
  32. for(int j=0; j<=i; j++)
  33. {
  34. f[i][j] |= (f[i][k]&f[k][j]);
  35. }
  36. }
  37. }
  38. bool ret = true;
  39. for(int i=1; i<=n; i++)
  40. {
  41. if(!f[a[i]][b[i]]) {ret = false; break;}
  42. }
  43. return ret;
  44. }
  45. int main()
  46. {
  47. 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]);
  48. llong sta = (1ll<<38)-2;
  49. if(!check(sta)) {puts("-1"); return 0;}
  50. for(int i=37; i>=1; i--)
  51. {
  52. llong tmp = sta^(1ll<<i);
  53. if(check(tmp)) {sta = tmp;}
  54. }
  55. printf("%lld\n",sta);
  56. return 0;
  57. }

AtCoder AGC022C Remainder Game (图论)的更多相关文章

  1. AtCoder AGC038D Unique Path (图论)

    题目链接 https://atcoder.jp/contests/agc038/tasks/agc038_d 题解 orz zjr神仙做法 考虑把所有\(C_i=0\)的提示的两点连边,那么连完之后的 ...

  2. AtCoder AGC036D Negative Cycle (图论、DP)

    题目链接 https://atcoder.jp/contests/agc036/tasks/agc036_d 题解 这都是怎么想出来的啊..目瞪口呆系列.. 第一步转化至关重要: 一张图中不存在负环意 ...

  3. 【Atcoder】AGC022 C - Remainder Game 搜索

    [题目]C - Remainder Game [题意]给定n个数字的序列A,每次可以选择一个数字k并选择一些数字对k取模,花费2^k的代价.要求最终变成序列B,求最小代价或无解.n<=50,0& ...

  4. AtCoder AGC004F Namori (图论)

    题目链接 https://atcoder.jp/contests/agc004/tasks/agc004_f 题解 神仙题.. 首先考虑树的情况,树是二分图,因此假设我们对二分图进行黑白染色,那么操作 ...

  5. AtCoder Beginner Contest 133-C - Remainder Minimization 2019

    https://atcoder.jp/contests/abc133/tasks/abc133_c 思路:由于L,R区间太大,所以不能暴力枚举.由于求(i*j)%2019的最小值,那么2019的倍数对 ...

  6. AtCoder Beginner Contest 075 C bridge【图论求桥】

    AtCoder Beginner Contest 075 C bridge 桥就是指图中这样的边,删除它以后整个图不连通.本题就是求桥个数的裸题. dfn[u]指在dfs中搜索到u节点的次序值,low ...

  7. Atcoder Regular Contest 092 D - Two Faced Edges(图论+bitset 优化)

    Atcoder 题面传送门 & 洛谷题面传送门 orz ymx,ymx ddw %%% 首先既然题目要我们判断强连通分量个数是否改变,我们首先就将原图 SCC 缩个点呗,缩完点后我们很自然地将 ...

  8. 【AtCoder】【思维】【图论】Splatter Painting(AGC012)

    题意: 有一个含有n个点的无向图,所有的点最初颜色均为0.有q次操作,每次操作将v[i]周围的距离小于等于d[i]的点全部都染成颜色c[i].最后输出每个点的最终的颜色. 数据范围: 1<=n, ...

  9. AtCoder Beginner Contest 103

    https://beta.atcoder.jp/contests/abc103 A - Task Scheduling Problem Time Limit: 2 sec / Memory Limit ...

随机推荐

  1. POJ - 2112 Optimal Milking (dijkstra + 二分 + 最大流Dinic)

    (点击此处查看原题) 题目分析 题意:在一个农场中有k台挤奶器和c只奶牛,每个挤奶器最多只能为m只奶牛挤奶,每个挤奶器和奶牛都视为一个点,将编号1~k记为挤奶器的位置,编号k+1~k+c记为奶牛的位置 ...

  2. JavaScript处理股票数据

    1, 先使用Ajax发送异步请求到:http://hq.sinajs.cn/list=s_sh000001 2, 然后用[,]切割成数组https://www.w3school.com.cn/js/j ...

  3. mysql架构总结

    1.单机架构模式,多用于测试,实际生产中需优化: 2.一主多从,主数据库读和写,从数据库从主数据库同步,仅负责读,可解决一定访问量的需求: 3.MHA(Master High Availability ...

  4. 我爬的entityFramework的坑

    老师使用的是mysql的数据库,但是我只有sqlserver的数据库,于是就照猫画虎,想连自己的sqlserver,结果一连跳了几个坑: 坑一:appsetting中的字符串连接是后面还有个s, 坑二 ...

  5. 二、redis学习(java操作redis缓存的工具jedis)

  6. 图片哈希概论及python中如何实现对比两张相似的图片

    Google 以图搜图的原理,其中的获取图片 hash 值的方法就是 AHash. 每张图片都可以通过某种算法得到一个 hash 值,称为图片指纹,两张指纹相近的图片可以认为是相似图片. 以图搜图的原 ...

  7. Flask-migrate基本使用方法

    数据库迁移操作顺序: 1.python 文件 db init 2.根据需求修改模型 3.python flaskapp文件 db migrate -m"新版本名(注释)" 4.py ...

  8. LintCode 53---翻转字符串中的单词

    public class Solution { /* * @param s: A string * @return: A string */ public static String reverseW ...

  9. 基于bootstrap的分页插件

    之前做的分页,是自己后端写一堆代码,返回给前端页面显示,感觉比较繁重.不灵活.今天研究下基于bootstrap的做的插件,整理如下: 在使用bootstrap的插件的时候,需要导入一些css.js. ...

  10. CentOS 7系统时间与实际时间差8个小时

    1.查看系统时间: [root@localhost sysconfig]# timedatectl Local time: 一 2017-11-06 21:13:19 CST Universal ti ...