摘要: 1 #include <bits/stdc++.h> 2 #define INF 0x3f3f3f3f 3 const int maxn = 2e5 + 7; 4 using namespace std; 5 int a[maxn]; 6 int n,m; 7 int main() 8 { 9 ios::sync_with_stdio(false); 10 cin.tie(0), cout.tie 阅读全文
posted @ 2019-10-31 01:08 留幸愉 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题意:在一篇文章中查找某个单词出现的次数,大小写等价(即 a == A,依次类推对应等价) 输入:第一行一个单词 第二行:一篇文章,包含输入的空格。 暴力做法两重 for 循环查找 时间复杂度 O(n2) 题解:先将两个串的单词转换成大写 或者 小写 下一步开始进行匹配查找 第一次匹配查找成功时记录 阅读全文
posted @ 2019-10-30 00:56 留幸愉 阅读(230) 评论(0) 推荐(0) 编辑
摘要: KMP:(1) 求 字符串前缀 与 后缀 匹配的字符数 (2) next[0] = 0, next[1] = 0; 把求出的长度后移一位 阅读全文
posted @ 2019-10-20 18:42 留幸愉 阅读(105) 评论(0) 推荐(0) 编辑
摘要: Floyed-Warshall:适用于规模小的图,如果存在负权,需要判断负圈。 权值:类似于从节点 s 到 j 依次经过的长度之和。 类似动态规划:从 s 到 t 的过程程中我们考虑是走还是不走,然后取两者的最小权,最终 s 到 t 的 最小权值之和就是我们要求的最短路径。 做出如下类比:每个点看成 阅读全文
posted @ 2019-10-17 18:55 留幸愉 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 斐波那契数列数列博弈:给你三堆石子,每次只能取费波契数列个石子,问先手赢输出“Fibo”,否则输出“Nacci”。 主要求出SG函数,然后看 异或值 ,最后根据异或值是否是 0 阅读全文
posted @ 2019-10-16 23:25 留幸愉 阅读(130) 评论(0) 推荐(0) 编辑
摘要: Auti - nim Game Nim 游戏变种,认定方式改为谁取走最后一个石头就输。 先手胜当且仅当 (1)所有堆石子数都为 1 且游戏的 SG值为 0 。 (2)存在某堆石头数大于 1 且游戏的 SG 值不为 0 。 证明: (1)若所有堆石头数都为 1 且 SG 值为 0,则共有偶数堆石头,所 阅读全文
posted @ 2019-10-15 21:58 留幸愉 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 回顾基础博弈论: Bash Game: 一堆石头有 n 个石头,每次至少拿一个最多m个,问先手是否必胜? 如果满足条件 n = (m + 1)* k 则先手必败,否则先手必胜。 Nim Game: 给你 n 堆 石头, 每次可以从任意一堆拿出除 0 外任意个数的石头,问先手是否必胜? 看作组合游戏的 阅读全文
posted @ 2019-10-15 00:17 留幸愉 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 一.分治法设计一个算法,统计输入的非空字符串中给定字符的个数。 二.非递归形式设计二分搜索程序。 三.16个硬币放袋子里,其中有一枚硬币是假币,并且那个伪造的硬币比真币轻,设计一个算法找到那枚假币。 四. 大于 1 的正整数 n,设计一个算法计算 n 有多少种不同的分解式。 五.给定 a, 分治法设 阅读全文
posted @ 2019-10-06 15:33 留幸愉 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 一.对一个数组用堆排的方法排序 二.链表实现插入排序 三.设计一个算法,在尽可能少的时间里内重排数组,将所有关键字负值记录放在所有关键字非负值记录之前。O( n ) 的时间复杂度 四.写双冒泡排序算法。( 排序过程中交替改变扫描方向 ) 五.将两个递增的有序的单链表合并成一个递增有序的单链表。( 算 阅读全文
posted @ 2019-10-06 01:22 留幸愉 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 一.查找 1.顺序查找: (1) 算法思想:顺序表的记录都是无序的。从头到尾或者从尾到头沿着一个方向依次将扫描到的 元素值与给定的关键字 key 相比较。若元素值与 key 相等,则查找成功,若扫描完所有的节点,仍 未找到,则查找失败。 (2) 时间复杂度:最好的情况即一次就找到,时间复杂度 O(1 阅读全文
posted @ 2019-10-05 19:55 留幸愉 阅读(256) 评论(0) 推荐(0) 编辑