自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 Educational Codeforces Round 8 F. Bear and Fair Set(最大流 | Hall定理)★

题意:给定N,B,Q≤104,N能被5整除 N为set大小(无相同元素),元素范围为[1,B],需满足set里元素模5的余数为[0,4]的元素个数相等 Q个条件,bi cnti,表示[1,bi]应该有cnti个数 问这种set是否存在,存在输出“fair”,否则“unfair”分析:把题目条件(B,N)和Q次询问一起按照Bi排序,这样形成了Q+1个不

2016-08-31 17:31:47 1122

转载 Educational Codeforces Round 8(E. Zbazi in Zeydabad(树状数组优化))★ ★

题意:一个n*m矩阵, 里面的格子除了'z'就是'.',问有多少个z形图案。思路:因为n和m很大, 即使n^3复杂度也会超时。  如果按照最朴素的方法, 我们可以处理一下前缀和, 处理出一个格子向左l[i][j]、向右r[i][j]、斜向左下lr[i][j]连着的z到哪里为止, 这样我们用n^2复杂度枚举每一个格子作为z形图案的右上角,取min(l[i][j], lr[i][j]), 就可

2016-08-31 16:38:57 670

原创 Educational Codeforces Round 8 D. Magic Numbers (数位DP)

题意:给一个m一个d, 一个字符串a和b, 问在[a,b]范围内, 有多少个可以整除m的魔法数, 魔法数的定义是, 偶数位上都是d, 奇数位上都不是d。典型的数位DP#include #include #include #include #include #include #include #include #include #include #include #in

2016-08-31 15:22:21 298

转载 HDU 4747 Mex (2013杭州网络赛1010题,线段树)★

题目定义了mex(i,j)表示,没有在i到j之间出现的最小的非负整数。求所有组合的i,j(i就是求mex(1,1) + mex(1,2)+....+mex(1,n)+mex(2,2) + mex(2,3) + ...mex(2,n)+mex(3,3) + mex(3,4)+...+mex(3,n)+ mex(n,n)可以知道mex(i,i),mex(i,i+1)到mex(i

2016-08-31 12:45:57 675

转载 HDU 4034 Graph(11年成都 Floyd运用)

转载请注明出处,谢谢http://blog.csdn.net/acm_cxlove/article/details/7854526       by---cxlove题目:给出一个有向图,任意两点之间的最短路径,问是否 存在这样的图,如果存在最少有几条边http://acm.hdu.edu.cn/showproblem.PHP?pid=4034 对于第一问判断是否存

2016-08-31 08:02:00 330

转载 CF 274D Lovely Matrix(拓扑排序)

题目:给出一个n*m的矩阵,问是否 能改变列的顺序,使得每一行都非递减(其中-1表示可以作为任何一个数)http://codeforces.com/contest/274/problem/D 由于范围比较大,虽然是比较明显的拓扑排序,但是建图比较麻烦不可能两两比较然后建图,而且可能出现大量的相同的数字做法是加入冗余结点,对于每一行我们来建图,排序之后,对于相同的一系列加入一个冗

2016-08-31 07:55:45 361

转载 CodeForces P. Area of a Star(数学)

题意:给出圆形中的一个n角星,求其面积题解:只需要求出黄色三角形的面积,首先可以求出三个角的值,正弦定理可以得到三边长度,面积公式求面积,最后乘上2n即可。#include#include#define pi acos(-1.0)int main(){ double n,r;

2016-08-30 17:17:06 325

转载 8VC Venture Cup 2016 - Elimination Round F. Group Projects(DP)★ ★

题意:给n个人, 让我们分成若干组, 每组的值是最大值减去最小值, 求所有组的和。思路:显然, 需要用DP的思想, 但是该题DP设计的非常巧妙, 而且状态转移的情况容易考虑不全。我们用d[i][j][v]表示考虑了前i个数了, 有j个组是开放的(所谓开放指的是只有最小值, 还没有最大值, 还可以进人), 当前值之和为v 的方案数。我们先排序, 这样, 对于开放的组, 每次的

2016-08-30 16:07:48 755

转载 8VC Venture Cup 2016 - Elimination Round E. Simple Skewness(枚举+三分)★

题意:给你n个数, 要求选若干个数, 使得这些数的平均数减去中位数尽量大。思路:由于该题没有顺序问题, 排好序之后我们可以枚举中位数, 可以证明, 奇数个数一定比偶数优,然后三分中位数左右区间长度x(数的个数), 在中位数的右边选最大的x个数, 在左边也选最大的x个, 这样, 随着区间长度的增加, 平均数将先增大后减小, 或者一直减小,或者一直增大。为什么呢? 假设第一次的区间长度

2016-08-30 15:06:02 849

原创 8VC Venture Cup 2016 - Elimination Round D. Jerry’s Protest

题意:Andrew和Jerry 正在玩一种游戏。他们俩从一个坛子里取一个球,谁的球上的编号大谁获胜。Andrew 赢了第一局和第二局,Jerry 赢了第三局。问Jerry 取的三个球数字总和大于Andrew 的概率是多少 思路:由于结果是固定的,所以我们只需枚举出所有的胜利方式, 用a[i]记录胜利方比失败方都i分的概率,sum[i]表示胜利方比失败方多的分数大于等于i的概率。因为i

2016-08-30 11:23:24 522

原创 8VC Venture Cup 2016 - Elimination Round B. Cards(分类讨论)

题意:给出BGR三种颜色给你,有两种操作(1)相同的两种合为一种(2)不同颜色两种合成为第三种问你最后剩下的一个字母可能是什么颜色,将可能的颜色输出。思路:这种题目看起来很难,其实想想答案无非就B,G,R三个字母组成,所以就会想到只要B,G,R都为1时就都能表示,所以推广到任意都行,所以我们只要将为0,的情况枚举出来就行了#inc

2016-08-30 10:38:48 422

转载 codeforces 622F. The Sum of the k-th Powers (拉格朗日插值法)★

求 modulo109 + 7根据题目给出的例子我们可以发现, k次方的通项公式的最高次是k+1次, 根据拉格朗日插值法, 构建一个k+1次的方程需要k+2项。然后公式是  , 对于这个题, p[i]就是i^k+(i-1)^k+(i-2)^k+.....+1^k, 这部分可以预处理出来。 自己不会搞公式 , 从http://www.cnblogs.com/qscqesze/

2016-08-29 21:31:17 1289

原创 E. Ants in Leaves

题意: 有一颗树,树的每个叶子上都有一个蚂蚁,蚂蚁往树根处爬。其中每个结点(根节点除外)最多只能出现一只蚂蚁。问最少经过多长时间全部的蚂蚁才能都到达根节点 思路: 由于只有根节点可以同时有多只蚂蚁,so 我们先将根节点的子节点拆除。这样就将一棵树转化为森林,显然森林的其中的一颗耗时最长的树就是最后的答案。 所以我们的问题就是如何计算每棵树最长的耗时。 对于其中的一棵树, 先

2016-08-29 20:32:06 502

原创 D. Optimal Number Permutation(构造)

题意: 有一个长度为2*n的数组,数组由1到n,n个数,组成。其中每个数出现两次 对于每个i,i出现的位置是xi, yi (xi i) ,其中di = yi - xi求 最小时的数组序列思路: 最小值是0。因为我们只要保证每个数都相距n-i就行了,这样求和结果就是0。于是我们分奇数偶数进行构造,分别占n的长度,对于n特殊处理一下。因为i=n的时候一定是(n-i)=0,

2016-08-29 19:30:24 670

原创 C. Not Equal on a Segment

题意: 有一个数组,每次输入l, r, x,输出一个l和r之间的一个不等于x的数的下标题解:用另一个数组b存放每个数右边第一个和它不相等的数的下标 如果a[l] != x,则输出l,否则输出(b[l]另外,在计算b数组的时候还需要注意一下,如果从1到n,一个个的计算的话,还是会TLE的。所有我们计算b数组的时候需要从n到1计算,如果a[i]!=a[i+1]; b[i]

2016-08-29 19:16:03 426

转载 Codeforces Round #342 (Div. 2) E. Frog Fights set 模拟★ ★

题意有n只青蛙,站在m大的一个环形上面青蛙的位置是pi,每次移动ai每只青蛙按照编号顺序移动,会撞掉他所经过的青蛙,每撞掉一只,会使得这只青蛙移动的距离减小1然后问你一直循环下去,还剩下哪些青蛙题解:模拟但是别按照编号的顺序去模拟,我们按照相撞的时间先后顺序去模拟就好了首先我们可以得到一个信息,这只青蛙如果会和别的青蛙相撞,那么最先相撞的

2016-08-29 16:52:23 555

转载 构造 D - Finals in arithmetic ★ ★

题意:一个数字a + 反过来的ar == n (分析:完全看别人代码看懂的。不考虑进位的话,那么n应该是是回文的。那么处理成不进位的,每一位0~18。#include #include #include #include #include #include #include #include #include #include #include #includ

2016-08-29 15:53:50 550

原创 C. K-special Tables【构造】水

题意:给一个n和k的,要求第k列的和最大,n*n的矩阵,要求1到n*n所有数都出现,且每一行从左到右要求为递增题解:第k列之后一定只增加一,按照这个构造即可#include #include #include #include #include #include #include #include #include #include #include #include

2016-08-29 15:20:19 485

转载 codeforces 624d 623b Array GCD ★ ★

题意:有两种操作,每种只能用一次,第一种对于一段连续区间进行移除(不能全删完),代价是长度*a,第二种是对于一些数进行+1或者-1,使得最后的剩余的最大公约数大于1思路:由于不能全删完,所以至少会有一个数留着,这个数肯定会是头一个或最后一个,最大公约数肯定是在选中的这个数最后状态中的一个约数,而我们只要先枚举这个数是多少(一共6种),然后枚举他的素因子,用dp顺推即可。#inclu

2016-08-29 14:59:44 547

转载 Poj 题目分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:  

2016-08-29 08:49:15 520

转载 DP总结 ——QPH

常见优化单调队列形式dp[i]=min{f(k)}dp[i]=max{f(k)}要求 f(k)是关于k的函数k的范围和i有关转移方法维护一个单调递增(减)的队列,可以在两头弹出元素,一头压入元素。队列中维护的是两个值。一个是位置,这和k的范围有关系,另外一个是f(k)的值,这个用来维护单调性,当然如果f(k)的值可以利用dp值在O(1

2016-08-29 08:47:53 981

转载 计算几何题目分类

转载一。基础题目 1.1 有固定算法的题目 A, 最近点对问题最近点对问题的算法基于扫描线算法。ZOJ    2107    Quoit Design    典型最近点对问题POJ    3714    Raid    变种最近点对问题B,最小包围圆最小包围圆的算法是一种增量算法,期望是O(n)。ZOJ    1450    Minimal

2016-08-29 08:47:11 507

转载 AIM Tech Round (Div. 2) C. Graph and String 二分图染色

转载自:http://www.cnblogs.com/qscqesze/p/5183085.html题意给你一个图,然后让你给这些图标号,问你有没有一个合法的标号标号就只能标a,b,c。然后a会和ab连边,b和abc都连边,c和bc连边有解就任意输出一个就好题解:我们首先把那种边集有n-1的点染成b,然后再随便选一个没有染成b的点当成a,然后

2016-08-29 08:34:17 649

转载 scu oj 4442 Party(2015年四川省acm程序设计竞赛)★ ★ ★

转载自:http://blog.csdn.net/u012127882/article/details/47397919题目意思:有n个青蛙喝茶,有些青蛙只能喝红茶,有些青蛙只能喝绿茶,有些青蛙红茶绿茶都可以喝。现在m对青蛙之间有矛盾,有矛盾的青蛙他们不能喝一样的茶,对于没每一只青蛙,可以给他w[i]金币,让他不喝茶,他就不会和任何青蛙矛盾了。最少需要给多少钱让他们之间没有矛盾存在。这题里面还

2016-08-28 18:18:50 1454

原创 scu oj 4441 Necklace(dp+树状数组求上升序列最大和)

题意:N个数构成一个环,现在可以删除一些数,使得这个环可以分成连续的三部分:X部分:所有数不降Y部分:仅含一个值为10000的数Z部分:所有数不增(X,Y中不含值为10000的数),值为10000的数不超过10个。求满足条件的环中,剩余数字的和最大为多少?题解:枚举值为10000的数。确定值为10000的数的位置后,环就断成了一条链。我们可以用动态规

2016-08-28 13:45:23 625

原创 SCU - 4444 别样最短路径-大数据完全图

题目大意:给定一个完全图,其中有两种边,长度为a(不超过5e5)或长度为b(剩下的),求有1~n的最短路径(数据范围1e5)解题思路:如果1和n之间连边为a那么答案一定为a和一条最短的全由b组成的路径的较小者,如果1和n之间连边为b,那么答案一定           为b和一条最短的全由a组成的路径的较小者。对于第1种情况直接跑spfa就可以了,第二种情况由于边数较多,不能直接spfa

2016-08-27 21:16:44 947

原创 scu oj 4437: Carries

其实这题只要想到这个结论就简单了。如果2个数a,b的第k位相加要进位,那么必须满足(a%10^k+b%10^k)>=10^k  .有了这个结论就很简单了,枚举没一位就好了。#include #include #include #include #include #include #include #include #include #include #include

2016-08-27 20:35:40 525

转载 Codeforces Round #341 (Div. 2) E. Wet Shark and Blocks(矩阵优化DP)★

转载自:http://blog.csdn.net/weizhuwyzc000/article/details/50618417题意:给n个数作为一个块,有b个块,从其中若干个中选择数,每个块只能选一个数,最后组成一个数模x等于k的方法数。思路:很容易想到这样一个DP方程 : 用dp[i][j]表示现在i位,余数是j。那么很容易知道,边界是d[0][0] = 1;那么dp[i][j]

2016-08-26 21:29:09 1012

转载 Wunder Fund Round 2016 D. Hamiltonian Spanning Tree(贪心+dp)★ ★ ★

转载自:http://blog.csdn.net/lwt36/article/details/50614467题意:N≤2×105个点的完全图,边权为y 现给定其中N−1条边,改变其权值为x,保证这个N−1条边形成树 试求出一条任意起点权值最小的哈密顿路分析:首先对于x>y的情况,我们总有可以走不是树边的办法,除了星形图必须要走一条树边 构造

2016-08-26 19:49:06 512

转载 Wunder Fund Round 2016 (Div. 1 + Div. 2 combined)-C. Constellation(贪心+向量平行判断)

转载自:http://blog.csdn.net/qq_24489717/article/details/50638200题意:给你N个点,求三个点使得他们围成三角形。而且这个三角形内部没有点。题解:按照字典序排序,先选取2个点,然后枚举第三个点是否与前2点共线,我是使用斜率去判断是否在一条线上,这里注意一下不要直接求出斜率K,还是移项一下,使用乘积的形式,不然会出现除以0的情

2016-08-26 19:38:45 465

原创 Wunder Fund Round 2016 (Div. 1 + Div. 2 combined) B. Guess the Permutation

题意:给你一个数字n,然后1-n数字之间有很多排列,求得一个排列,使得ai, j = min(pi, pj).(a[i][j]为矩阵中的值)题解:直接找每行最大值就行,判断一下之前是否出现过n-1就好#include #include #include #include #include #include #include #include #include #inclu

2016-08-26 17:32:21 457

转载 Codeforces Round #340 (Div. 2)E-XOR and Favorite Number(莫队算法)★ ★

转载自:http://blog.csdn.net/zsc2014030403015/article/details/51307922题意:  给出你n个数,m次查询,要你找出[L,R]异或为k的子区间有多少个。思路:  这题思路是首先求出前缀和,所以就会有sum[L-1]^sum[R]==k的公式,但是左边是两个都是不清楚值的,所以要转变一下,变为sum[R

2016-08-26 16:32:45 558

原创 Educational Codeforces Round 6 E. New Year Tree(DFS序+线段树)

题意:给你一棵树,编号1~n,告诉你根结点是1。 每次有两个操作:1,将以v为根的子树的结点全部染成颜色c2,问以v为根的紫书的结点的颜色种类。思路:如果这是一条线段的话, 那么这就是线段树的区间更新问题,而现在是一棵树。因为告诉了根结点是1, 那么这棵树的任意一个结点的子树就是确定的, 所以我们可以用DFS的先序遍历,将所有结点重新编号,因为先序遍历的话, 任意一

2016-08-26 15:23:26 415

原创 Educational Codeforces Round 6 D. Professor GukiZ and Two Arrays(二分 | two pointers)

题意:给定N≤2×103的两个序列,给定0≤k≤2次交换2个序列中一个数的操作,使得|suma−sumb|最小分析:k很小,所以可以枚举,k=0或者k=1直接搞就可以了 对于k=2,我们可以预处理出2个序列的C2n个数 对于交换的2个数ai,bj,a序列suma′=suma−ai+bj,b序列sumb′=sumb+ai−bj dif′=suma′−s

2016-08-25 22:33:55 339

转载 Codeforces Round #339 (Div. 2) D.Skills(贪心)

转载自:http://dirtytao.com/codeforces-round-339-div-2/题意:一共n个技能,最大等级都为A,当前等级已给出。现在有m个技能点,需要通过这些技能点使“战斗力”最大化战斗力=满级技能数Cf + 最低技能等级Cm,输出最大化的战斗力和对应的技能等级。思路:先将所有技能等级和位置都记录下来,按照等级从小到达进行排序,然后求出前缀

2016-08-25 21:34:45 331

转载 Codeforces Peter 614 C and Snow Blower

计算几何: 计算一个多边形绕着圆心旋转一周所得区域的面积,通过样例就可以看出应该是是一个圆环,所以只需要找到图形上到圆心的最远点和最近点即可,最远点一定在点上,最近点可能在点上可能在边上,具体判断方法是:由于点的给出方法为顺时针或逆时针,所以只需要O(n)扫一遍环即可,利用余弦定理去判断形成的角是否为钝角,(即最近点是不是在给定的边上)如果是钝角的话那么则取两个端点的最小值,如果不是的话则利用

2016-08-23 21:56:38 471

原创 E. Sum of Remainders (数学)★

题意:求解∑mi=1nmodi。思路:我们化简nmodi=n−n/i∗i。这样原式 =n∗m−∑mi=1(n/i∗i)首先m=n−−√时,直接暴力,对于剩下的,我们可以分块来搞,总会存在一段连续的值使得n/i为定值,那么我们找到这个区间就可以了。#include #include #include #include #include #include #incl

2016-08-23 16:26:26 1676

原创 poj 2125 Destroying The Graph(最小点权覆盖集)

【题意】给出一个有向图,定义两种操作:w+(i)删掉i点的所有入边w-(i)删掉i点的所有出边,每种操作都有对应的花费,问删掉所有边的最小花费。【解答】建图方法:对于每个点i,拆点为i,i+n,对于入边,从i+n想汇点T连边,值为入边花费;对于出边,从S向i连边,权值为出边花费。m组相连的边(x,y),从x向y+n连边, 费用INF。求出最小割。然后是计算删除的

2016-08-22 18:36:01 576

转载 最大密度子图 (带点权,带边权)

转载自:胡伯涛《最小割模型在信息学竞赛中的应用》

2016-08-22 16:13:55 1026

原创 poj 3155 Hard Life (最大密度子图)

题意:一个公司有n个人,给出了一些有冲突的人的对数(u,v),公司决定裁人,那么总裁现在要裁掉冲突率最高的那些人(冲突率=在这些人中存在的冲突数/人数)。就是求出一些点,这些点之间的边数/点数最大。最大密度子图。思路:胡伯涛的论文《最小割模型在信息学竞赛中的应用》介绍了两种方法:第一种:转换为最大权闭合图的模型来求解:设max g = f(x)= |E‘|/|V’| ,找一

2016-08-22 16:03:06 519

空空如也

空空如也

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

TA关注的人

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