随笔分类 -  算法

1 2 下一页

摘要:打巧克力杯周赛的时候,遇到了一道欧拉函数板子题,然而我居然不会(数论全推给队友),结果是我居然用埃氏筛自己打出来了,居然还是对的。下面是那道题:例题:Farey Sequence LengthGiven a positive integer, NN, the sequ... 阅读全文

posted @ 2018-12-05 23:47 Radium_1209 阅读(146) 评论(0) 推荐(0)

摘要:树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值。 修改和求和的时间复杂度:logn 设节点编号为x,那么... 阅读全文

posted @ 2018-11-18 23:52 Radium_1209 阅读(141) 评论(0) 推荐(0)

摘要:状压DP:用到状压的DP。什么是状压?把一系列状态压缩成一个状态(通常用二进制)。 例题:HDU1074Doing HomeworkTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ... 阅读全文

posted @ 2018-11-14 20:56 Radium_1209 阅读(204) 评论(0) 推荐(0)

摘要:Max Sum Plus PlusTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 38720 Acce... 阅读全文

posted @ 2018-11-13 17:46 Radium_1209 阅读(72) 评论(0) 推荐(0)

摘要:目录1 动态规划(DP)1.1 最长上升子序列(LIS)1.1.1 O(n^2)1.1.2 O(nlogn)1.2 最长公共子序列(LCS)1.3区间DP1 动态规划(DP)1.1 最长上升子序列(LIS)1.1.1 O(n^2)//求到第i位的最长子串长度for (... 阅读全文

posted @ 2018-11-03 17:03 Radium_1209 阅读(134) 评论(0) 推荐(0)

摘要:数据结构上机时发现有一个优化马踏棋盘的方法。仅适用于优化求解一个(或少数),对于求所有解时间不变。优先选取拥有较少可行孙节点的子节点方向。 即dfs查找路径时优先选择孙节点少的子节点。下面附上代码。代码:#include #include #include #incl... 阅读全文

posted @ 2018-10-07 23:32 Radium_1209 阅读(120) 评论(0) 推荐(0)

摘要:出自一次很失败的开学测试LIS自然会做可以参见:https://blog.csdn.net/Radium_1209/article/details/79704234由于对于LIS的nlogn算法不熟悉,导致错误理解,记录的路径出现了问题,其中还用了n^2的算法记录路径... 阅读全文

posted @ 2018-09-10 22:24 Radium_1209 阅读(149) 评论(0) 推荐(0)

摘要:Dijkstra算法:求单源最短路的算法。主要步骤:1.定义一个dis数组记录起始点到每个点的距离,初始化时不能到达的记为inf(一般用0x3f3f3f3f)。2.找到离起始点最近的节点从这个点松弛,并标记3.松弛,如果出现s->m > s->k->m,则将dis[m... 阅读全文

posted @ 2018-09-03 23:34 Radium_1209 阅读(1656) 评论(0) 推荐(0)

摘要:三种模板:Edmonds_Karp,Dinic,SAP例题:Drainage Ditches(HDU1532)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth... 阅读全文

posted @ 2018-08-30 17:36 Radium_1209 阅读(119) 评论(0) 推荐(0)

摘要:字典树(tire tree):把字母存在树中,其中一条子链(从根节点开始)就是一个单词。 核心代码(主要三部分:结构体,插入,查询):1.创建结构体struct node{ //isEnd是否是最后一字母 //也可以是别的,比较灵活 int... 阅读全文

posted @ 2018-08-25 23:31 Radium_1209 阅读(212) 评论(0) 推荐(0)

摘要:Lucas定理:用于求C(n,m) mod p,其中p为素数证明等在网上都可以找到,我也不是很懂就略过了(懂了补上)。直接贴出用法吧:主要代码就两行,需要用到的知识有快速幂和求逆元(计算组合数),必要的时候需要打表(计算阶乘)快速幂:https://blog.csdn... 阅读全文

posted @ 2018-08-25 20:53 Radium_1209 阅读(299) 评论(0) 推荐(0)

摘要:这是某一次不知道什么比赛,其中有一道错排的题目。讲道理我是不会错排的,但是这个题目,我暴力找到了规律(好像有点类似错排),然后一直没过,多次以为是精度的问题,结束了也没过,然后搜了一下题解,测了每一个数据,发现完全没有问题。这时候我队友问了我一句,你用两个%%了吗,恍... 阅读全文

posted @ 2018-07-03 20:58 Radium_1209 阅读(120) 评论(0) 推荐(0)

摘要:遇到高精度怎么办?用几十行的C/CPP!?显然不是最佳选择。此时用JAVA就能轻松解决:import java.math.BigDecimal;import java.util.Scanner;import java.math.BigInteger; public c... 阅读全文

posted @ 2018-06-24 00:56 Radium_1209 阅读(126) 评论(0) 推荐(0)

摘要:Floyd算法:求最短路的一种算法(最暴力的方法)复杂度O(n3)特点:速度慢,但是任意起点的(与Dijkstra不同),程序不难,但很多题目都是变式,需要较深的理解(原理是动态规划)标程:#include #include #define INF 0x3f3f3f3... 阅读全文

posted @ 2018-06-05 23:57 Radium_1209 阅读(344) 评论(0) 推荐(0)

摘要:Prim:求最小生成树的另一个算法 还可以用Kruskal(https://blog.csdn.net/Radium_1209/article/details/80503384)与Kruskal的不同:Kruskal是加边,而Prim是加点具体步骤... 阅读全文

posted @ 2018-06-04 00:27 Radium_1209 阅读(429) 评论(0) 推荐(0)

摘要:算数基本定理:基本形式:(Pn表示质数)导出结论(ACM中会用到的):1. (正因数个数)2. (正因数之和)例题:1341 - Aladdin and the Flying Carpet PDF (English)StatisticsForumTim... 阅读全文

posted @ 2018-05-31 23:45 Radium_1209 阅读(223) 评论(0) 推荐(0)

摘要:Kruskal:求最小生成树的一个算法。需要了解的知识:并查集(https://mp.csdn.net/postedit/79661568)具体步骤:将边按照价值排序(贪心思想) 如果这两个边不通,利用并查集将两个边并起来 ... 阅读全文

posted @ 2018-05-29 23:15 Radium_1209 阅读(187) 评论(0) 推荐(0)

摘要:虽然蓝(bao)桥(li)杯已经结束了,但是之前练习的时候做的一个题让我学到了一个新的算法——Tarjin算法。例题:发现环(第八届蓝桥杯国赛C语言B组第4题)小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网... 阅读全文

posted @ 2018-05-29 21:11 Radium_1209 阅读(146) 评论(0) 推荐(0)

摘要:记忆化搜索(Memory search):在普通搜索的基础上记录一部分已计算的结果从而避免重复计算。 例题:滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 104767 ... 阅读全文

posted @ 2018-05-12 17:43 Radium_1209 阅读(218) 评论(0) 推荐(0)

摘要:LCS:Longest Increasing Subsequence例题:Common SubsequenceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth... 阅读全文

posted @ 2018-05-08 00:27 Radium_1209 阅读(95) 评论(0) 推荐(0)

1 2 下一页

导航