思维
文章平均质量分 59
思维
Jozky86
这个作者很懒,什么都没留下…
展开
-
cf1556D. Take a Guess
cf1556D. Take a Guess题意:交互题有n个数和k个询问,你最多只能询问2n次,可以询问任意两个位置数的or或者是and,然后输出这n个数的第k大数题解:先说个结论:x + y = (x or y) + (x and y)(嘶,加法器的感觉)如果我们知道x和y的or和and,就可以得到x+y的值那我们可以这样做,询问a[1]与后面所有数的or和and,这样就知道了所有数与a[1]的和,此时c[i]=a[i]+a[1]然后我们再询问a[2]和a[3]的or和and,得到了原创 2021-09-01 17:58:09 · 190 阅读 · 0 评论 -
cf1556A. A Variety of Operations
cf1556A. A Variety of Operations题意:有两个数a,b一开始都是0,现在有三种操作:给a和b都加ka加k,b减ka减k,b加k问从a=0,b=0到a=c,b=d最少需要几步?题解:k=(c+d)/2我们可以先用第一种操作将0,0都加到k,k.然后一个减,一个加,实现到c,d,这样需要两步如果c和d的差为奇数,则无法通过操作实现代码:// Problem: A. A Variety of Operations// Contest: Codeforce原创 2021-09-01 17:34:05 · 254 阅读 · 0 评论 -
cf1561C. Deep Down Below
cf1561C. Deep Down Below题意:有个英雄,英雄有自己的力量值,有n个洞穴,每个洞穴有ki个怪物,每个怪物有自己的血量,当你力量值大于怪物血量,你就杀死他,否则你就失败,你每杀死一个怪物,力量值+1。如果你进了一个山洞,就必须将山洞里所有怪物杀光才行。英雄可以按照任意顺序进入山东,问打败所有怪物的最低力量值是多少?题解:山洞的进入顺序很重要,我们应该进整体怪物比较弱的山洞,相当于先练练级,等力量值升高了,再去挑战比较厉害的怪对于山洞里的第j个怪,血量是aj,那我们要战胜这个怪,原创 2021-08-25 21:27:00 · 295 阅读 · 0 评论 -
cf1561B. Charmed by the Game
cf1561B. Charmed by the Game题意:两人轮流发球,有两种得分的情况,一个是自己发球的回合得分,叫做"holds",另一种是在对方发球的回合得分,叫做"breaks",现在给出比赛结束后两个人的得分,问你两个人总的"breaks"的次数有多少种情况。不知道谁先发球,也不知道谁哪个回合取胜,只知道最后的得分题解:我们知道两人得分是x,y,总比赛数量就是x+y,先手发球次数为p=⌈a+b2⌉\lceil \frac{a+b}{2} \rceil⌈2a+b⌉,后手为q=⌊a+b2原创 2021-08-25 21:03:08 · 357 阅读 · 0 评论 -
Knowledge Test about Match
Knowledge Test about Match题意:给你一个B数组,要求你去匹配A数组[0,N-1],计算公式f(a,b)=∑i=0n−1∣ai−bi∣f(a,b)=\sum_{i=0}^{n-1}\sqrt{|a_{i}-b_{i}|}f(a,b)=∑i=0n−1∣ai−bi∣,使得结果尽量小。最终结果与标准结果相差<=4%即可。题解:第一反应就是直接排序sort,这样让大的和大的在一起匹配,小的和小的一起匹配,但是这样不行。因为匹配函数是sqrt,sqrt的导函数随着x的增加原创 2021-08-24 13:11:36 · 96 阅读 · 0 评论 -
cf1557D. Ezzat and Grid
cf1557D. Ezzat and Grid题意:有n行,每行有10910^9109列,仅仅由0和1构成现在给你1的存在位置,(i,l,r)表示第i行的第l列到第r列全为1你可以删除任意一行i,删除后,第i-1行和第i+1行为相邻现在我们要求求最多的行数,使得每个相邻两行最少有一列都是1(可以理解成上下相邻1),并输出删除了哪些行题解:对于i行,我们考虑前i-1行个是与i行满足要求的(即存在相邻1)。我们用线段树维护一个pair<int,int>sumsum.first表示以i原创 2021-08-23 17:11:21 · 236 阅读 · 2 评论 -
cf1557 C. Moamen and XOR
cf1557 C. Moamen and XOR题意:一个n位数,每一位小于2k2^k2k,如果a1&a2&…an>=a1⊕a2…⊕an,则获胜现在给你n和k,问能构造多少个序列是获胜的题解:奇偶分类+二进制考虑我们现在认为每个数的第k位都是1如果n为奇数,&的结果为1,⊕的结果也为1,此时第k位没有区别,我们去看第k-1位如果n为偶数,&的结果为1,⊕的结果为0,此时式子一定成立,剩下k-1位01随便填(因为第k位已经确定大小),方案就是(2k−1)原创 2021-08-23 15:24:13 · 200 阅读 · 0 评论 -
P4070 [SDOI2016]生成魔咒
P4070 [SDOI2016]生成魔咒题意:有n个字符xi,每次在S的末尾加入一个字符,(一开始S为空),每次加入xi后的不相同字串有多少个题解:做这个题首先要会后缀数组P3809 【模板】后缀排序,还要知道不同的子串如何求P2408 不同子串个数,这两个题我都有写过博客对于一个字符串,我们在其末尾加一个新字符,对这个字符串的height等变换还是很大的,整个格局都会被打乱(因为我们是后缀数组,在最后加,所有后缀都会改变)。但是如果我们在前面加,在最前面加字符,那只会额外产生一个新字符原本是原创 2021-08-23 13:57:22 · 196 阅读 · 0 评论 -
Display Substring
Display Substring题意:一个长度为n的字符串,每个字符有自己的价值,求第k小价值的不重复子串价值题解:首先众所周知,所有子串都可以用后缀的前缀来表示,这就和后缀数组扯上关系了我们可以直接二分这个价值val,然后去算大于val的不重复子串有多少个(比如有x个),如果x大于k,说明该价值的情况下存在第k小价值,那r可以缩小,否则l可以增大,这是二分过程那如果计算大于val的不重复子串有多少个,遍历后缀数组,对于每个后缀,如果其越长说明其价值越高,符合单调性,所有我们二分(没错二分套二原创 2021-08-23 00:54:09 · 198 阅读 · 0 评论 -
cf1555C Coin Rows
cf1555C Coin Rows题意:有一个两行m列的地图,每个格子都有对应的价值,有a,b两个人,都从左上角到右下角,且都只能向右向下走,a先出发,a每到一个格子,就会获得这个地方的价值,然后b再出发,如果一个格子被a走过,b再走就不会获得价值问b获得的最大价值题解:因为只能向右向下走,如果a从x位置向下走了,那么第一行x位置之后的a就拿不到,而第二行x位置之前的a也拿不到,而这些b可以选其一获得。取这两个部分的最大值代码:// Problem: C. Coin Rows// Cont原创 2021-08-18 12:40:02 · 190 阅读 · 0 评论 -
cf1555B. Two Tables
cf1555B. Two Tables题意:一个大矩阵空间内放置一个矩阵a,现在要再往这个空间内放一个矩阵b,a移动距离len才能放下b,问len最小是多少题解:不难发现左右或上下移动是最佳的,斜着移动是最不好的。此时我们就需要判断左右移动是否有足够的空间,并且移动后是否可以安放bb的安防一定是靠着墙角的代码:// Problem: B. Two Tables// Contest: Codeforces - Educational Codeforces Round 112 (Rated f原创 2021-08-18 12:23:01 · 155 阅读 · 0 评论 -
cf1555A. PizzaForces
cf1555A. PizzaForcesA. PizzaForces题意:有三种披萨,第一种有六块,需要花费15分钟,第二种有8块,需要花费20分钟,第三问有10块,需要花费25分钟。现在要吃x块披萨,问最少时间花费?题解:不拿看出其实对于每一块所花单位时间是一样的,都是2.5,而基本单位是6,8,10,你会发现对于大于6的任意偶数他们都能组成,也就是对于10的任意偶数其实就是10*2.5,如果x是大于10的任意奇数,那就要多点一些凑成偶数。对于小于6的就要买一个6份套餐代码:// Prob原创 2021-08-18 12:03:43 · 177 阅读 · 0 评论 -
Unfair contest(个人做法)
Unfair contest题意:两个人参赛,n个评委打分,去掉s个最高分,去掉t个最低分,剩下分求平均分,平均分大的获胜。你是第n个评委,此时已知前n-1个评委所打分数,现在轮到你打分,要求你在保证第一个人获胜的情况下,使得a-b最小(a为你给第一个人打的分数,b为你给第二个人打的分数)题解:我和队友是这样想的:目前已经有n-1对分数已经确定,此时要去掉s个最高分,t个最低分,那我们将最高的s-1个分数舍弃,最低的t-1个舍去,因为无论第n个人怎么取分,都必然要舍去。好,现在问题就成了,剩下成绩原创 2021-08-17 21:30:12 · 278 阅读 · 2 评论 -
Happy Number
Happy Number题意 :开心数是由仅由2,3,6组成的,问第n个开心数是哪个?1<=n<=1e9题解:正解应该是:首先确定k大数有几位:然后就知道k大数是x位下的第k’大的把2看成0,3看成1,6看成2问题就变成三进制数转换我第一反应其实就是3进制,只不过用2,3,6代替了0,1,2,然后我就直接开始求n的三进制,发现不大对,我手写列举一部分,2,3,6,22,23,26…,22在三进制中是00,23代表的是01,说明这里的三进制应该是:0,1,2,00,01,02,原创 2021-08-15 11:22:37 · 97 阅读 · 0 评论 -
P4159 [SCOI2009] 迷路
P4159 [SCOI2009] 迷路题意:该有向图有 n 个节点,节点从 1 至 nn 编号,windy 从节点 1 出发,他必须恰好在 t 时刻到达节点 n。现在给出该有向图(带边权),你能告诉 windy 总共有多少种不同的路径吗?答案对 2009 取模。题解:如果边权只有0和1,那么就是矩阵快速幂的板子题,可惜不是,现在边权大于1,就不是存板子,但是边权也小于10,那也就是我们可以把这个1个点拆开看,最多也就拆成9个而已。我们令序数对(i,j),i属于[1,n],j∈[0,8],表示点原创 2021-08-13 17:44:16 · 79 阅读 · 0 评论 -
cf1523B. Lord of the Values
cf1523B. Lord of the Values题意:给你一个数组,有n个数,n为偶数,a1,a2…an现在有两个操作:对于i<j操作1:ai=ai+aj操作2:aj=aj-ai把原数组转换为-a1,-a2,-a3…题解:一开始没思路。。cf的b题应该不会很难。。题目说了n是偶数个?说明什么?我突然明白,n是偶数个,说明可以两两一组,然后组内实现取相反数代码:// Problem: B. Lord of the Values// Contest: Codeforce原创 2021-08-10 21:27:09 · 138 阅读 · 0 评论 -
cf1553D. Backspace
cf1553D. Backspace题意:有一个字符串A,现在将其一个一个输入至B中,在输入一个字符时,如果按下backspace,那么这个字符不会被键入,而且如果B不为空,则前一位(B.back)也会被删除,现给出一个字符串C,问能否得到一个B,使得B=C题解:为了通过a得到b,我们有可能需要去除a串的某段前缀,然后模拟余下部分得到b枚举每种删除前缀的情况是很麻烦的。那我们可以考虑将a和b反转进行考虑,反转后操作就变成1:输入当前字符 2:不输入当前字符和下一个字符这样做,如果我们去执行操作原创 2021-08-10 16:20:23 · 201 阅读 · 0 评论 -
A - Tit for Tat CodeForces - 1516A
A - Tit for Tat CodeForces - 1516A题意:一个长度为 n 的数组,现在希望你对这个数组进行至多k次操作:在数组中选择 2 个不同的元素,将第一个元素加 1 ,然后从第二个元素减 1 。不过他有一个要求,进行操作后数组中的所有元素都必须保持非负数。在进行至多 k 次操作之后,你能否获得一个数组在字典序上最小呢?题解:要是的字典序最小,就要让高位置尽可能减,低位置尽可能加,注意跳过0的情况代码:#include<bits/stdc++.h>#defin原创 2021-06-14 15:56:35 · 253 阅读 · 0 评论 -
AGAGA XOOORRR CodeForces - 1516B
AGAGA XOOORRR CodeForces - 1516B题意:给定一个长度为n的序列,对其进行若干次操作,每次操作将某相邻两数变为他们的异或和(操作后序列长度减一)。问是否可以经过若干次操作,得到一个长度至少为2且所有元素相等的序列?题解:我的思路,如果最终可以得到所有元素一样,那将所有数异或得到的会是0,所以所有元素异或如果等于0就输出YES但是也有可能是奇数个一样,这样就会剩下一个x(其他都异或为0),而x就是所有元素都等于x,所以我们可以在一开始引入一个x,然后参与所有元素的异或中,原创 2021-06-14 16:16:50 · 223 阅读 · 0 评论 -
351E. Jeff and Permutation
351E. Jeff and Permutation题意:一个长度为n的序列,你可以选择一些位置,使其变成相反数,问逆序对最少是多少?题解:对于第i位,我们开始考虑他能决定的逆序对?对于其他任意位置j,只有abs(a[i])>abs(a[j])的时候,他才会有决定作用现在我们考虑i的左侧比他绝对值小的数有tot1个,右侧有tot2个,当i为正时会与右侧的数组成逆序对,为负时会与左侧的数组成逆序对,所以我们就看tot1和tot2谁小,决定了i的正负取值代码:#include <cma原创 2021-06-15 22:12:24 · 142 阅读 · 0 评论 -
cf1553E. Permutation Shift
cf1553E. Permutation Shift题意:给出一个1到n的排列,每次可以交换两个数,问在交换最多m次(m <= n/3)之后能不能得到由1 2 3 … n循环右移所得到的的排列,输出所有能得到的排列和循环右移的次数。数据范围:n <= 3e5题解:如何求每次置换操作后的数组?每次置换操作k相当于b[i]=(i-k+n)%n我们逆向考虑,对于每次移动k,来判断是否可以通过最多m次操作回到原本排列(原本1到n的排列)。我们最终的目的是想要n个自环。假设当前b中有t个环原创 2021-08-10 16:03:52 · 207 阅读 · 0 评论 -
OR(牛客第八场)
OR题意:给你一个数组b和c(数值位于下标2到n)问是否存在一个a序列,bi=ai−1oraibi=a_{i-1} or a_{i}bi=ai−1orai , ci=ai−1+aic_{i}=a_{i-1}+a_{i}ci=ai−1+ai题解:我是这样想的,对于每一个bi和ci(i从2开始),都可以确定ai的取值情况,然后我们再计算bi+1和ci+1时,可以根据上一轮ai得到的情况来确定本轮ai+1的情况。如何通过bi和ci确定ai的取值呢?我们利用二进制来判断,对于bi和ci的每一原创 2021-08-09 21:01:01 · 134 阅读 · 0 评论 -
xay loves trees
xay loves trees题意:有两棵树,现在让你找到一个最大的点集合S,要求S中的点在第一棵树中任意两点存在祖先儿子关系且所有点是连接的,在第二棵树中任意两点都不存在祖先儿子关系,问S集合的最大是多少?题解:这个题和CF1528C Trees of Tranquillity这个题差不多,CF这个题没有对S在第一棵树中是连续的这个限制。说下做法:在第二棵树中任意两点不存在祖先儿子关系,1号是根节点,我们跑一边欧拉序,每个点都有一个区间,如果u是v的祖先,那么u的区间一定是覆盖v的区间的,所以如原创 2021-08-08 00:16:40 · 318 阅读 · 0 评论 -
Defend Your Country
Defend Your Country题意:n个点,m条边的简单无向连通图,每个点一个权值ai,一个连通块的贡献:(−1)块内点数∗∑ai[点i在该连通块内](-1)^{块内点数}*\sum a_{i}[点i在该连通块内](−1)块内点数∗∑ai[点i在该连通块内]可以任意删除一些边,求连通块贡献之和最大是多少题解:如果n是偶数,此时贡献就是所有点的和,显然不需要删除任何边,因为这已经是最大贡献sum如果是奇数,我们就需要让一个点x脱离其他n-1个点,此时答案就是sum-a[x]-a[x](减原创 2021-08-06 17:22:52 · 187 阅读 · 0 评论 -
Delete Edges
Delete Edges题意:给出一个n个点的完全图,删一些三元环使得边数<n输出所删的三元环3<=n<=2000题解:肯定是结论题,但是我不会。。结论:x+y+z=0(mod n)1<=x<y<z<=n所有解即可证明过程可以看看下面博客讲的讲解1讲解2代码:#include<iostream>#include<cstring>#include<algorithm>#include<cmath&原创 2021-08-06 15:19:57 · 158 阅读 · 0 评论 -
Hamburger Steak
Hamburger Steak题意:有m个锅,n块肉,每个肉需要煎ai分钟才能熟,每个锅同时最多煎一块肉,一块肉最多可以被两个锅煎(但不能同时),问最少多长时间能全部煎熟,并输出方案题解:我一开始的想法是:二分每个锅最长用的时间,然后顺序煎每个肉,如果这个肉还没煎完,这个锅的时间用完了,就到下一个锅继续煎,顺序输出完事。需要保证所有锅的时间和大于等于所有肉需要的时间后来发现其实最小耗时不用二分,直接算出来的T=max{max{ti},|∑ti\sum{ti}∑ti/m|},代码:#includ原创 2021-08-06 13:50:51 · 98 阅读 · 0 评论 -
P2467 [SDOI2010]地精部落
P2467 [SDOI2010]地精部落题意:有n个山脉高度分别是1到n,现在让你按照山峰山谷的顺序依次摆放(第一个可以是山峰也可以是山谷),问有多少方案(答案mod p)题解:dp,但是自己推不出来这个博客讲的非常详细,方案也非常多我就先将第一个方案:我们先去看这个波动序列有什么性质?在一个波动序列中,如果i-1与i不相邻,交换i-1与i即可得到一个新的波动序列把长度为n的一个波动序列中的数字ai变成(n+1)-ai,会得到一个新的波动序列,且新波动序列的山峰和山谷与原序列相反我们原创 2021-08-06 11:47:29 · 126 阅读 · 0 评论 -
P2469 [SDOI2010]星际竞速
P2469 [SDOI2010]星际竞速题意:有n个点,m个边,边是单向边(只能从小编号点到大编号点),你也可以花费ai直接到达点i。问将1~n所有点都经过一边最小费用是多少?题解:最小费用最大流,网络流的题都是板子题,那就难在如何建边先说结论:拆点i为ixi_xix和iyi_yiys->1x1_x1x~nxn_xnx流量1,费用0s->1y1_y1y~nyn_yny流量1,费用aia_iai1y1_y1y~nyn_yny->t流量1,费用0uxu_原创 2021-08-05 22:52:55 · 116 阅读 · 0 评论 -
P2446 [SDOI2010]大陆争霸
P2446 [SDOI2010]大陆争霸题意:n个点,m个边,wi为每个边的边权,对于每个点i,其被l个点保护着,也就是如果保护其的点没有被破坏,点i无法被破坏(也无法经过其前往其他点)。现在从1出兵(无限数量),问破坏点n的最短时间题解:很明显这个题跟最短路有关,对于每个点,有这几种状态:是否保护,是否已经到达因为如果我们跑最短路,跑出来的结果并不是,因为有些点受保护的情况,实际到达时间要被推迟(直到保护他的点也被破坏)我们用now[u]表示点u被破坏的时间,arrive[u]表示u无人保护的原创 2021-08-04 14:05:27 · 209 阅读 · 0 评论 -
P3293 [SCOI2016]美味
P3293 [SCOI2016]美味题意:有n个数组a,现在有m个询问,每次给出一个b和x,问b xor (a[i] + x)的最大值是多少?题解:不难看出01Trie的题目我们设ans=a[i]+x,我们想要b xor ans的最大值,这个很好说经典套路,如果b的第i位是1,我们就希望ans的第i位是0,此时我们希望ans是张这样子的:这样不难求出a[j]的范围:a[j]∈[ans-x,ans-x+(1<<i+1)-1]此时我们就看这个区间内是否存在a[j]满足情况,也就是看这原创 2021-08-03 21:34:48 · 103 阅读 · 0 评论 -
Double Strings
Double Strings题意:给你s和t两个字符串,在其中选出两个等长的子序列(可以不连续)a,b,满足a的字典序严格小于b的字典序,问方案数,答案mod(1e9+7)题解:好的方案的构成是一段相同的前缀+一个不同的字符(a比b小)+长度相同的任意后缀,按照这样构造一定是合法且包含所有情况我们用dp[i][j]表示只考虑A的前i个字符和B的前j个字符时的相同的子序列的个数(有点类似于最长公共子序列,不过我们这里记录的是方案数)转移方程可得:dp[i][j]=dp[i-1][j]+dp[i][原创 2021-08-02 11:04:02 · 280 阅读 · 0 评论 -
King of Range
King of Range题意:给你n个数,有m个询问,每次询问一个x,问有多少个区间的最大值减最小值大于x题解:我一开始的想法st表实现区间最大减最小,利用二分来找这个区间范围,复杂度O(nmlogn),正好被卡一个签到题给做复杂了我们这样想,我们定义左端i,然后去移动右端点pos,当出现pos大于k时,此时pos位置之后的肯定与l组成的区间也大于k,然后左端点移动(i++),右端点在pos继续走(pos不清零),为什么?结合代码分析:我们每次记录答案都是当区间差值刚好大于k时退出,也就原创 2021-07-31 22:21:48 · 200 阅读 · 0 评论 -
Lawn of the Dead
Lawn of the Dead题意:有一个N * M的方格,我们从(1,1)出发,只能向右走或者向下走,存在一些障碍,问有多少格子是我们所能到达的2<=n,m,k<=1e5题解:所有的点减去不能到达的点的个数,就是可以到达的点的个数有障碍的地方不能达到,而我们只能向右向下走,当某个点的左边和上边都是不可达时,该点就不可达,并会对自己的右边的点和下方的点造成影响n,m,k<=1e5,空间很大但是地雷数目有限,我们可以从上往下逐行对每一行的地雷排序后处理,对于每个地雷,找到从自原创 2021-07-29 20:58:33 · 387 阅读 · 2 评论 -
Inverse Pair
Inverse Pair题意:一个数组a,现在构造一个数组c,c[i]=a[i]+0/1(0或1),使得c的逆序对最少题解:如果x在x+1的后面,我们让x这个数+1,x+1不变,就可以让逆序对少1。如果x在x+1后面,我们就认为连边(x+1,x),x也有可能与x-1连边,形成一个长度为L的链,那减少的逆序对数量就是L/2代码://还是自己菜最后还是看了网上模板才写出来的#include <bits/stdc++.h>#define LL long longusing nam原创 2021-07-28 13:57:52 · 115 阅读 · 0 评论 -
Average
Average题意:矩阵W的值可以通过数组a和b得到,W[i][j]=a[i]+b[j],现在求W的一个子矩阵,平均值最大,且子矩阵必须满足宽度至少是x,高度至少是y,计算最大平均值题解:那答案就变成了分别对a和b对应的区间求个平均值然后相加问题就变成了,找a的一个长度至少为x的平均值的子矩阵和b的一个长度至少为y的平均值最大的子矩阵二分平均值S,然后令a[i]编程a[i]-S,然后看是否有和>0的长度至少为x的子矩阵总复杂度为O(nlogW)代码:#include<bits原创 2021-07-28 12:57:22 · 130 阅读 · 2 评论 -
Tree Xor(未完全搞定)
Tree Xor题意:一颗有n个点的树,边权给出,第i个节点的权值为Wi,但并不知道Wi,只知道Wi在[Li,Ri],边权等于两端点的异或值问W序列有多少可能题解:如果我们知道一个点的值,就可以推出其他所有点的值。现在我们令w[1]=0,解出剩下的w,如果令w[1] = a ,剩下的w都会xor上a所以就变成了求解合法的a的数量,限制有n个不等式,形式为:L[i] <= W[i] Xor a <= R[i]你可能会觉得a会属于[L[i] Xor W[i],R[i] Xor w[原创 2021-07-27 21:04:03 · 294 阅读 · 2 评论 -
CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths题意:一棵根为1 的树,每条边上有一个字符(a-v共22种)。 一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串。 求每个子树中最长的Dokhtar-kosh路径的长度。题解:树上启发式合并的开山之作树上启发式合并介绍详细题解字符重排后为字符串,说明该字符中最多只有一个字符出现奇数次,其余都是偶数次,我们联想到用异或操作原创 2021-07-27 11:12:36 · 321 阅读 · 0 评论 -
I love max and multiply HDU - 6971(详细解答)
I love max and multiply HDU - 6971题意:数组a和b,现在构造一个数组c,使得c[k]=max(a[i] * b[j]) , i&j>=k求数组c的和题解:我们可以考虑求出所有Dk=max(Ai * Bj)并满足i&j=k,然后再从后向前取,但是i&j=k不好求,那就改成Dk=max(Ai * Bj),满足k∈i&jk∈i&j,我们可以分别求k∈i和k∈j的情况就比如:k = 1010,k∈i&j,i&a原创 2021-07-25 15:14:03 · 428 阅读 · 0 评论 -
Black and white
Black and white题意:给你一个矩阵,每个位置都有一个值,现在你要把这些值都染成黑色,花费为这个位置的值。但是对于任意两行两列的四个相交正方形,如果其中三个是黑色正方形,可以免费将第四个正方形染成黑色。问最小花费题解:我们还是从任意两行两列的四个相交正方形,如果其中三个是黑色正方形,第四个正方形免费染成黑色这个性质下手。如图,黑色部分已经染色,黄色部分可以免费染色。我们现在这么想,横纵都给个坐标,黑色块相当于把横纵纵坐标相连,下图中,(a,c)相连,(b,c)相连,(a,d)相连,现原创 2021-07-25 13:12:45 · 167 阅读 · 0 评论 -
Counting Triangles
Counting Triangles题意:给你一个完全图,每个边被赋值为0或1,问这个完全图中有多少个完美三角形?完美三角形定义:三角形的三边都为0或1题解:正着求不好求,我们可以倒着想不考虑完美,完全图中有多少三角形?很明显C(2,n),完美三角形=所有三角形-不完美三角形不完美三角形就是同时存在0和1,我们现在这么想,假设点i有n个出边是1,有m个出边是0,那么可以组成的完美三角形就是m*n,第三个边不用考虑,因为已经有两个不一样了,但是这样会有重复,一个三角形会被统计两遍(两个连接点)原创 2021-07-24 19:31:19 · 302 阅读 · 0 评论