随笔分类 -  Algorithm

摘要:1.分治法的思想: 将一个输入规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同,然后递归的求解这些子问题,最后用适当的方法将各子问题的解合并成原问题的解。 2.分治法的步骤: 分(divide) 二分为主 治(conquer) 递归调用,当规模足够小时直接处理 组(comb 阅读全文
posted @ 2016-03-07 20:21 Gssol 阅读(415) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/contest/604/problem/B题意:n个数字,k个盒子,把n个数放入k个盒子中,每个盒子最多只能放两个数字,问盒子容量的最小值是多少(当时没有看清题意,每个盒子最多只能放入两个数字)n个数字的输入是从小到大题目分类:贪心代码:#inc... 阅读全文
posted @ 2015-12-03 22:03 Gssol 阅读(640) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/problemset/problem/604/A题意:求cf比赛每次能够增加的排名,运算规则会告诉你题目分类:数学题目分析:用题目给的公式直接进行运算就好代码:#includeusing namespace std;int a[15]={0,50... 阅读全文
posted @ 2015-12-03 21:40 Gssol 阅读(195) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213题目分类:并查集代码:#include#include#includeusing namespace std;struct ST{ int a; int b;}st[1005];int ... 阅读全文
posted @ 2015-11-18 22:12 Gssol 阅读(141) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1728题目分类:bfs代码:#includeusing namespace std;char maze[105][105];int Sx, Sy, Ex, Ey, k;bool vis[105][105]... 阅读全文
posted @ 2015-11-18 21:14 Gssol 阅读(166) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/contest/597/problem/B题目分类:贪心题目分析:经典的看节目问题(挑战程序设计page 40)代码:#includeusing namespace std;struct P{ int st,en;}order[500005... 阅读全文
posted @ 2015-11-18 00:34 Gssol 阅读(189) 评论(0) 推荐(0) 编辑
摘要:学习原因:正常的数组更新数组中一个区间的值的时间复杂度是O(n),树状数组则将一个数组转化成一个树形结构,这样每次更新的时间复杂度是O(log(n)),时间复杂度大大降低模板:/** 求2的次方 */int lowbit(int t){ return t&(-t);} /** 求前... 阅读全文
posted @ 2015-11-17 23:53 Gssol 阅读(149) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/problemset/problem/598/D题目分类:dfs题目分析:处理的时候一次处理一片而不是一个,不然会超时代码:#includeusing namespace std;int n,m,k,a,b,ii;int ans;char ch[... 阅读全文
posted @ 2015-11-17 22:16 Gssol 阅读(276) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/contest/598/problem/A题目分类:大数题意:1到n 如果是2的次方则减去这个数,否则就加上这个数,求最后的结果是多少题目分析:数很大,关键是精度问题,刚开始用__int64和double发现都是不对的,后来发现用long lon... 阅读全文
posted @ 2015-11-16 23:30 Gssol 阅读(300) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/problemset/problem/598/B题目分类:字符串题意:给定一个串,然后n次旋转,每次给l,r,k,表示区间l到r的字符进行k次平移,具体移动规则看题意,求经过n次旋转之后字符串是怎样的题目分析:自己的做法比较麻烦,后来发现别人用函... 阅读全文
posted @ 2015-11-16 23:01 Gssol 阅读(167) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1519题目分类:插头dp题意:求经过所有可行点的哈密顿回路的个数 * 不可走 . 可以走 2 ≤N,M≤ 12代码:括号匹配法,转移有点复杂,但是时间空间比较小#include#define LL ... 阅读全文
posted @ 2015-11-16 00:28 Gssol 阅读(129) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=3415题目分类:后缀数组题意:给出两个串和一个数字k,求两个串的公共字串大于等于k的数目代码://#include#include#include#include#includeusing namespace std;#define N... 阅读全文
posted @ 2015-11-15 23:42 Gssol 阅读(110) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=3450题目分类:后缀数组题意:求n个串的最长公共字串(输出字串)//#include#include#include#include#includeusing namespace std;#define N 200005int wa[N... 阅读全文
posted @ 2015-11-15 23:32 Gssol 阅读(153) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=2774题目分类:后缀数组题意:两个串,求两个串的最长公共字串的长度代码://#include#include#include#include#includeusing namespace std;#define N 200005int ... 阅读全文
posted @ 2015-11-15 23:22 Gssol 阅读(227) 评论(0) 推荐(0) 编辑
摘要:比较两个数大小import java.math.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = ... 阅读全文
posted @ 2015-11-15 22:15 Gssol 阅读(205) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3488题意:给你一个N个顶点M条边的带权有向图,要你把该图分成1个或多个不相交的有向环.且所有定点都只被一个有向环覆盖.问你该有向环所有权值的总和最小是多少?(哈密顿图)题目分类:最小费用最大流题目代码:... 阅读全文
posted @ 2015-11-15 19:24 Gssol 阅读(167) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3376题意:给出一个矩阵,从(1,1)走到(n,n),然后再从(n,n)走到(1,1),每个点只能走一次,除了(n,n)点。求最大值题目分类:最大流题目代码:#includeusing namespace... 阅读全文
posted @ 2015-11-15 18:23 Gssol 阅读(184) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090题意:n个数,k,给n个数加上k的正倍数或者不加,问最后能不能凑成1 到 n的序列题目分类:暴力题目分析:因为每个数只能变大或者不变,并不能变小,所以要从小数开始往大凑。先排序,然后凑到1了之后然后... 阅读全文
posted @ 2015-11-15 11:20 Gssol 阅读(150) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5518题意:n个数,从中选出两个数,问这两个数的异或值大于两个数较大的数的组合有多少种题目分类:异或代码:#includeusing namespace std;cons... 阅读全文
posted @ 2015-11-13 22:19 Gssol 阅读(200) 评论(0) 推荐(0) 编辑
摘要:(1):区间最值查询问题查询区间最值下标---min#include using namespace std; #define MAXN 100 #define MAXIND 256 //线段树节点个数 //构建线段树,目的:得到M数组. void ... 阅读全文
posted @ 2015-11-13 21:36 Gssol 阅读(186) 评论(0) 推荐(0) 编辑