08 2016 档案
摘要:先说说最小路径覆盖的定义 定义:在一个有向图中,找出最少的路径,使得这些路径,经过每一个点,且每一个点只与一条路径相关联, 由上面得出: 1.一个单独的点是一个路径 2:如果有路径a,b,c。。。。f,g。a为起点,g为终点。那么a到g的点不在与其他点之间存在有向边。 最小路径覆盖=点数 最大匹配数
阅读全文
摘要:棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4272 Accepted Submission(s): 2515 Problem De
阅读全文
摘要:Flow Problem Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 13315 Accepted Submission(s): 6372 P
阅读全文
摘要:一点小变形就是了。。】#include<iostream> #include<cstdio> #define maxn 201 #define inf 999999 using namespace std; int n,m,mapp[maxn][maxn],dis[maxn],vis[maxn];
阅读全文
摘要:#include<cstdio> #include<iostream> #include<string.h> #include<cmath> #define maxn 105 #define inf 9999999 int vis[maxn],n;//用来表示点是否在集合里 int mincost[
阅读全文
摘要:include<cstdio> #include<iostream> #include<string.h> #include<cmath> #define maxn 105 #define inf 9999999 struct node { double x,y; }stu[maxn]; int v
阅读全文
摘要:嗯 水水的#include <cstdio> #include <cmath> #include<iostream> #include <algorithm> using namespace std; const int maxn = 10000+10; int pre[maxn]; int n,m
阅读全文
摘要:万恶的打表#include<stdio.h> #include<math.h> #include<stdlib.h> #include<string.h> #define INF 0x3f3f3f #define max 600+50 int map[max][max],visit[max],low
阅读全文
摘要:同样的代码 每次交的结果都不一样#include<stdio.h> #include<string.h> #include<stdlib.h> #include<algorithm> #include<iostream> using namespace std; struct Node { int
阅读全文
摘要:Choose the best route Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 13229 Accepted Submission(s
阅读全文
摘要:嗯 有广搜的意思 #include<cstdio> #include<iostream> #include<queue> #include<vector> #define maxn 1001 #define inf 9999999 using namespace std; struct vec //
阅读全文
摘要:最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 55394 Accepted Submission(s): 24486 Problem D
阅读全文
摘要:Constructing Roads Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 20927 Accepted Submission(s):
阅读全文
摘要:大致的步骤 首先选取一个到集合最近的点 然后标记起在集合内部 然后更新最短距离 畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 24
阅读全文
摘要:Problem Description Dandelion's uncle is a boss of a factory. As the spring festival is coming , he wants to distribute rewards to his workers. Now he
阅读全文
摘要:尤其要注意拓扑的分层问题 不难理解 就是不怎么好想到 拓扑的思路这里就不累述了
阅读全文
摘要:虚拟数组 待定/。#include<iostream> #include<algorithm> #include<set> using namespace std; int f[1000001],n,m; int hash1[100001]; set<int> st; void init() { f
阅读全文
摘要:确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22679 Accepted Submission(s): 9193 Problem
阅读全文
摘要:Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to D-city. D-city has N D-points and M D-lines. Each
阅读全文
摘要:。,。 还是待整理#include <stdio.h> const int max_num = 100000+10; typedef struct { int num,root,conn;//数据、根、入度 }Node; Node node[max_num]; void init() { for(i
阅读全文
摘要:思路待整理#include<cstdio> #include<iostream> #include<vector> #include<queue> #define maxn 2005 using namespace std; string mapp[maxn]; int n,du[maxn]; ve
阅读全文
摘要:小希的迷宫 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,
阅读全文
摘要:#include<cstdio> #include<iostream> #include<cstdio> #define maxn 2000005 using namespace std; int pre[maxn<<1]; int find(int r) { if(pre[r]==r) retur
阅读全文
摘要:Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题。亲
阅读全文
摘要:Problem Description Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had.Marge: Yeah, what is it?Homer: Take
阅读全文
摘要:重点整理面积并的思想 以及PushUp的及时更新 还有就是cover的实现 以及建树每个节点存的信息(每个节点存的是一个线段的信息) http://www.tuicool.com/articles/6Zf6J3 大致思想 再就是 得注意线段树维护的信息是什么 如图所示 一个点维护的是一段线段的长度
阅读全文
摘要:统计出字符串中共能拼凑出多少happy。happy相对次序不变。
阅读全文
摘要:先说下权值线段树的概念吧 权值平均树 就是指区间维护值为这个区间内点出现次数和的线段树 用这个加权线段树 解决第k大问题就很方便了 附上吴迎学长离散化的标准代码 再说说5249吧。,。 看了下吴迎学长的代码。。 感触挺深。 自己按照思路码了一遍 库函数好用
阅读全文
摘要:在杭电上测试了下 这里的状态转移方程有两个。,。 现在有价值val[1],val[2],…val[n]的n种硬币, 它们的数量分别为num[i]个. 然后给你一个m, 问你区间[1,m]内的所有数目, 由之前n种硬币来构造(即选取某些硬币使得这些硬币的价值和等于[1,m]区间的特定数), 最多能构造
阅读全文
摘要:。,。 最近在看背包九讲 所以就刷了一下背包的题目 这道题目是一个典型的完全背包问题 而且要求满包 在这里 我就简单整理一下背包初始化问题吧 对于没有要求满包的问题 也就是背包可以不取满的问题 在背包初始化的时候 可以全部初始化为0(inf)因为不要求其满包 所以 在求解的过程中 就不用强求从第一个
阅读全文
摘要:俗话说的话 正难则反。,。 这个基本的思想都用不好的话 回家种田去吧。 #include<cstdio> #include<string.h> #include<iostream> using namespace std; double minn(double x,double y) { if(y<
阅读全文
摘要:#include<string.h> #include<cstdio> #include<iostream> using namespace std; int main() { int dp[33001],x; memset(dp,0,sizeof(dp)); dp[0]=1; for(int i=
阅读全文
摘要:这里先统一一下单点更新以及区间查询问题吧 统一使用全局变量 区间查询的话 目的区间用全局变量x y表示 然后从第一层开始 不断向下层搜(也就是不断的二分的过程) 先说说平时怎么求逆序数把 在每次读入一个数的时候 记录前面比他大的数就是目前的逆序数 那么 怎么用线段树来实现呢 首先 我们需要建一个空树
阅读全文
摘要:先说说普通01包的状态问题吧 普通的01背包,在状态转移的过程中为了求出最优解,一定是遍历了所有的情况 然后再求的最优解。那么对于第k最优解问题,我们只需要再加一个维度,用来记录每一个状态k优解的状态就好了。 在普通背包过程中 每次的选举的状态为dp[i-1][j],dp[i-1][j-c[i]+w
阅读全文
摘要:前几天打bestcode 的时候 里面有一道题目是用尺取法。。 然而。。我没看出来(主要是问题的转化过程) 先说说尺取法的使用范围吧 在一段区间里面 寻找满足条件的区间个数问题 先上题目 hdu5806 题目是求满足条件的区间个数 所以可以用尺取法 那么关键就来了 如果确定区间 这里转换一下 需要满
阅读全文
摘要:rmq(int i,int j,int a)表示查询a数组i到j区间的内容中的最大/最小值核心部分为二分区间以及st预处理算法 先说st预处理算法吧 int dp[i][j];//表示以i开始 长度为2^j的区间里面元素的最大值 那么 dp[i][0] 就表示a[i]本身了 那么dp[i][j]怎么
阅读全文
摘要:除了上次的新学的有 区间更新 延迟更新 区间合并 先说下区间更新以及延迟更新吧 既然是对区间的维护 在求解一些问题的时候 有的时候没有必要对所有的自区间都进行遍历 这个时候 延迟标记就派上用场了 (只有在需要的时候才对子区间更新) struct node(){ int l,r,len; int fl
阅读全文
摘要:数位dp解决的问题是指求在一段数的区间里面 满足条件的数的个数 核心为两点 http://wenku.baidu.com/link?url=tpfIYzhx_MzevpIM58UZ66pr-87MCFPKTMKFdGDi5jUqyO9ckti0mY6diSz2PZEL_ZBhd2zIbhus1mnz
阅读全文
摘要:威威猫系列故事——篮球梦 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3977 Accepted Submission(s): 1042 Prob
阅读全文
摘要:先说说区间更新和单点更新的区别 主要的区别是搜索的过程 前者需要确定一个区间 后者就是一个点就好了 贴上两者代码
阅读全文
摘要:吉哥系列故事——临时工计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3679 Accepted Submission(s): 1459 P
阅读全文
摘要:Color the ball Problem Description N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过
阅读全文
摘要:好好理解一下背包问题 从01包入手 内层的循环 是为了以后求解记录数据 因为只有一个取舍问题 所以只需要一层循环就可以 这里有三个背包 钱 积分 以及免费物品 那么 就需要三重循环 #include<stdio.h>#include<string.h>#define N 105int dp[N][N
阅读全文
摘要:创建线段树(初始化)】: 由于线段树是用二叉树结构储存的,而且是近乎完全二叉树的,所以在这里我使用了数组来代替链表上图中区间上面的红色数字表示了结构体数组中对应的下标。 在完全二叉树中假如一个结点的序号(数组下标)为 I ,那么 (二叉树基本关系) I 的父亲为 I/2, I 的另一个兄弟为 I/2
阅读全文
摘要:先简单介绍下尺取法 http://blog.chinaunix.net/uid-24922718-id-4848418.html 尺取法就是在卡给定条件的时候 不断的改变下标 起点 终点 #include<cstdio> #include<iostream> #include<string.h> u
阅读全文
摘要:#include #include #include #include #include #include using namespace std; #define LL long long const int N = 100005; vector arr; bool vis[N]; void solve() { while (true) { fill...
阅读全文