自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 模板代码归类

数论求gcd&exgcd click here欧拉函数逆元(线性预处理 & 是否是质数*2)快速幂&快速乘菲波那切数列 & 杨辉三角图论Floyd & SpfaDijistra+优先队列优化连通块 & 并查集Tarjan缩点最小生成树数据结构线段树 & 树状数组队列 & 栈差分数组离...

2019-10-15 20:39:20 143

原创 背包问题 -- 断档背包

01背包的原型,不过每次询问都有一段区间不能选取Input第一行包括三个整数n, m, V其中m表示询问次数接下来n行包含两个整数w[i]、v[i],表示每个物品的价值和体积接下来m行包含两个整数l,r,表示第l个物品到第r个物品这次不能选乍一看这道题摸不着头脑,但是!它每次不能选取的物品都是一段区间,而我们01背包的处理本身就是从1到n的答案由此可得=>可以正序\倒叙分别...

2019-10-26 15:31:20 232

原创 悬线法--解决图内最大矩形类问题

有这样一类题,让你在一个区域范围内找到最大矩形(面积/边长)eg. 棋盘制作 巨大的牛棚 玉蟾宫这类问题都是在一个有限制条件的区域内取矩形通用“悬线法” 解决悬线法顾名思义,假设图中有一条平行于y轴的线,线上的某一段点能左右移动的范围+这段线的长度=一个矩阵的面积因此我们可以预处理出每个点左右移动的范围,最后合并范围相同的点寻找答案其中限制条件在每次状态转移是加上玉蟾宫代...

2019-10-26 08:05:22 283

原创 The Luckiest number -- 数论题

Description题意:给你一个数L,让你求出最小的一个数能被L整除,这个数满足每一位都是8。input811160outputCase 1: 1Case 2: 2Case 3: 0所用数论知识:欧拉同余定理欧拉函数质数筛法第一步列式 :(10 ^ x - 1) / 9是x个连续的8的表达代码如下#include <algorithm>#i...

2019-10-23 17:18:22 153

原创 线段树 & 树状数组

最基础的区间修改 & 查询#include <bits/stdc++.h>#define il inline#define re registerusing namespace std;typedef long long ll;const ll maxn = 100010;struct node { ll all;//区间求和 ll tag_ad...

2019-10-16 21:34:04 125

原创 并查集专题

普通并查集il void init() { for(re ll i = 1; i <= n; ++i) fa[i] = i;}il ll find(ll x) { return fa[x] == x?x : fa[x] = find(fa[x]);}il void merge(ll x, ll y) { ll fx = find(x), fy = find(y); i...

2019-10-16 17:22:59 73

原创 最小生成树

求最小生成树一般有 Prim 算法与 Kruskal 算法,其中,Prim 算法时间复杂度为 O(n*n),与图中边数无关,适合稠密图;Kruskal 算法时间复杂度 为O(ElogE),需要对图的边进行访问,适合稀疏图详细理解 => Click herePrim(加点法)#include <bits/stdc++.h>#define il inline #define...

2019-10-16 10:52:58 102

原创 Dijistra+优先队列优化

Dijistra普通板子是直接遍历与一个点相连的所有边,找到最小边权所在的边,再去更新利用优先队列的优化可以减少枚举的复杂度,每次直接取队首最小即可(注意要重定义优先顺序)不能处理带负边权的图 => 需用Spfa解决#include <bits/stdc++.h>#define il inline#define re registerusing namespace s...

2019-10-16 09:18:13 219

原创 快速幂 & 快速乘

两种算法通常搭配使用快速幂当指数为奇数时答案先乘上底数,指数再减一(化幂为乘)快速乘基本思想和快速幂相同,细节稍作修改(化乘为加)ll Mul(ll x, ll a) { ll res = 0;//由于是加法累计答案,初始化为0 while(a) { if(a & 1) res = (res + x) % mod; x = (x + x) % mod; a...

2019-10-16 08:46:03 153

原创 逆元的求法

线性预处理逆元用于组合数取模#include <bits/stdc++.h>using namespace std;const int maxn = 1010;const int inf = 0x3f3f3f3f;int n, m, p;int fac[maxn], inv[maxn];void init() { fac[0] = 1, inv[1] = inv[...

2019-10-15 21:46:05 123

原创 Floyd & Spfa

Floyd 适用于多源多点最短路时间复杂为 (n^3) … 慎用!!!k 层的循环写在外面#include <bits/stdc++.h>using namespace std;const int maxn = 1000;//会超1s最多跑1e8的数据const int inf = 0x3f3f3f3f;int n, m;int mp[maxn][maxn];vo...

2019-10-15 21:11:46 103

原创 GCD & exGCD

int gcd(int a, int b) { return b == 0? a : gcd(b, a%b);}int exgcd(int a, int b, int x, int y) {//a*x + b*y = gcd(a, b) if(b == 0) { x = 1; y = 0; return a; } int r = gcd(b, a%b, x, y); in...

2019-10-15 20:37:29 97

原创 P1338 末日的传说 -- 贪心数论

Description输出含有m个逆序对的字典序最小的序列Input只包含一行两个正整数,分别为N和M。Output输出一行,为世界末日的日期,每个数字之间用一个空格隔开。Solution要做这道题首先要知道一个有n个数的序列最多有(n-1)*n / 2个逆序对逆序对越多字典序就越大当前最小数若放在序列的第i位则产生(i-1)个逆序对由此可得贪心策略:在确保能满足m个逆序对的...

2019-10-13 19:17:01 116

原创 CF261A Maxim and Discounts -- 贪心

Description在商场中,有m种的折扣,当你买的东西到qi个的时候,可以使用该种类型的折扣,对要买的东西进行免费,东西可以免费最至多2个。免费的条件是,你所选择进行免费的东西,不能超过已经在购物车的中最便宜的商品。问买所有的物品,使用这些打折规则,使得付的钱最少。Solution读题可发现:每种优惠类型可以使用无数次 => 明示贪心(每次都用要求最少的那种)所选择进行免...

2019-10-11 08:06:13 162

原创 CF1228D Complete Tripartite

题意:有n个点,m条边将所有点分为三个点集,使每个点集内的点互不相交且与另两个点集中的每个点都有且仅有一条边相连如果可行,则输出每个点所属的点集编号(1, 2, 3)反之输出-1ExampleInput6 111 21 31 41 51 62 42 52 63 43 53 6Output1 2 2 3 3 3Input4 61 21 31 42 ...

2019-10-07 21:40:19 164

原创 CF1229A Marcin and Training Camp

题意有n个学生。每个学生有2个属性值 a_i 和 b_i。b_i 代表每个学生的能力值(越高越好).a_i 的定义如下:如果第i个学生知道第j个算法,则 a_i的二进制表示的第j位设为1,否则设为0.当且仅当学生x知道学生y不知道的某种算法时,学生x认为自己比学生y更强(因此,有可能两个学生都认为自己比对方更强)。如果一个小组中没有一个学生认为自己比其他所有人都强,那么这个小组的人才能合作。...

2019-10-07 19:27:52 208

原创 [BZOJ]1071 组队(SCOI2007) -- 尺取法

DescriptionNBA每年都有球员选秀环节。通常用速度和身高两项数据来衡量一个篮球运动员的基本素质。假如一支球队里速度最慢的球员速度为minV,身高最矮的球员高度为minH,那么这支球队的所有队员都应该满足: A * ( height – minH ) + B * ( speed – minV ) <= C 其中A和B,C为给定的经验值。这个式子很容易理解,如果一个球队的球员速度和身...

2019-10-07 11:02:44 165

原创 CF1154F Shovels Shop -- DP(背包)

Description商店里有 nn 双鞋,每双鞋都有一个价格。你要买其中的严格 k 双。每双鞋只能被买一次。你每次购买可以挑选剩余鞋中的任意一个子集来购买集合中所有的鞋。有 m 种套餐,第 ii 种套餐代表如果一次性购买xi 双鞋则其中最便宜的 yi双免费。这 m 种套餐每种都可以用任意次。现在请求出买严格 k 双鞋的最小花费。Input第一行是三个整数 n,m,k一行 n 个整...

2019-09-26 19:29:02 142

原创 [HNOI2008]越狱 -- 组合数学(我学的很弱的部分)

题目描述监狱有连续编号为 1…N 的 N 个房间,每个房间关押一个犯人,有 M 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。输入格式输入两个整数 M,N输出格式可能越狱的状态数,模 100003 取余一看就是组合数学听说要用逆向思维#include <bits/stdc++.h>#define re...

2019-09-21 08:15:24 108

原创 P1908 逆序对 -- 离散化

题目描述猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。Update:数据已加强。输入格式第一...

2019-08-07 10:01:47 160

原创 P1582 倒水 -- 一道懂了就很简单的题(滑稽)

题目描述一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水。接着CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子。每次他选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒进另一个里,然后把空瓶丢弃。(不能丢弃有水的瓶子)显然在某些情况下CC无法达到目标,比如N=3,K=1。此时CC会重新买一些新的瓶子(新瓶子容量无限,开始时有1升水),以到达目标。现在CC想知道,最少...

2019-08-05 16:20:36 225

原创 NOIP/P1080 国王游戏 -- 贪心+高精度

题目描述恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获得特别多...

2019-08-02 15:54:39 234

原创 P2587 [ZJOI2008]泡泡堂 -- 贪心

题目描述第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡堂。每一场比赛前,对阵双方的教练向组委会提交一份参赛选手的名单,决定了选手上场的顺序,一经确定,不得修改。比赛中,双方的一号选手,二号选手……,n号选手捉对厮杀,共进行n场比赛。每胜一场比赛得2分,平一场得1分,输一场不得分。最终将双方...

2019-08-01 11:52:14 87

原创 单词接龙--DFS

题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beas和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。输入格式输入的第一行为一个单独的...

2019-08-01 11:39:41 246

原创 poj-2155 matrix :二维树状数组

前情提要:原题是英文题面,我直接在某谷上找翻译,由于过于信任某谷 ,拿着错误题面干瞪眼好久…题面:有一个矩阵,里面所有数字都是0,有两种操作c操作,把一个矩形里的数字都取非q操作,展示某个点的值。思路:取非/异或等操作都有一个特性–只有奇数次操作才有用所以只需存有几次操作就行用树状数组存次数最后只要注意统计答案时的query就行(容斥原理)#include<cst...

2019-07-10 16:50:26 131

原创 依赖背包 -- The more the better(越多越好)

题面ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物。但由于地理位置原因,有些城堡不能直接攻克,要攻克这些城堡必须先攻克其他某一个特定的城堡。你能帮ACboy算出要获得尽量多的宝物应该攻克哪M个城堡吗?Input第一行包括2个整数,N,M.(1 &lt;= M &lt;= N &lt;= 200);在接下...

2019-03-16 11:22:06 212

原创 计蒜客--肥肥鼠吃奶酪( FatMouse and Cheese)

简化版题目有一个n * n的网格,每个洞里藏有0~ 100块奶酪;仓鼠从(0,0)开始走,由于一只猫的存在,所以仓鼠每次只能水平或垂直走1~k步;由于吃了奶酪仓鼠会变胖,所以每一次走到的洞里的奶酪都要比上一次多;求仓鼠最多能吃多少块奶酪。思路:首先看了题目就能感受到dfs的召唤!然后由于每次新的坐标里奶酪要增加,所以肯定是无环的每走一步就要转移一次状态(dp)最后组合得到做法:记忆化...

2019-02-11 11:03:12 691

原创 CF294B Shaass and Bookshelf

上题面Shaass拥有n本书。他想为他的所有书制作一个书架,并想让书架的长宽尽量小。第i本书的厚度是t[i],且这本书的纸张宽度是w[i]。书的厚度是1或2,所有书都有同样的高度(即书架的高是均匀的)。Shaass以以下的方式摆放这些书籍。1.他选择了一些书并竖直摆放它们。2.他将剩余的书籍水平纺织于竖直的书上面。 水平放置的书的宽度和不能多于竖直放置的书的总厚度。图中描绘了书籍的样本排...

2019-01-05 11:14:24 374

原创 CCF-NOIP-2018 提高组(复赛)模拟试题 -- 长沙一中day6t2

求和题目描述不好贴上来,就免了思路 =&amp;amp;gt;原数组:a1, a2, a3, a4, a5…第一次操作后数组为:a1, a1+a2, a1+a2+a3, a1+a2+a3+a4 …第二次操作后数组为:a1, a1 * 2+a2, a1 * 3+a2 * 2+a3, a1 * 4+a2 * 3+a3 * 2+a4 …第三次操作后数组为:a1,a1 * 3+a2, a1 * ...

2018-11-21 16:38:20 669

原创 传纸条--一道不简单のdp题

洛谷-- P1006 传纸条题目描述小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。从小渊传到小轩的纸条只可以向...

2018-09-26 09:32:09 156

原创 YCOJ 赛马--优化

这是题目 问题描述赛马场有 n 匹马,编号分别为 1,2,⋯,n。进行 mm 次淘汰赛,决出他们当中速度最快的一匹马。每次淘汰赛所有编号在区间 [L,R] 并且没有被淘汰的马参加比赛,其中编号为 p 的马获胜,其他的马都被淘汰。 m 次淘汰赛之后,只有一匹马未被淘汰。求所有被淘汰的每一匹马是被哪一匹马淘汰的。输入格式第一行包含两个整数 n,m 。 接下来 mm 行每行包含三个整数 L...

2018-08-28 15:33:35 308

原创 YCOJ 会议安排

会议安排 这道题很神奇,正解算法:贪心;

2018-08-28 15:08:41 460

空空如也

空空如也

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

TA关注的人

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