比赛的时候过了两道,第三道超时20分钟过得 A题简单,我用了17分钟才写出来,看了界面熊大大的status,四分钟,直接把我吓傻,看了他的代码才知道,与大大之间的差距有多大: #include <iostream>#include <cstdio>#include <cmath>#include <cstring>#define LL long long#define pir pir
题目 树是无环的连通无向图。加权树具有分配给每条边的权重。两个顶点之间的距离是连接它们的路径上的最小权重之和。 给定一棵具有 n 个顶点的加权树,每条边的权重为 1。将 d(v) 表示为顶点 1 和顶点 v 之间的距离。 如果可以在任意两个顶点 a 和 b (1≤a,b≤n) 之间临时添加一条权重为 x 的边,则令 f(x) 为 max{d(v),1<=v<=n} 的最小可能值。请注意,经过此操
题目: 注:集合{s1,s2,…,sm}的异或和被定义为 s 1 ⊕ s 2 ⊕ … ⊕ s m s_1⊕s_2⊕…⊕s_m s1⊕s2⊕…⊕sm,其中⊕ 表示按位异或运算。 在赢得IOI后,维克多给自己买了一个n×n的网格,每个单元格中都包含整数。n是一个偶数。第i行和第j列单元格中的整数为 a i , j a_{i,j} ai,j。 不幸的是,Mihai从Victor那里偷走了网
题意: 给定一个数组a,与一个集合B,每次可以选择集合B中的一个元素作为翻转a中一段的大小。使得 ∑ a i \sum a_{i} ∑ai最大 题解: 如果我们有x、y∈B(假设x>y),等价于拥有一个x-y大小置入B中,方法是乘以从大小为 x-y 的区间的位置开始的大小为 x 的区间,和一个大小为 y 的区间,结束于与区间 x 相同的位置.或者,将一个大小为 x 的区间与大小为 x−y
题意: 给定编号从 1 到 n的 n 个元素,元素 i 具有值 ai 和颜色 ci,最初,对于所有 i,ci=0。 可以应用以下操作: 选取三个元素i、j、k(1≤i<j<k≤n),使得ci、cj、ck都等于0且ai=ak,则令cj =1。 问 m a x ∑ c i max\sum ci max∑ci为多少 题解: 可以将这题看成区间覆盖的问题,只要两头有个相同的数显然可以将中间所有的ci
题意: 给定一个值n,表示数组为[0-n-1],其中n一定是2的整数幂,将数字两两配对分别为a[i],b[i],使得 ∑ a i & b i = k \sum a_{i} \&b_{i}=k ∑ai&bi=k, 题解: 1.直接构造出一个答案为k,使得剩下的组合都为0即可。 我们知道: n-1&k=k设c(k)为k的补码, k&c(k)=0 再分情况讨论: Case 0<=k<n−1
A. Too Min Too Max (数学) 题意: 给定长度为 n n n的数组 a a a,求下列表达式的最大值, ( i , j , k , l ) (i,j,k,l) (i,j,k,l)为不同的索引 ∣ a i − a j ∣ + ∣ a j − a k ∣ + ∣ a k − a l ∣ + ∣ a l − a i ∣ |a_i - a_j| + |a_j - a_k| + |a
这道题是普及-,结果我比赛时想了整整一个小时。。。果然我还是太菜了啊QAQ 题目大意 解题思路 佬曰:“有人看到这道题直接网络流。” 网络流?最大独立集?大可不必。题目中最关键的一句话其实是 注意:输入数据不保证 gcd ( a , b ) = 1 \gcd(a,b)=1 gcd(a,b)=1。 真是一语点醒梦中人。事实上,我们需要充分利用 a a a, b b b
传送门 A. New Year Garland 题意:将r个红灯和g个绿灯b个蓝灯串成一串,如果能使相邻两个灯不同色就输出YES,否则输出NO。(开头和结尾可以同色)。 思路:简单的思路,个数最多的灯max,个数最少的灯min,个数居中的灯mid。只要是(max-min)>mid+1;就是合法的方案。 AC代码: #include<bits/stdc++.h>using namespa