题目大意: 有个\(n*m\)的网格图 每个点可以选择\(A\),获得\(A[i][j]\)或选\(B\)获得\(B[i][j]\)的收益 相邻点有\(k\)个不同可以获得\(C[i][j]\)的收益,求最大收益 类似与文理分科那题,不过这次是相邻不同有额外收益,需要稍微变形一下 我们把网格黑白染色 对于黑色点向\(S\)连\(A[i][j]\)边,向汇点连\(B[i][j]\)边 对于白色点向\(S\)连\(B[i][j]\)边,向汇点连\(A[i][j]\)边 然后对于相邻点互相连\(C[x…
正解:最小割 解题报告: 传送门 就文理分科模型嘛$QwQ$?所以就,跑个最小割呗,然后就做完辣?仔细想想细节发现并麻油那么简单嗷$QwQ$ 先考虑如果没有这个$k\cdot C_{i,j}$的贡献就是个裸的最小割呗?就建两排点分别和$ST$相连表示商业区$or$工业区 然后现在说,四连通中每有一个不同就会增加一个$C_{i,j}$? 考虑到如果相同就是文理分科模型了,就可以增加节点表示同为商业$or$同为工业然后瞎连下就好$QwQ$ 然后现在问题就在它是问相邻不同$QAQQQQQ$ 这里有个很…
题目 最近房地产商 GDOI (Group of Dumbbells Or Idiots) 从 NOI (Nuts Old Idiots) 手中得到了一块开发土地. 据了解,这块土地是一块矩形的区域,可以纵横划分为 \(N\times M\) 块小区域.GDOI 要求将这些区域分为商业区和工业区来开发. 根据不同的地形环境,每块小区域建造商业区和工业区能取得不同的经济价值.更具体点,对于第 \(i\) 行第 \(j\) 列的区域,建造商业区将得到 \(A_{ij}\) 收益,建造工业区将得到 \…
题目链接 luogu P2757 [国家集训队]等差子序列 题解 线段树好题 我选择暴力 代码 // luogu-judger-enable-o2 #include<cstdio> inline int read() { int x = 0,f = 1; char c = getchar(); while(c < '0' || c > '9')c = getchar(); while(c <= '9' && c >= '0') x = x * 10 +…
题目链接 luogu P2619 [国家集训队2]Tree I 题解 普通思路就不说了二分增量,生成树check 说一下坑点 二分时,若黑白边权有相同,因为权值相同优先选白边,若在最有增量时出现黑白等权边则更新出 > 和 = 最小值等价,那么不会更新到 = 情况, 因为等价,那么处理时只需看做把等价的黑白两边交换即可 需要每次直接减去 增量 * need 的价值 代码 #include<cstdio> #include<algorithm> const int maxn =…
题面 传送门:洛咕 Solution 调到自闭,我好菜啊 为了方便讨论,以下式子\(m>=n\) 为了方便书写,以下式子中的除号均为向下取整 我们来颓柿子吧qwq 显然,题目让我们求: \(\large \sum_{i=1}^n\sum_{j=1}^m lcm(i,j)\) \(lcm\)没法玩,我们转到\(gcd\)形式: \(\large \sum_{i=1}^n\sum_{j=1}^m \frac{i*j}{gcd(i,j)}\) 根据套路,我们去枚举\(gcd\) \(\large \s…
P1297 [国家集训队]单选错位 题目背景 原 <网线切割>请前往P1577 题目描述 gx和lc去参加noip初赛,其中有一种题型叫单项选择题,顾名思义,只有一个选项是正确答案.试卷上共有n道单选题,第i道单选题有ai个选项,这ai个选项编号是1,2,3,…,ai,每个选项成为正确答案的概率都是相等的.lc采取的策略是每道题目随机写上1-ai的某个数作为答案选项,他用不了多少时间就能期望做对 \sum_{i=1}^n \frac{1}{a_i}∑i=1n​ai​1​ 道题目.gx则是认认真…
P2619 [国家集训队2]Tree I 题意 题目描述 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有\(need\)条白色边的生成树. 题目保证有解. 输入输出格式 输入格式: 第一行\(V,E,need\)分别表示点数,边数和需要的白色边数. 接下来\(E\)行 每行\(s,t,c,col\)表示这边的端点(点从\(0\)开始标号),边权,颜色(\(0\)白色\(1\)黑色). 输出格式: 一行表示所求生成树的边权和. 输入输出样例 输入样例#1: 2 2 1 0 1…
题目链接:https://www.luogu.org/problemnew/show/P1494 #include <cstdio> #include <algorithm> #include <iostream> #include <cmath> using namespace std; const int maxn = 50000+10; inline long long read() { long long k=0; char c; c=getchar…
题目链接:https://www.luogu.org/problemnew/show/P1903 裸的...带修莫队... 比较麻烦吧(对我来说是的) 两个变量分开记录查询和修改操作. #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #define ri register using namespace std; ; , qnum = , unum = ,…