摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题意: 输入一个整数n,接下来随意顺序输入0到n-1之间的数,然后你可以将每一串这样的数的第一个数移到最后一位去,形成新的数字串。要求你输出这样的操作得到的不同数字串中逆序数的最小个数。 思路: 阅读全文
摘要:
题目链接:https://vjudge.net/problem/UVALive-6434 题意:给你一串n个数字,要求你将这串数字分成m组,使得分组后他们的消耗和最小。其中消耗是这样定义的:每一组的消耗等于这组数据中最大数与最小数的差值。 思路:不难想到,两个数的差值要尽可能小的话,首先要对这组数进 阅读全文
摘要:
题目链接:http://hdu.hustoj.com/showproblem.php?pid=1166 题意: 第一行一个整数T,表示有T组数据。 每组数据第一行一个正整数N(N<=50000),表示敌人有N个工兵营地,接下来有N个正整数,第i个正整数ai代表第i个工兵营地里开始时有ai个人(1<= 阅读全文
摘要:
转载自:https://www.cnblogs.com/TenosDoIt/p/3453089.html 个人理解: 线段树的高效性在于它避免了树的遍历,因此延迟标记在线段树中尤为重要,树的遍历时间复杂度为O(n),而通过延迟标记这个行为可降到O(logn),能高效解决连续区间的动态查询问题。 对于 阅读全文
摘要:
题目链接:http://codeforces.com/problemset/problem/669/D 题意:q次按顺序操作,操作1:整体移动给定单位距离;操作2:奇偶位互换,要求输出q次操作后的情况 思路:不管是整体移动还是奇偶互换,所有的奇数之间的相对位置是不变的,这也意味着所有的偶数相对位置也 阅读全文
摘要:
概念: 并:合并两个元素所在的组 查:查询两个元素是否属于同一个组 核心代码: 例题: 题目链接:http://codeforces.com/gym/100989/problem/B 题意: 给定dp[]数组,它描述的是两个字符串a[]与b[]的关系情况。要求根据dp[]数组推出a[]与b[]。 d 阅读全文
摘要:
一、巴什博弈(Bash Game) 有一堆n个物品,两个人轮流从中取出(1~m)个;最后取光者胜。 结论:n = k * (m + 1) + r,r = 0,先手必输;r != 0,先手必胜。 二、尼姆博弈(Nimm Game) 有任意堆物品,每堆物品的个数是任意的,双方轮流从中取物品,每一次只能从 阅读全文
摘要:
之前遇到博弈的题老是无从下手,今天学习了下博弈题的一个“小套路”,叫做Sprague-Grundy函数。 Sprague-Grundy函数定义为不出现在F(X)中每一个元素的Sprague-Grundy函数的最小非负数。听着有点绕,其实举个例子就很好理解了。 举例子前先说几个名词: x:当前状态量 阅读全文
摘要:
树的一些基本术语:(针对我个人觉得要必要列出来的 结点的度:结点拥有的子树数。 树的度:树内各结点度的最大值。 非终端结点:度不为0的结点称为非终端结点或分支结点。除根结点外,非终端结点也称为内部结点。 层次:根为第一层,不是第零层。 树的深度:树中结点的最大层次,深度也称为高度。 森林:是m(m> 阅读全文
摘要:
1 #include 2 #include 3 using namespace std; 4 5 typedef int ElemType; 6 typedef int Status; 7 #define OK 1 8 #define ERROR 0 9 #define MAXSIZE 10 10 11 //结点定义 12 typedef struc... 阅读全文