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,所以所有奇数,所有偶数可以共存,只有奇偶有可能不能共存,所以可以按奇偶分成二分图,使用所有数的和减去最小割即可。