自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Codeforces Round #516 (Div. 2, by Moscow Team Olympiad)

Codeforces Round #516 (Div. 2, by Moscow Team Olympiad)Solved : 3 out of 6Rank : 1347A. Make a triangle!难度: 普及?数学题。。。若刚好能凑成三角形就输出0,否则,设a,b,c从大到小排序,则\(a+x+b>c ~-> ~a+x+b\leq c+1 ~->...

2018-10-21 21:13:00 110

转载 Codeforces Round #513 by Barcelona Bootcamp (rated, Div. 1 + Div. 2)

Codeforces Round #513 by Barcelona Bootcamp (rated, Div. 1 + Div. 2)Solved : 2 out of 8...Rank : 2730 unratedA. Phone Numbers难度:普及组。模拟即可。。每个电话号码占用一个'8'和其他10个数码。Summary : 简单题不要浪费过多时间,要提高做题的...

2018-10-20 21:14:00 124

转载 JOYOI1424 占卜DIY - 模拟

JOYOI1424 占卜DIYSol:模拟即可。TIPS:1.理清思路再写。2.注意各种特判和细节。(比如抽到13后虽直接退出但牌堆还是要下落)AC CODE:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int a[15][6];...

2018-10-14 23:04:00 134

转载 M × N Puzzle - 逆序对【N*M数码问题局面之间可达性判定】

M × N PuzzleSol:\(N*M\)数码某局面到达另一局面的可行性判定可以通过逆序对个数的奇偶性是否相同来判定。我们将这\(N*M-1\)个数写成一列来看。考虑行为奇数,列为奇数的情况->逆序对个数奇偶性相同时可达空格左右移动不会改变逆序对的个数,而上下移动相当于改变了该列前后共\(M-1\)个数的逆序对个数,由于\(M-1\)是偶数,所以移动前后逆序对个数...

2018-10-14 07:41:00 251

转载 CODEVS 2485 七夕祭 - 贪心+中位数【环形均分纸牌问题】

CODEVS 2485 七夕祭Sol:当行的平均值不为整数时,不能均分,列同理。对行和列分别做一次环形均分纸牌问题。AC CODE:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N = 100000 + 100;in...

2018-10-14 07:29:00 77

转载 P2512 [HAOI2008]糖果传递 - 贪心+中位数【环形均分纸牌问题】

P2512 [HAOI2008]糖果传递Sol:环形均分纸牌问题考虑最基本的均分纸牌问题,相当于将环从1与n之间断开。令\(res_i\)表示第\(i\)个人达到平均值所用步数,ave$表示糖果的平均数。则\(res_1=a_1-ave\)\(res_2=a_2-ave+res_1=a_1+a_2+2*ave\)\(res_3=a_3-ave+res_2=a_1+a_2...

2018-10-14 07:24:00 168

转载 P1337 [JSOI2004]平衡点 吊打XXX - 模拟退火

P1337 [JSOI2004]平衡点 吊打XXX模拟退火初始温度\(T_0\) 终止温度\(T_k\) 温度变化率\(d\)\(T_k\)略大于0,\(d\)略小于1当前状态\(x,y\) 当前解\(E\) 当前最优解\(minE\) 当前温度\(T\)新状态\(nx,ny\) 新解\(nE\) 新解与当前解差值\(\Delta E = nE-E\)\(if\)新解比当前...

2018-10-12 21:52:00 91

转载 POJ1845 Sumdiv - 乘法逆元+快速幂【A^B的约数个数和】

POJ1845 SumdivSol:约数个数和\(sumdiv=(1+p_1+p_1^2+\dots + p_1^{c_1})*\dots *(1+p_k+p_k^2+\dots + p_k^{c_k})\)其中每一项都是一个首项为1,公比为\(p_i\)的等比数列的和,即\(1*\frac{1-p_i^{c_{k}+1}}{1-p_i}=\frac{p_i^{c_{k}+1}-...

2018-10-09 23:58:00 119

转载 JOYOI1266 费解的开关 - 枚举+递推【枚举二进制状态】

JOYOI1266 费解的开关Sol:首先观察题目性质:当第一行的方案固定时,接下来所有行的方案都已经固定。因为若第i行的第j列为0,则必须点击第i+1行第j列才能将该0变为1。而第一行的所有点击方案总数为\(2^5=32\),可以将所有方案枚举依次考虑。剩下几行递推求出总共点击次数,然后判断一下得出答案。AC CODE:#include<cstdio>#inc...

2018-10-09 23:33:00 74

转载 POJ2018 Best Cow Fences - 二分【带长度限制的最大平均数子段】

POJ2018 Best Cow FencesSol:题目要求一个平均数最大且长度不小于L的子段,并输出平均数*1000的整数部分(直接截取而非舍入)以下思路来自PKU李煜东神犇的《算法竞赛进阶指南》我们将问题转化一下:相当于将序列中每个数都减去同一个值,且最大子段和非负(即能够找到一个子段,使得该子段中所有数都大于等于这个减去的数)。可以发现,这个数具有单调性:对于同一个序...

2018-10-09 23:25:00 295

转载 POJ1958 Strange Towers of Hanoi --- 递推【n盘m塔Hanoi塔问题】

POJ1958 Strange Towers of HanoiSol:n盘4塔问题可以分为3步:1.以4塔模式移走i个盘。2.以3塔模式将剩余n-i个盘移至第4塔。3.以4塔模式将第一步中的i个盘移至第4塔。我们用\(d[i]\)表示在3塔模式下移i个盘的最小步数,\(f[i]\)表示在4塔模式下移i个盘的最小步数。递推式:\(f[i]=\min_{1\leq j <...

2018-10-09 22:55:00 116

转载 P2502 [HAOI2006]旅行 - 最小生成树【最小比值生成树(雾】

P2502 [HAOI2006]旅行Sol:暴力枚举所有从S到T的路径,然后用maxw/minw更新答案。时间复杂度:\(O(玄学)\)正解观察到边数\(m\leq5000\)考虑由直接求maxw和minw -> 枚举minw求maxw由于从S到T的路径上的最大值最小的边一定在最小生成树上(最小生成树的瓶颈路性质),所以我们可以将边从小到大排序,每次枚举边\(e_...

2018-10-08 23:11:00 94

转载 P1171 售货员的难题 - 状压DP【最短Hamilton路径】

P1171 售货员的难题Sol:最短Hamilton路径,经典的NPC问题,小数据可以通过状压DP 实现。状态:\(f[i][j]\)表示当前在第i号点,且已经过的点的状态为j 时的最短Hamilton路径。阶段:若以点为阶段,由于会从点i转移到点i+1,还可能从i+1转移到i-1,不具有无后效性,因此我们考虑以二进制状态为阶段进行转移。决策:考虑由哪一个点转移而来。转移:\...

2018-10-08 22:54:00 223

转载 P1278 单词游戏 - DFS

P1278 单词游戏传送门Sol:枚举词典中的每个单词,然后跑DFS。再加个记忆化就不会T了。AC Code:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N = 16 + 4,M = 100 + 10;int n;...

2018-10-05 12:41:00 91

转载 POJ2182 Lost Cows - 树状数组【求排列+序列第k小】

POJ2182 Lost Cows传送门题意:给定一个排列,给出每个位置\(i\)的数\(a_i\)前面比\(a_i\)小的数的个数\(k_i\),求这个排列。思路:\(a_n\)是最先可以确定的:\(a_n=k_n+1\)。然后我们可以倒序处理,对于\(a_i\),它等于当前未被选的数中第\(k_i+1\)小的那个,我们可以通过树状数组维护“是否已经被选的01序列”:初始都为...

2018-09-16 23:38:00 89

转载 JOYOI1432 楼兰图腾 - 树状数组【求二元组个数】

JOYOI1432 楼兰图腾传送门思路:题目等价于要求满足\(x_1<x_2<x_3,y_1<y_2,y_2>y_3\)和\(x_1<x_2<x_3,y_1>y_2,y_2<y_3\)的三元组的数量,此问题可以转化为对于每个数,求前面有多少数比它小,前面有多少数比它大,后面有多少数比它小,后面有多少数比它大。类别求逆序对(前面有多少数...

2018-09-16 23:03:00 137

转载 CODEVS1411 武士风度的牛 - BFS

CODEVS1411 武士风度的牛传送门思路:由于本题是求最少步数 ,相当于在一张边权为1(即步数增加1)的图上跑最短路,可以用普通BFS求解:每个状态只访问(入队)一次,所以时间复杂度为\(O(n)\),每个状态第一次入队时即得到该状态的最优解。AC Code:#include<cstdio>#include<cstring>#include&lt...

2018-09-09 13:29:00 122

转载 P2325 [SCOI2005]王室联邦 - 树分块

P2325 [SCOI2005]王室联邦传送门题意:将一棵树分为大小在\([B,3B]\)之间的块,每个块有一个编号\(i\),每种块\(i\)有一个关键点\(P\)(关键点\(P\)可以不再块\(i\)中),所有编号为\(i\)的块内的所有点到\(P\)的路径上不存在其他编号不为\(i\)的块内的点(除关键点\(P\))。其中,\(P\)可以为多种编号的块的关键点。问将这棵树划分...

2018-09-09 12:33:00 80

转载 P2014 选课 - 树形DP[树形背包DP]

P2014 选课传送门思路:树形背包DP模型,\(f[i,j]\)表示以\(i\)为根的子树中,选了\(j\)门课的最大学分。树形DP常以子树\(i\)为阶段。树形背包DP相当于树上分组背包DP。\(f[u,j]=max\{f[u,j],f[u,j-k]+f[v,k]~|~v\in~son(u)\}\)。我们枚举从u的子树v中选的课数k,将\(f[v,k]\)作为获得的价值加到\(...

2018-09-09 07:14:00 136

转载 TYVJ1172 自然数拆分Lunatic版 - 背包DP[完全背包]

TYVJ1172 自然数拆分Lunatic版传送门思路:类比TYVJ1096 数字组合 , 本题的数字可以重复使用,所以是一个完全背包模型。\(f[i,j]\)表示当前选到第\(i\)类数字凑成的数字为\(j\)的方案数。Tips:1.模数为\(2^64\),需要用\(unsigned~long~long\)存储,所以\(f\)数组也要用\(unsigned~long~long...

2018-09-09 06:51:00 253

转载 TYVJ1096 数字组合 - 背包DP[01背包]

TYVJ1096 数字组合传送门思路:\(N\)个数相当于\(N\)个物品,\(M\)相当于体积,\(f[i,j]\)表示前\(i\)个数凑起\(j\)体积的方案数是多少,然后跑一边01背包,最终答案是\(f[N,M]\)。注意边界条件:\(f[i,0]=1\),即凑成0的方案数为1,即一个也不选。AC Code:#include<cstdio>#includ...

2018-09-09 06:40:00 159

转载 POJ2676 Sudoku - DFS

POJ2676 Sudoku传送门题意:填充未完成的数独。。。(就这么简单。。。。思路:爆搜即可。可行性剪枝:用三个\(bool\)数组分别记录行、列、\(3*3\)的块中,\(9\)种数字的使用情况AC Code:#include<cstdio>#include<cstring>#include<algorithm>using ...

2018-09-08 23:34:00 119

转载 POJ1050 To the Max - 贪心[最大子矩阵和]

POJ1050 To the Max传送门题意:给定一个\(n*n\)的带权矩阵,求一个矩阵,使矩阵内权值之和最大,输出这个矩阵的权值和。$n\leq100 $思路:可以利用前缀和优化,然后\(O(n^4)\)枚举矩阵的左上角和右下角,求出最大二维前缀和。这样的枚举方案比较难以再次优化,我们考虑矩阵权值和的实质:等价于我们将矩阵每列的权值加起来,形成一个新数列,然后对这个数列...

2018-09-08 23:27:00 153

转载 P2568 GCD - 莫比乌斯反演 or 欧拉函数

P2568 GCDhttps://www.luogu.org/problemnew/show/P2568思路:1.题目要求考虑枚举的情况,问题转换为即然后就能用mobius做了。(别忘了开long longAC Code:#include<cstdio>#include<cstring>#include<algori...

2018-08-26 13:02:00 86

转载 P2261 [CQOI2007]余数求和 - 数论分块

P2261 [CQOI2007]余数求和https://www.luogu.org/problemnew/show/P2261思路:而的值是成块状分布的,被称为数论分块。以为例,令=1,则第一个块所代表的值为,则第一个块的右端,然后下一个块的左端,以此类推,最终这些块共有种取值,可以在的时间内算出。(证明什么的,太麻烦就不证了 。。。所以其中每一块相当于等差数列求值。...

2018-08-26 12:59:00 116

转载 P1088 火星人 - 全排列

传送门思路:模拟next_permutation函数(也可能这是next_permutation的实现)。①找到最后一个满足a[i]<a[i+1]的i,记为minpos=i;②找到最后一个满足a[j]>a[minpos]的j,记为maxpos=j;③把a[minpos]和a[maxpos]交换过来;④把a[minpos+1~n]的数从小到大排序;对...

2018-08-11 20:48:00 169

转载 P1198 [JSOI2008]最大数 - 线段树

传送门思路:操作数M<=200000,假设每次都是插入,那么得到的序列长度也不会超过200000,考虑对区间[1,m]建一棵线段树,然后就是板子题了。AC Code:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;con...

2018-08-11 20:20:00 122

转载 P1378 油滴扩展 - DFS

传送门思路:由于n<=6,我们可以枚举油滴放置顺序的排列,然后DFS。对于每个油滴,其能扩散的最小半径为min{到四个边界的距离,到已添加的点的扩散范围的最小距离}。最后注意四舍五入:printf("%d",(int)ans+0.5);(其中ans为double类型)。AC Code:#include<cstdio>#include<cstri...

2018-08-11 20:09:00 99

转载 qwq

1.debug时的测试代码提交时别忘了删掉。2.还有交OJ时别忘了删freopen。3.线段树别忘了build(1,1,n)。4.线段树建树&各种修改别忘了update。(刚发现我一直打的是updata......)5.并查集别忘了for(int i=1;i<=n;i++) fa[i]=i;6.定义了全局变量,就不要再在main函数中定义了(否则会导致调...

2018-08-06 15:34:00 67

转载 Contest Hunter 0501 货仓选址 - 中位数

传送门题意:给定一个有n个数的序列,找一个数,使得这个数与其他数的差的绝对值之和最小。思路:先对序列排序,假设该数为第p个数,则p左侧有p-1个数,右侧有n-p个数,若p向左移动1个单位,ans'=ans-(p-1)+(n-p);若p向右移动1个单位,ans''=ans-(n-p)+(p-1),因此要使影响最小,应使n-p=p-1,解得p=(n+1)/2。所以该数为这个有序序...

2018-08-05 14:17:00 53

转载 Codeforces 670C Cinema - 离散化

传送门思路:将所有出现过的语言(语音、字幕、人们知道的)离散化一下,然后模拟即可。AC Code:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=200000+100;struct node{ ...

2018-08-05 13:59:00 91

转载 CODEVS2594 解药还是毒药 - 状态压缩+BFS

传送门思路:我们用一个n位二进制数表示当前疾病的状态:0表示已经治愈,1表示未治愈。通过BFS遍历所有状态,对于每个状态x,我们枚举所有解药,若当前解药i能够治愈第j种疾病,就将x的第j位赋值为0;若当前解药i能够使人得第j种疾病,就将x的第j位赋值为1。注意,别忘了对状态判重!若第一次所有疾病都被治愈,即x=0时,此时的解为最优解。若BFS结束后x仍不为0,那么这个人就gg了。...

2018-08-05 13:45:00 93

转载 P1077 摆花 - 记忆化搜索

传送门思路:考虑暴搜,可以过20pt。然后加一些玄学的剪枝:1.可行性剪枝:当前摆的花数超过了m,return。2.可行性剪枝:当前第x种花摆i盆,剩下的花数为m-ud-i,若这些花摆满剩下的花还有剩余,return。(然而上面这些都不如一个记忆化。。。)然后记忆化一下就过了。AC Code:#include<cstdio>#inc...

2018-08-05 13:38:00 132

转载 【阅读笔记】0x04 二分

(一)二分答案必须具有单调性!!一。整数集合上的二分有两种不同的写法:当check(mid)成立时,若答案在右区间,采用第一种写法;反之,若答案在左区间,采用第二种写法。采用配套写法,可以防止死循或漏解。①1 while(l<r){2 int mid=(l+r+1)>>1;3 if(check(mid)) l=mid;...

2018-08-05 12:37:00 79

转载 【阅读笔记】0x01 位运算

1.补码表示: ~x=-1-x2.自然溢出:unsigned long long 自动对2^32取模,可以用来hash。3.基本位运算操作:左移:1<<n=2^nn<<1=2n,n<<2=4n,n<<3=8n。。。算术右移:n>>1=n/2 ,n>>4=n/16。。。算术右移=除以2向下取整 e....

2018-08-04 22:26:00 212

转载 Contest Hunter 0103 最短Hamilton路径 - 状压DP

传送门思路:1.状态:由于经过的点是一个集合,所以我们用dis[i][j]表示经过的点的状态为i,且当前位于点j时的最短Hamilton路径,其中i为一个二进制整数,用来存储经过的点的情况。为了方便位运算,我们的点的标号为0~n-1。2.边界:dis[1][0]表示当前在起点0的最短Hamilton路径。 最终答案在dis[(1<<n)-1][n-1],即0~n-...

2018-08-04 21:56:00 110

转载 CODEVS2744 养鱼喂妹子 - 二分+贪心

传送门思路:加上能够养活x个妹子,那么必定能养活<x个妹子,满足单调性,可以二分。我们二分能够养活的最大的妹子数量。对于当前已经符合check函数的mid,ans一定在[mid,r]的区间内,因此采用 mid=(l+r+1)>>1;if(check(mid)) l=mid;else r=mid-1; 最终答案为 l-1。关于check函数,我们用一种类似...

2018-08-04 21:11:00 64

转载 P2878 [USACO07JAN]保护花朵Protecting the Flowers - 贪心

传送门思路:对于“找出一种最优排列顺序,使答案最优”的贪心题目,我们可以用“邻项交换”的方法去找出并证明贪心策略。例如本题,我们假设有两头奶牛,其到达牛圈时间分别为Ti,Ti+1,每分钟吃掉的花朵数分别为Di,Di+1。有两种情况:① 排列顺序为i i+1 则两头牛吃掉的花朵数为 res1=2TiDi+1② 排列顺序为i+1 i 则两头牛吃掉的花朵数为 res...

2018-08-04 18:46:00 140

转载 P3093 [USACO13DEC]牛奶调度Milk Scheduling - 贪心+二叉堆

传送门思路:一个贪心策略就是“在不挤超过截至时间的奶牛的前提下,尽量挤奶量大的奶牛”。So我们将奶牛按截至日期从小到大排序,对于每个截至时间t,将所有截至时间为t的奶牛的奶量加入一个大根堆,只留下前t大的数,剩下的直接删去。由于priority_queue没有clear函数,所以我手写了一个堆。。。(请不要问我为什么不用小根堆,每次弹出前size()-t个数,但这样做会WA得很惨。。...

2018-08-04 18:26:00 127

转载 【笔记】模运算

//参考:模运算_百度百科一、概念:对于一个数n,给定一个数p,一定存在等式 n = k * p + r ,其中k、r是整数,且0 ≤ r <p。则称k为n除以p的商,r为n除以p的余数,即 n / p = k (/为整除),n % p = r(%、mod为模运算)。->注意:1、若a % p = b % p,则a与b同余,记为a ≡ b % p,或a ≡ b ( ...

2018-06-08 22:45:00 186

空空如也

空空如也

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

TA关注的人

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