摘要:题目大意:有n个点(n 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #define N 40000...
阅读全文
摘要:求矩形的面积之和。线段树+离散话+扫描线 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #define INF 9999999911 using...
阅读全文
摘要:题目大意给你一颗边带权值的树,求树上的每一点距离其最远的一个点的距离分析经典的树形DP题。由于对于一个节点来说,可能得到的距离最大的值的路径来自他的子树,或者从他的父节点过来,所以用两次DFS。但是有个问题就是判断一个点的从父节点过来的最大值,那么如果他的父节点存的最大值正好是从该点过来的,那么就失...
阅读全文
摘要:之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。45 149 438 125 246 137第一行两个整数n m。n表示顶点个数(顶点编号为1~n),m表示边的条...
阅读全文
摘要:1 // 求目标串中出现了几个模式串 2 //==================== 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 struct ...
阅读全文
摘要:今天看了一个数学建模题,随便就记录一下所查找的资料。下面都是来自网上的资料索引是一种特殊的数据结构,在数据结构上实现高级查找算法,这种数据结构,就是索引。 原博客 http://blog.jobbole.com/24006/创建索引并不会改变表中的数据,它只是创建了一个新的数据结构指向数据表;打个比...
阅读全文
摘要:题目大意:n个点,第i个点和第i+1个点可以构成向量,问最少删除多少个点可以让构成的向量顺时针旋转或者逆时针旋转。分析:dp很好想,dp[j][i]表示以向量ji(第j个点到第i个点构成的向量)为终点的最大顺时针/逆时针向量数。状态转移方程为 dp[j][i] = max{dp[k][j]+1}。问...
阅读全文
摘要:先看看上一个题:题目大意是:矩阵中有N个被标记的元素,然后针对每一个被标记的元素e(x,y),你要在所有被标记的元素中找到一个元素E(X,Y),使得X>x并且Y>y,如果存在多个满足条件的元素,先比较X,选择X最小的那个,如果还是有很多满足条件的元素,再比较Y,选择Y最小的元素,如果不存在就输出两个...
阅读全文
摘要:【题意】:给出n个点,m条边,边分为两种,一种是A公司的,一种是B公司的。边上有权值,问用n-1条边把n个点连起来的最小费用是多少,其中A公司的边刚好有k条。题目保证有解。思路:我们发现,如果我们给白边增加权值,做最小生成树,由于白边权值增大,导致不容易选白边。记f(x)为给白边增加x权值,做最小生...
阅读全文
摘要:二维坐标:a=λb则a∥b向量法a(x1,y1) b(x2,y2)若x1y2=y1x2则a∥b若a*b=x1x2+y1y2=0则a⊥b三维坐标:向量法a(x1,y1,z1) b(x2,y2,z2)x1/x2=y1/y2=z1/z2=k则a∥b若a*b=x1x2+y1y2+z1z2=0则a⊥b
阅读全文
摘要:题目大意:判断空间上4个点是否形成一个正方形分析:标称思想 :在p2,p3,p4中枚举两个点作为p1的邻点,不妨设为pi,pj,然后判断p1pi与p1pj是否相等、互相垂直,然后由向量法,最后一个点坐标应该为pi+pj−p1,判断是否相等就好了。我的思想 : 枚举了各种情况,4条边相等+有一个角是直...
阅读全文
摘要:题目大意:给定一组数,取两个数,使得gcd最大.分析:先nlogn预处理出105所有数的因子,然后用cnt数组计数给定数的因子个数,再找到最大的i,满足cnt[i]>=2,复杂度为nlogn。学习一下这种思路 1 #include 2 #include 3 #include 4 #include 5...
阅读全文
摘要:题意:一张相片上的很多建筑相互遮住了,根据高低不同就在相片上把一座高楼的可见部分作为一个矩形,并用数字描述其高度,若一张相片上的两个建筑群中间有空地,高度则为0;求最少有多少个建筑;分析:输入的0不是建筑,则输入的总个数减去0的个数就是最多可能有的建筑数;再从第一个开始从前往后搜,若发现比它高的则继...
阅读全文
摘要:划分树 1 /* 2 HDU 2665 Kth number 3 划分树 4 5 6 */ 7 8 9 #include10 #include11 #include12 #include13 using namespace std;14 15 const int MAXN=100010;1...
阅读全文
摘要:首先发现一个很头痛的问题,下面是2个求排列组合的代码1 memset(C,0,sizeof(C));2 for(int i=0;i 2 #include 3 #include 4 #define MOD 1000000007 5 using namespace std; 6 typedef...
阅读全文
摘要:题目大意:有三个骰子,分别有k1,k2,k3个面。每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和。当分数大于n时结束。求游戏的期望步数。初始分数为0分析设E[i]表示现在分数为i,到结束游戏所要掷骰子的次数的期望值。显然E[>n]=0;E[0]即为所求答案;E[i]=∑...
阅读全文
摘要:一、 Arena插件配置1. 下载Arena 指针:http://community.topcoder.com/tc?module=MyHome 左边Competitions->Algorithms->Single Match Rounds->Launch Arena->Load Competi...
阅读全文
摘要:来自这两篇博客的总结http://blog.csdn.net/SunnyYoona/article/details/43938355http://m.blog.csdn.net/blog/mr_zys/10226425题目大意如图所示,在一条水平线上有N个建筑物,建筑物都是长方形的,且可以互相遮盖。...
阅读全文
摘要:类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素。该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束。在STL中unique函数是一个去重函数, unique的功能是去除相邻的重复元素(只保留...
阅读全文
摘要:在每个位置讨论一下最大值最小值的取值范围就行 1 #include 2 #include 3 #define maxn 200003 4 using namespace std; 5 typedef long long LL; 6 LL a[maxn],b[maxn]; 7 8 int main(...
阅读全文
摘要:题目大意:一辆车,每秒内的速度恒定...第I秒到第I+1秒的速度变化不超过D。初始速度为V1,末速度为V2,经过时间t,问最远能走多远。分析开始的时候想麻烦了。讨论了各种情况。后来发现每个时刻的最大值都满足一定的约束关系。设此时为时刻i,上一次的速度为p,那么本次的速度应为max(p+d,v2+(t...
阅读全文
摘要:迅雷下载地址 http://bbs.pinggu.org/thread-1426998-1-1.html(下载速度比较快)1Setup.exe2.不使用 internet 安装 then 下一步3.接受许可协议条款4.选择‘我已有我的许可证的文件安装密钥’5.密钥----Matalab安装文件下C...
阅读全文
摘要:题目大意:有n根连续的木棒,其中有m根是坏的,现在要求将木棒切成连续的四段,使得其中三段中都不包含坏的木棒,且三段木棒的长度和最大,在最长的前提下看这三段木棒能否拼成三角形,如果能的话,问最多有多少种且木棒的方法解题思路:要使三段都不含坏的木棒,就要把所有坏的木棒包含在一段里,就要找出坏的木棒的最小...
阅读全文
摘要:在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的qi;通过,greater>qi2;其中第二个参数为容器类型。第二个参数为比较函数。故示例2中输出结果为:2 3 5 6 9
阅读全文
摘要:今天看了3个这种题了 枚举第一行即可 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #define ...
阅读全文
摘要:一开始以为是完全背包问题,但是背包的体积V太大,直接背包果断不过。 正解应该是大范围贪心,小范围背包。 直接谈心不能保证充分利用背包的体积,从而不能保证找到最优解。 但是背包找到的最优解也肯定是尽可能将性价比高的物品放进去。 这样答题思路就出来了,先分出一部分空间 V1 来用来贪心,剩余部...
阅读全文
摘要:推导过程首先,令化简:带入同除,整理得:由椭圆面积公式:(a不是题目中的a,b也不是题目中的b)知:又知:故:积分得:
阅读全文
摘要:最长上升子序列的O(n*logn)算法分析如下:先回顾经典的O(n^2)的动态规划算法,设a[t]表示序列中的第t个数,dp[t]表示从1到t这一段中以t结尾的最长上升子序列的长度,初始时设dp [t] = 0(t = 1, 2, ..., len(a))。则有动态规划方程:dp[t] = max{...
阅读全文
摘要:题目大意给出了一列数,要求通过修改某些值,使得最终这列数变成有序的序列,非增或者非减的,求最小的修改量。分析首先我们会发现,最终修改后,或者和前一个数字一样,或者和后一个数字一样,这样才能修改量最小。我们先根据原数列排序,确定元素的大小关系,对应编号为p[i]dp[i][j] 表示考虑前i个元素,最...
阅读全文
摘要:题目大意:FJ有n头牛,排列成一条直线(不会在同一个点),给出每头牛在直线上的坐标x。另外,每头牛还有一个自己的声调v,如果两头牛(i和j)之间想要沟通的话,它们必须用同个音调max(v[i],v[j]),沟通起来消耗的能量为:max(v[i],v[j]) * 它们之间的距离。问要使所有的牛之间都能...
阅读全文
摘要:题目大意:一个N个点的序列,要将他们全部覆盖,求总最少费用;费用计算:c+(x-y)2分析:斜率优化DP我们假设k=sum[i],那么j点此时是比i点要更优,但是同时g[j,k]>g[i,j]>sum[i]。这说明还有k点会比j点更优,同样排除j点。排除多余的点,这便是一种优化!接下来看看如何找最优...
阅读全文
摘要:题目大意给你一张nn*mm矩形地图。上面有些点上有敌营。给你起点和终点, 你找出一条最优路径。满足最优路径上的点离敌营的最近最短距离是所有路径最短的。若有多条找路径最短的一条。分析通过二分来确定路径离敌营最短距离。然后bfs来验证。 1 #include 2 #include 3 #inclu...
阅读全文
摘要:1 int binary_search(int* a, int len, int goal) 2 { 3 int low = 0; 4 int high = len - 1; 5 while(low goal)12 high = middle - ...
阅读全文
摘要:水题,就不解释了,不过这个题有一点很好,就是枚举的时候,枚举宽,也就是列数,因为这样才能越来越接近正方形 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #includ...
阅读全文
摘要:1 struct Dinic 2 { 3 struct node 4 { 5 int x,y,c,next; 6 }line[MAXM]; 7 int Lnum,_next[MAXN],dis[MAXN],dp[MAXN];...
阅读全文
摘要:题意大意 在X,Y坐标系中有N(N 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #define maxn 5000 12 ...
阅读全文
摘要:1 struct edge 2 { 3 int to,cap,rev; 4 }; 5 6 vectorG[maxn]; 7 bool used[maxn]; 8 void add_edge(int from,int to,int cap) 9 {10 G[from].push_...
阅读全文
摘要:字符串格式化命令,主要功能是把格式化的数据写入某个字符串中试试下面的代码就知道了 1 #include 2 #include 3 using namespace std; 4 int main() 5 { 6 double num=3.123456677; 7 char str[10...
阅读全文