• 2020.1.20


    t1

    【题意】

    给出无向图,1号点有1e8个人,每个人走到一个点就会对其进行破坏,每个点破坏a[i]次后就不能走了。求有好多个人可以通过最短路到达n点(最短路长度为最开始的最短路长度)。

    n,m<=500。

    【题解】

    正反各跑一遍最短路,判断出每条边是否存在于最短路径上,如果是,就加入新图中,新图中将每个点拆成两个,中间流量为a[i],所有边流量为inf。跑最大流即可。

    t2

    【题意】

    有两组,分别有n1和n2个数,每个数中有三个量A,B,C。需要将两组中的数配对,满足①他们在不同组内,②A,B,C中最多有一组互质,求最多可以配出几对。

    n1,n2<=30000。A,B,C<=200。

    【题解】

    考虑到A,B,C很小,n1,n2很大不能直接连边,可以尝试在两组中间加一些中转点才好快速连边进行计算。如果有A,B,C中有两个数有公共质因数就可以配对,所以如果两组中两个点都可以和一个新点连边,则表示他们可以配对,所以将A,B,C分解质因数,用一些点分别表示(A,B)(B,C)(A,C)有质因数为dui[i],dui[j]。200内质因数只有46个所以要加3*46*46个点,组中的点直接向他A,B中所有质因数所代表的点连边即可,流量为1。跑最大流即可。

    t3

    【题意】

    有n个数,现在要选出一些数,满足和最大并且其中不存在两个数,a,b使得a*a+b*b=c*c,gcd(a,b)=1。

    【题解】

    考虑两个数a,b,如果都是偶数,则满足第二个条件,如果都是奇数,则他们的平方和%4余2,所以所有奇数,所有偶数可以共存,只有奇偶有可能不能共存,所以可以按奇偶分成二分图,使用所有数的和减去最小割即可。

  • 相关阅读:
    Redis常见七种使用场景(PHP实战)
    session垃圾回收机制
    header 头各种类型文件下载
    SQL优化(面试题)
    spring中bean的生命周期
    JAVA的分布式锁
    Java微服务下的分布式事务介绍及其解决方案
    Java反射
    类加载的三种方式
    Sql语句的基本查询用法,两表联查,3表联查
  • 原文地址:https://www.cnblogs.com/betablewaloot/p/12219837.html
Copyright © 2020-2023  润新知