关闭

[置顶] 算法核心思想总结及模板(不定期更新)

写这篇博客的目的: 加强对算法的理解和概括 备忘 快排(divide-and-conquer)核心思想:   每一次划分将小于或等于pivot element(下面第二张图中 xx)的元素依次放在前面,则大于xx的元素就自动到后面一部分了,然后再把xx放到两部分中间(此时xx已排好序,归位),然后对左右两部分递归调用。Update:2017/2/18 筛法求素数核心思想:   把合数筛掉。...
阅读(140) 评论(0)

退役帖

打完CCPC湘潭邀请赛和蓝桥杯以后,整个大学的ACM生涯也就真的结束了。要不是队友兼学弟兼窝校新建ACM协会第一任会长催着我写退役帖,估计这篇博客还得拖好久(毕竟拖延症重度患者)。 在大一的时候,学校ACM最早的那批革命先驱和魏老师搞起了程序设计兴趣班,那时候没事就去听了一下,结果听了一节课,“麻蛋这么难,算了不搞了”。然后在大二上学期的时候,突然感觉玛德都大学了,要是以后回忆起来...没啥值得...
阅读(100) 评论(1)

UVA 10870 Recurrences(矩阵快速幂)

题目链接:https://vjudge.net/problem/UVA-10870 题意:给出一个线性递推,求f(n) mod m 解题方案:线性递推,可以用矩阵相乘描述,矩阵快速幂。 #include #include #include #include #include #include #include #include #include #include...
阅读(53) 评论(0)

hdu 6029 Graph Theory

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6029 题意:有一种图叫“Cool Graph”,从2号顶点到n号顶点每个顶点都有2种选择:(1)和前面所有的顶点(1 ~ i-1)都相连 (2)和前面所有的顶点都不相连。给出这些顶点的选择,问这个“Cool Graph”是否存在完美匹配(边的集合,使得图的每个顶点覆盖且仅覆盖一次)。 解题方案:...
阅读(151) 评论(0)

hdu 2159 FATE(完全背包)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 解题方案:完全背包,dp[i][j]表示前i个物品凑出价值j的最小花费。 则: 第i种物品不用(用的次数为0),dp[i][j]=min(dp[i][j], dp[i-1][j])第i种物品用(用1次,2次,......),dp[i][j]=min(dp[i][j], dp[i-1][...
阅读(67) 评论(0)

hdu 6024 Building Shops (DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6024 题意:有n个路口排在一条直线上,现在要建几个商店,每个路口要不自己建商店,有花费c,要不就去最近左边的商店,花费是到最近左边的商店的距离,最左端的路口一定要自己建商店,求出最少总的花费。 解题方案:刚开始想着用贪心,先给n个路口按坐标排序,然后从第2个开始从前往后遍历,每次衡量自己建的花...
阅读(77) 评论(0)

hihocoder 1509 异或排序(模拟)

题目链接:http://hihocoder.com/problemset/problem/1509 解题方案:首先,两个数谁大谁小一定是看这两个数的高位里面第一个不相同的数字,不管是10进制还是2进制都是这样判断。然后可以将所有的a[i]看成是60位的二进制数,a[i]和a[i+1]二进制串相同的地方和s异或后一定还是一样的,不同的地方和s异或后一定还是不一样的,因为(0,1)^0=(0,1),...
阅读(114) 评论(0)

leetcode 72 Edit Distance(DP)

题目链接:https://leetcode.com/problems/edit-distance/#/description 解题方案:与最长公共子串类似,比较最后一个字符。 dp[i][j]为表示S的前i个字符转变成T的前j个字符的最少操作数,则 若S[i]==T[j],dp[i][j] = dp[i-1][j-1]若S[i]!=T[j],dp[i][j] = min(dp[i...
阅读(64) 评论(0)

牛客网 素数伴侣(二分图最大匹配,匈牙利算法)

题目链接:https://www.nowcoder.com/questionTerminal/b9eae162e02f4f928eac37d7699b352e 解题方案:2 #include #include #include #include #include #include #include #include #include #include #include...
阅读(213) 评论(0)

hdu 3342 Legal or Not(DAG的拓扑排序)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342 题意:给出一个有向无环图,问是否存在拓扑序列。 解题方案:用入度表的方法,即每次找入度为0的点,然后删掉这个点和由这个点发出的边,循环结束以后判断是不是每个点的入度都为0了,如果是则该DAG存在拓扑序列,否则说明存在环,则不存在拓扑序列。 解法一:入度数组+邻接表(vector 动态建表,...
阅读(686) 评论(0)

ZOJ 3960 What Kind of Friends Are You?(STL map,状态压缩)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5592 题意:向c个朋友询问q个问题,现在给出对于每个问题每个朋友的回答(每个问题给出回答"yes"的朋友,其他即为回答"no"的朋友),然后给出一个n行q列的01矩阵,代表n个朋友的回答,判断这n个回答分别是谁答的,如果能唯一确定则输出他的名字,否则输出"Let's...
阅读(157) 评论(0)

hdu 1532 Drainage Ditches(最大流)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 题意:求从1到m的最大流(在下面的代码中n,m互换了)。 解题方案:EdmondsKarp算法求最大流(关于算法中为什么要用反向边,这篇博客给出了很好地解释)。 #include #include #include #include #include #include #inc...
阅读(71) 评论(0)

UVA - 1363 Joseph's Problem(打表找规律)

题目链接:https://vjudge.net/problem/UVA-1363 题意:给出正整数n和k(1 解题方案:被除数固定为k,除数依次加1,讲道理余数应该有规律,打表找找规律: int n,k; while(~scann(n,k)) { int sum=0; FORR(i,1,n) { sum+=k%i; printf("%d...
阅读(93) 评论(0)

hdu 1231 最大连续和(一题多解)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1231 题目的规模n最大有1e4,所以直接暴力枚举起点终点,再进行求和复杂度O(n^3),会超时;因为是连续区间,容易想到用前缀和优化一下,可以去掉直接暴力的最内层求和,即换成sum[j]-sum[i],复杂度O(n^2),但还是会超时。下面给出3个可行的解法。 解法1:仍然采用前缀和的思想,只...
阅读(58) 评论(0)

UVA - 815 Flooded(浮点数二分)

题目链接:https://vjudge.net/problem/UVA-815 题意:有一个n*m(1 解题方案:二分水位高度进行check,记所有网格中高度最低的格子的高度为a[0],当没有水的时候水位高度应该是a[0],此为水位高度的下限;当所有雨水都囤积到最低的格子处时,水位高度为a[0]+V/100.0,此为水位高度的上限,接下来在区间[a[0] , a[0]+V/100.0]进行二分...
阅读(61) 评论(0)

poj 2689 Prime Distance(大数区间素数筛法)

题目链接:http://poj.org/problem?id=2689 题意:给定区间[L,R],求区间内距离最近的相邻素数对和距离最远的相邻素数对。 解题方案:用筛法求出[L,R]的所有素数——利用“合数n一定有小于或等于sqrt(n)的素数因子“这条性质,先预处理出sqrt(2,147,483,647)范围内的所有素数,然后用它们筛掉所有在区间[L,R]内的合数。 #include #...
阅读(195) 评论(0)
64条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:8675次
    • 积分:685
    • 等级:
    • 排名:千里之外
    • 原创:63篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    最新评论