随笔分类 - 小学
摘要:巴什博弈 今天打比赛的时候做到的,下来去看了一些资料,感觉蛮有意思的(学好了可以用来坑钱) 两个顶尖聪明的人在玩游戏,有n个石子,每人可以随便拿1−m个石子,不能拿的人为败者,问谁会胜利。 当石子有1−m个时,毫无疑问,先手必胜。 当石子有m+1个时,先手无论拿几个,后手都可以拿干净,先手必败。 当
阅读全文
摘要:先在小区间DP得到最优解,再合并小区间求大区间最优解,一般把左右两个相邻的子区间合并,需要从小到大枚举所有可能的区间。 https://vjudge.net/problem/51Nod-1021 先举个栗子: 有一二三堆石子,这个时候第一步有两种合并的方法,分别是1和2合并,2和3合并,那么最后应该
阅读全文
摘要:http://120.78.128.11/Problem.jsp?pid=1852 一开始我想,从上往下的话,可以用递归,搜索(dfs)所有可能的路径,代码如下: int dfs(int i,int j){ if(i==n)//递归到最后一层时返回 return a[i][j];//a[i][j]存
阅读全文
摘要:最长递增子序列(LIS) http://120.78.128.11/Problem.jsp?pid=1388 http://acm.hdu.edu.cn/showproblem.php?pid=1257 最长递增子序列,例如X={5,6,7,4,2,8,3},它的最长递增子序列为{5,6,7,8},
阅读全文
摘要:最长公共子序列(LCS) 放题: http://acm.hdu.edu.cn/showproblem.php?pid=1159 首先,子序列是在给定序列中删去若干元素后得到的序列,例如X=(A,B,C,D,E),那么(A,B,D)就是X的子序列,那(A,B,D)是子串吗?不是,子串的元素在原序列中是
阅读全文
摘要:0/1背包 如果每个物体可以切分,称为一般背包问题,用贪心法求最优解,从最大的最多的开始。 如果每个物体不可分割,称为0/1背包问题。0和1代表装入背包和不装入背包。 举个栗子:有4个物品,其重量分别是2、3、6、5,价值分别为6、3、5、4,背包的容量为9。 先定一个二维数组dp[i][j],i代
阅读全文
摘要:硬币问题 n种硬币,面值v1,v2...vn,数量无限,输入s,使最少的硬币组合之和为s。(贪心解决的硬币问题使特殊面值,此处面对任意面值) Min[i]是金额i对应的最少硬币数量,易得Min[i]=min(Min[i],Min[i-1]+1)。(如果面值是1的话) 从Min[i-1]到Min[i]
阅读全文
摘要:分治法 把大问题化成小问题逐个解决,可以优化算法复杂度(局部的优化有利于全局,一个问题的解决,其影响力扩大了k倍,即扩大到了全局)。 归并排序 (1)分解:把原来无序的数列分成两部分,对每个部分再继续分解成更小的两部分,直到子序列只包含1个数,这个过程用递归实现(在归并排序中,只是简单地把数列分成两
阅读全文
摘要:http://www.fjutacm.com/Problem.jsp?pid=2411 看到这题,我第一反应简单啊,刷刷刷把代码敲好交了一发 #include<stdio.h> #include<string.h> int main() { char s1[200000],s2[200000],s3
阅读全文
摘要:http://www.fjutacm.com/Problem.jsp?pid=1861 接上一篇,因为变量设太多脑壳昏了,半天没a出来... 理一理思路,把所有情况挨个判断一下就可以了 #include<stdio.h> int main() { int x,y,a,b; char s[10],m,
阅读全文
摘要:今天看了下模拟的题。模拟就是给你一个目标让你(建立数学模型)通过代码去实现它。 感觉大部分都还比较简单。 做模拟啊,读题很重要,主要是分析题目的要求。 http://bailian.openjudge.cn/practice/3750/ 啊,就比如说这道题(当然我没做),能体会到阅读理解的绝望吗 正
阅读全文
摘要:判断奇偶,二进制的运算,组合的遍历......等问题都要用到位运算,所以做个小记录。 & 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。 | 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1。 ^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1。 ~ 取反
阅读全文
摘要:http://www.fjutacm.com/Problem.jsp?pid=1620 sort很方便,遇到排序题我就不受控制往sort靠,记几个知识点方便以后找。 #include<algorithm> using namespace std; sort(a,a+n);//sort(a,a+n,c
阅读全文