挑战程序设计竞赛
qq_38232157
这个作者很懒,什么都没留下…
展开
-
POJ 2429 GCD & LCM Inverse (挑战程序设计竞赛,Miller_Rabin算法, pollard_rho 算法)
挑战程序设计竞赛, 135页,素数测试, 大数因数分解 题目意思: 给出两个数 , gcd 和 lcm 分别表示 a和b的最大公约数和最小公倍数。 求a和b. 如果有多组,输出 a + b 最小的一组。 本题要点: 1、Miller_Rabin算法: https://www.cnblogs.com/fzl194/p/9046117.html 2、pollard_rho 算法: https://www.cnblogs.com/fzl194/p/9047710.html 3、 对 b / a 做因式分解后,在有原创 2020-07-16 17:18:53 · 138 阅读 · 1 评论 -
POJ 3692 Kindergarten(挑战程序设计竞赛,二分图最大团)
挑战程序设计竞赛,283页,二分图最大团 题目意思: 幼儿园,所有女生相互之间认识,所有男生之间相互认识,有些女生和某些男生认识。 现在,老师想挑选一些孩子玩游戏,这需要所有玩家彼此认识。您将帮助查找老师可以挑选的最大孩子数。 本题要点: 1、二分图的图: 二分图的子图中,左部的任意一个节点和右部所有的节点都有连线,该子图称为二分图的 团。 点数最多的团,称为二分图的最大团。 2、二分图G 的补图 G1, G的最大团等于其补图G1的最大独立集。 3、二分图的最大独立集 = 二分图的总点数 - 二分图的最大原创 2020-07-14 14:41:15 · 132 阅读 · 0 评论 -
POJ 1466 Girls and Boys (挑战程序设计竞赛,二分图最大独立集)
挑战程序设计竞赛,283页,二分图最大独立集 二分图的最大独立集 题目意思: 在一群男女生之间存在浪漫关系,且只存在于男女之间,现给出存在关系的人的编号,但没给具体的男女性别, 现在要求一个集合,在集合中任意两人都不存浪漫关系,输出集合中元素的个数. 本题要点: 1、定理: 二分图的最大独立集 = 总点数 - 最大匹配数 2、这里采用邻接表来存图。用增广路算法求出最大匹配数。 二分图匹配,因为没有分左右每对匹配会出现两次。 最后算出来的 ans 要除以2; #include <cstdio> #原创 2020-07-14 12:22:23 · 108 阅读 · 0 评论 -
POJ 1274 The Perfect Stall(挑战程序设计竞赛,二分图最大匹配,裸题)
题目意思: n头牛(编号1 ~ n),m个牛栏(编号 1 ~ m).每头牛只会在特定的牛栏产奶。 当然,每一个牛栏只能装进一头牛。 题目要求:怎样安排每头牛到特定的牛栏,使得牛产奶数最多。 本题要点: 1、二分图最大匹配: 左部节点:牛的编号; 右部节点:牛栏的编号; 用邻接矩阵存放 图,使用增光路算法求出最大匹配数。 #include <cstdio> #include <cstring> #include <iostream> using namespace std;原创 2020-07-13 23:13:57 · 165 阅读 · 0 评论 -
POJ 1990 MooFest(挑战程序设计竞赛, 树状数组)
挑战程序设计竞赛,283页, 树状数组 题目意思: 一群牛参加完牛的节日后都有了不同程度的耳聋,第i头牛听见别人的讲话,别人的音量必须大于v[i],当两头牛i,j交流的时候, 交流的最小声音为max{v[i],v[j]}*他们之间的距离。现在有n头牛,求他们之间两两交流最少要的音量和 本题要点: 1、 先对牛按照V从小到大排序, 所有第i头牛和i之前的牛说话需要的总能量 sum{v[i] * abs(x[i] - x[j])}(i > j), 对于绝对值 abs(x[i] - x[j], 我们可以将牛原创 2020-06-29 14:04:58 · 141 阅读 · 0 评论 -
POJ 2155 Matrix (挑战程序设计竞赛, 二维树状数组)
挑战程序设计竞赛,283页, 二维树状数组 二维前缀和,二维差分的概念 二维差分 dif[i][j] = a[i][j] − a[i][j − 1] − a[i − 1][j] + a[i − 1][j − 1] 本题要点: 1、本题中,在一个矩形范围 左上角 (x1, y1), 右下角(x2, y2)内的所有 的0或者1 改变值,0 变为1, 1 变为 0. (可以看做是一直加1,偶数就是1, 奇数就是0)。题目转化为二维的矩形范围内每个数同时增加 d, 然后查询 某个坐标 (x, y) 的值。 2、利用原创 2020-06-28 17:58:22 · 104 阅读 · 0 评论 -
POJ 2217 Secretary (后缀数组,挑战程序)
题目意思: 给出两个字符串,要求两个字符串最长的公共子串(是子串不是子序列) 挑战程序设计竞赛, 383 页 本题要点: 1、高度数组,lcp[i] 表示后缀数组中,第i个字符串 S[sa[i] …] 和 第 i + 1 个字符串 S[sa[i + 1] …] 的最长公共前缀 2、 求 字符串 S 和 T 的最长公共子串, s1 = S.length() 假设一个新串: str_new = S + ‘\0’ + T; 然后求出 str_new 的高度数组 lcp[MaxN]; S 和 T 的 最长公共子串原创 2020-05-26 15:06:03 · 141 阅读 · 0 评论