自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ontheway的博客

在路上,只为温暖我的人

  • 博客(14)
  • 收藏
  • 关注

原创 BestCoder,Nux Walpurgis,最小生成树必要边的数目

题意:给出一个n个节点的图,以及任两个节点间的距离,求最小生成树中,必要边的数目。(必要边:表示这条边一定存在于树中)范围:0分析:给出的是一个稠密图,且用邻接矩阵给出,所以用Prim算法求出最小生成树,并且在求最小生成树的过程中,将这棵树用邻接表的形式储存下来。然后题目应该是最小生成树唯一性判断的升级版,思路同最小生成树唯一性的判断。将那些非树枝的边加上去,假设为边A

2015-09-27 21:29:48 446

原创 BestCoder,57,Desiderium,求期望类题目

题意:给出一个集合,这个集合由n个线段区间组成,线段与线段间可以重合相交,现在让你从中取一个子集,求由这个子集中,构成线段的长度的期望。期望值,最后乘以2^n,并对10^9+7取模,然后输出结果。范围:n分析:这种期望类题目,一般是将问题拆解到小的因子上,求每个线段被取得的概率,然后乘以线段的长度,即为该线段被取得的期望值,最后将所有线段的期望值相加,即为整个问题的期望值。

2015-09-26 21:47:26 523

原创 Codeforces,Kefa and Dishes,状态压缩DP

题意:给定n个物品,每个物品都有一个满意度v,现在从n个物品中选取m个,选的过程中有几个规则,它们是基于选择顺序给出的规则,例如:选择的过程中a和b相邻,且a在b的前面,则满意度增加c,现在给出了k个这样的规则。问你根据这些规则,从n个物品中选取m个的最大满意度是多少。范围:0分析:通过n和m的范围,很容易想到对状态进行压缩。我的初始错误解法:dp[mask]表示当前的状态

2015-09-23 10:57:08 581

原创 Hdu 5454,Minimum Cut,最近公共祖先+dfs遍历

这道题补充了自己最近公共祖先的知识点:LCA(Lowest Common Ancestors)两种求法:①离线:tarjan+dfs;②在线算法,还没看题意:先给定一棵n个节点的树,然后给定一个m条边的图,这个图就是在这棵树上加了一些边构成的,求将这个图切成非连通图所需的最小花费,且在你的切边中,必须包含一条树上的树枝。数据范围:0分析思路:先根据题意把树构造出来,然后

2015-09-21 22:46:08 516

原创 Round #56,Clarke and puzzle,二维树状数组+博弈(printf速度快于cout)

题意:给定一个n*m的矩阵,每个矩阵元素是一个数v,现在有q次查询,每次查询分两种情况:①格式:1 x1,y1,x2,y2,求子矩阵(x1,y1)~(x2,y2)的异或和②格式:2 x,y,z,修改矩阵位置(x,y)中的数值为z。范围:0解法:异或和满足条件:①若原来只为v=a^b,若加入某个数c,则v=a^b^c=v^c,②若原来为v=a^b,取消值b,则v=a^b^

2015-09-19 22:36:51 556

原创 Codeforces,578C,三分求最值

题意:

2015-09-17 13:08:12 550

原创 Codeforces,578C,贪心出错,手工模拟“或”操作

题意:给出n个数,k次操作,每次操作可以将任一数乘以x,问k次操作后,这n个数的“取或”的值,最大为多少。分析:肯定是找二进制表示下,最长的那个数,进行所有的k次操作,我的错误解法,找了值最大的那个数进行k次操作,反例:3(11),2(10),若操作一次的话,应该操作10,而不是11。正确做法,枚举操作哪个数,然后将k次操作都加到他身上,通过num[]数组记录“取或”操作后,每一位

2015-09-17 13:03:05 699

转载 C++ vector排序

#include#include#include #include using namespace std;//这种排序方法,类似结构体的排序int my_cmp(pair p1,pair  p2){return p1.second > p2.second;}int main(int argc,char*

2015-09-16 16:45:40 932

转载 类成员函数后面加const

类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 const。所以 const 关键字对成员函数的行为作了更加明确的限定:有 const 修饰的成员函数(指 const 放在函数参数表的后面,而不是在函数前面或者参

2015-09-16 16:38:21 1364

原创 Codeforces 577B,鸽巢原理(抽屉原理)

题意:给出n和m,然后给出n个数ai,让你判断从这n个数中取一个非空集合,集合中数的和对m取模为零,回答这样的非空集合是否存在。范围:n分析:很容易想到dp解决,dp[i][j]表示当到达第i个数时,和对m求模为j是否可达,可达为1,不可达为0。复杂度O(n*m)。显然要当n和m较大时,要超时。看了结题报告,发现这题用到了抽屉原理的知识(当n>m,n抽屉原理:把(n

2015-09-11 15:18:10 1355

原创 Hdu5429,数学+高精度+等比序列判断

题意:给出n个高精度的数,判断是否是等比序列。范围:0分析:根据题意,可得这道题肯定得用高精度解决,用数组模拟乘法计算过程。判断是否为等比序列方法:a[i],a[i+1],a[i+2],对于任意的i,有a[i]*a[i+2]=a[i+1]*a[i+1]。所以用高精度模拟乘法计算,判断相邻三项是否都满足上述关系式即可。注意:①题目中给出的数可能有前导零;②等比序列

2015-09-06 14:17:10 357

原创 Topcoder SRM630,DIV2,1000,后缀数组

题意:给出一个字符串,让你构造另一个字符串,使得两个字符串产生的后缀数组SA数组相同,且你构造的字符串分析:先求出原串的后缀数组SA[],然后根据SRM630中DIV1的500解决思路,构造出最小的且花费字符个数最少的串,最后这个串和原串是否相同。具体代码:#include #include #include #include #include #include #

2015-09-04 17:57:45 557

原创 Topcoder SRM630,DIV1,500,后缀数组

题意:给出一个字符串的后缀数组的排序后的SA数组,让你构造一个这样的字符串,使其后缀数组SA数组和给定的SA数组一样,问你,最少需要多少个不同的字符来构造这个字符串。分析:理解后缀数组中:SA[]、rank[]、height[]意义。假设有两个后缀a和b,若a①a[0]②a[0]=b[0],且以a[1]开始的后缀数组为了保证所用字符种类最少,优先选择第②种情况来进行考虑

2015-09-04 17:30:49 431

原创 Codeforces 572D,DP

自己状态方程想错了,看了题解才明白,过几天消化消化再写……//看题解:dp[n%k][k-n%k],找出段与段之间相连的最大话费,然后总花费减去这部分花费,即为最小的段之和。

2015-09-01 15:15:00 378

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除