题目描述
给定一张 n 个点 m 条边的无向图。
对于 {1,2,…,n} 的某个子集 A,A 的分数为:
- 初始分数为 0;
- 对于所有 i∈A,分数加 ai;
- 对于所有边 (u,v,k)(代表从 u 到 v 值为 k 的边)满足 u∈A 并且 v∈A,分数减 k;
现在请你计算出所有的 A 中,分数最高是多少。
输入格式
令 q=101,b=137,p=1,000,000,007。
第一行包含六个整数 n,m,x0,y0,a0,z0(1≤n≤100000,0≤m≤2n,0≤x0,y0,a0,z0<P)。
对于 1≤i≤n,有 ai=(q×ai−1+b)modp。
对于 1≤i≤m, 有 xi=(q×xi−1+b)modp,yi=(q×yi−1+b)modp,zi=(q×zi−1+b)modp。对于每一组 (xi,yi,zi) 描述了一条连接 (ximodn)+1,(yimodn)+1 的值为 zi 的边,如果 xi=yi 或者之前出现过连接 xi 和 yi 的边,则忽视这条边(即这条边不存在)。
输出格式
输出一行一个整数表示最高分数。
10 5 1 2 3 4
3909327860
来源
来自 2021 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2021)初赛。
题解等资源可在 https://github.com/THUSAAC/THUPC2021-pre 查看。