自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (dp)洛谷P1095守望者的逃离

洛谷P1095守望者的逃离思路:dp[i]表示在第i秒最远走多远,跑步和闪烁分开进行。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define cl(x,y) memset(x,y,sizeof(x))#define ct cerr<<"Time ...

2020-01-31 20:38:28 144

原创 洛谷P1201[USACO1.1]贪婪的送礼者Greedy Gift Givers

洛谷P1201[USACO1.1]贪婪的送礼者Greedy Gift Givers思路:结构体存名字去判断和map映射都可以。代码(结构体):#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define cl(x,y) memset(x,y,sizeof(x))#def...

2020-01-31 19:57:32 249

原创 (dp)洛谷P1736创意吃鱼法

洛谷P1736创意吃鱼法思路:他要求一个矩阵只能并且必须在对角线上有1才能被吃掉。如下:1 0 00 1 00 0 1我们用dp[i][j]表示这点满足矩阵的最大值。那么看下图:1 0 0 00 1 0 10 0 1 00 0 0 1可以看出dp[3][3]=3,那怎么求dp[4][4]=2。他显然不是dp[3][3]+1=4≠2。我们观察可以发现,他是被(2,4)的...

2020-01-31 18:36:21 172

原创 Educational Codeforces Round 81 (Rated for Div. 2)(B,C,D)

B.Infinite Prefixes题意&思路给一个长为n的01串(s),可以通过链接他使它变成t=sss……,平衡值为串中0的个数减去1的个数。给你一个要求的平衡值x,问满足的串有几个(空串也算)。记q=cnt0,s-cnt1,s,ai为前i个子串的平衡值,t由k个完整的s串构成,我们就可以得到kq+ai=x。我们要求的就是k的非负整数解,就是k=(x-ai)/q。考虑特殊情况...

2020-01-31 17:25:34 189

原创 (bfs)洛谷P1363幻象迷宫

洛谷P1363幻象迷宫思路:刚开始,我的思路是能够再次找到S点,就能无限走下去。然而看反例:5 5######...##.#S##...######很显然,这不能走出去。5 5#####..#..#S#.#..#..#####与第一个样例相似。那么又想到走到的不是本来的S,而是其他图的S。然后就想是不是两层就可以了,他本身是在第一层,然后到边上后就到了第二层...

2020-01-30 22:34:59 222

原创 洛谷P1203[USACO1.1]坏掉的项链Broken Necklace

洛谷P1203[USACO1.1]坏掉的项链Broken Necklace思路:看起来很简单,枚举每个点两边暴力跑。但是一直wa3和7。因为需要考虑左右第一个遇到的珠子是w的情况。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define cl(x) memset...

2020-01-30 16:12:00 347

原创 洛谷P1478陶陶摘苹果(升级版)

洛谷P1478陶陶摘苹果(升级版)思路:先写点水题恢复下。判断后排序。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define cl(x) memset(x,0,sizeof(x))#define ct cerr<<"Time elapsed:"...

2020-01-30 15:43:27 259

原创 (字符串hash)AcWing841 字符串哈希

AcWing841 字符串哈希代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define ull unsigned long long#define cl(x) memset(x,0,sizeof(x))const int N=1e5+3;const int P...

2020-01-28 21:18:17 190

原创 (hash)ACwing840模拟散列表

ACwing840模拟散列表拉链法:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define cl(x) memset(x,0,sizeof(x))const int N=1e5+3;const int mod=1e7+9;const int maxn=0x3f3f...

2020-01-28 16:36:20 146

原创 (背包)AtCoder153E-Crested Ibis vs Monster

AtCoder153E-Crested Ibis vs Monster思路:两天没写代码真的状态好差。完全背包。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define cl(x) memset(x,0,sizeof(x))const int N=1e5+1...

2020-01-27 20:21:23 442

原创 (最小生成树)AcWing346 走廊泼水节

AcWing346 走廊泼水节思路:他要求最小生成树不能改变,我们想一下kurskal的过程,是选两个点,判断他是否在一个并查集中,不是的话就合并,加权值。那么如果加上其他的边但依旧要让这两个点合并,我们可以看出加入的边权值要大于这条边权值w,所以最小的权值为w+1。我们又可以考虑到这两个点的子树分别有x和y个结点,那么加边的时候我们可以加x*y-1条边。所以我们可以得到结果为 ∑(x*y-...

2020-01-24 19:08:45 516

原创 (强连通分量)洛谷P2341【模板】强连通分量 / [HAOI2006]受欢迎的牛

洛谷P2341【模板】强连通分量 / [HAOI2006]受欢迎的牛思路:如题目描述,模板题。花了两个小时看了tarjan,然后看了题目。what?excuse me?为啥跟我看到的东西感觉不太一样?然后看了大佬的题解,what?为啥叫容易看出,为啥我看不出?啥叫强连通分量呢,简而言之,一个图的子图中任意两点可以相互到达。(就是构成了一个环)。下面说tarjan算法。其中两个重要的数组...

2020-01-24 17:05:11 656 2

原创 (最小生成树)洛谷P2330 [SCOI2005]繁忙的都市

洛谷P2330 [SCOI2005]繁忙的都市思路:模板题。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define cl(x) memset(x,0,sizeof(x))const int N=1e6+10;const int mod=1e7+9;con...

2020-01-24 11:36:58 4962

原创 (最小生成树)HDU1875畅通工程再续

HDU1875畅通工程再续思路:模板题。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define cl(x) memset(x,0,sizeof(x))const int N=1e5+10;const int mod=1e7+9;const int max...

2020-01-24 10:59:08 440

原创 (最小生成树)AcWing1146新的开始

AcWing1146新的开始思路:本来是跑一边最小生成树再加上发电站的最小值,但是wa了。后来可以想到如果发电站的值很小,建设电网的费用很大,就可以建多个发电站。所以我们将图转化成n+1个点的图,设一个虚拟的点,他到其他点的权值为建发电站的费用。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define...

2020-01-24 00:32:55 2932

原创 (最小生成树)HDU1233还是畅通工程

HDU1233还是畅通工程思路:模板题。可是我竟然把&&打错成&,wa了n次!!!#代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long long#define cl(x) memset(x,0,sizeof(x))const int N=1e6+10;...

2020-01-23 20:39:20 410

原创 (带权并查集)洛谷P1525关押罪犯

洛谷P1525关押罪犯思路:犯人之间的关系我们可以用一个数来表示,0表示在一个监狱里,1表示不在一个监狱里。为了使最大值尽可能小,我们先从大到小排序。然后并查集,依次判断两个人的父节点是否相同(存在关系),如果不存在就合并;存在就判断两个人是否在同一个监狱,在就输出两个人的矛盾值。代码:#include<bits/stdc++.h>#define pii pair<in...

2020-01-23 20:06:17 307

原创 (最小生成树)POJ1258Agri-Net

POJ1258Agri-Net题意&思路:给n个农场之间的距离,要铺设光缆使之两两连通,问最小铺设光缆的距离。模板题。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<string.h>#inc...

2020-01-23 19:14:06 320

原创 (最小生成树)POJ1751Highways

POJ1751Highways题意&思路:给你n个城市的坐标,m组已经连通的城市,使两两城市连通的需要修的道路的总和最小,输出修建公路的两城市的坐标。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<st...

2020-01-23 19:03:42 230

原创 (最小生成树)POJ2349Arctic Network

POJ2349Arctic Network题意&思路:给你p个点和s-1条免费边,问使两两点连通的最小的最长边。求第p-s条最长边,kruskal。用%lf记得交c++。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#in...

2020-01-23 17:45:24 200

原创 (最小生成树)POJ1789Truck History

POJ1789Truck History题意&思路:给你n个长度为7的字符串,每两个字符串之间的权值为相同位置字符不同的个数。每个字符串都由另一个字符串变化而来,变化的质量为1/权值和。求最大质量。其实就是求最小权值和。模板题。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>...

2020-01-23 01:55:05 146

原创 (最小生成树)POJ2421Constructing Roads

POJ2421Constructing Roads题意&思路:何以解忧,唯有做题。为什么总是想复杂。给n个村庄和村庄之间的距离,有些村庄已经存在一条路。问使村庄之间两两连通最少需要修路的长度。并查集和最小生成树,模板题。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#in...

2020-01-23 01:34:28 191

原创 (最小生成树)POJ2031Building a Space Station

POJ2031Building a Space Station题意&思路:给你n个球的球心坐标(x,y,z)和半径r,如果两个球相交则视为连通。问使所有球两两连通(表面接触)的最短道路。模板题。注意点就是两两连通就是两个球的距离设为0,以及提交时用C++才能交%lf。代码:#include<iostream>#include<stdio.h>#incl...

2020-01-22 22:29:45 136

原创 (最小生成树)POJ1287Networking

POJ1287Networking题意&思路:给一个区域内p个点和r个电缆,问使两两连通的最小长度。模板题。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<string.h>#include&...

2020-01-22 22:01:25 152

原创 (最小生成树)POJ1251Jungle Roads

POJ1251Jungle Roads题意&思路:一个旅游景点需要造缆车,使任意两个景点都可以相互到达,问最小花费。最小生成树(kurskal)模板题,只需要把字母改成整型就好了。代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm&gt...

2020-01-22 21:48:54 151

原创 (BFS+状压)AcWing1131拯救大兵瑞恩

AcWing1131拯救大兵瑞恩思路:先想到是用一个结构体存一个格子四周的情况和钥匙的情况,然后每次遇到门的时候要把自己有的钥匙和需要的比较。但后来想到钥匙最多只有十个,所以可以用状态压缩,每个点的钥匙和自己的钥匙可以用二进制数表示,拿钥匙就用按位或;遇到门就用按位与判断。然后我又用结构体记录一个点四周是否有墙,结果愉快的MLE了。后来把数据自己测的时候发现跑不出结果。在后面的一个小时内,我...

2020-01-21 21:31:17 291 1

原创 (并查集)洛谷P1197 [JSOI2008]星球大战

P1197 [JSOI2008]星球大战思路:摧毁是这个题目的一个难点,如果是摧毁一个点就重新构图的话肯定会T。那么我们可以反着想,就是从最后的状态往前推,用并查集判断是否是连通块。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long longconst int N=1e6+10;...

2020-01-20 20:04:42 225

原创 (SPFA的SLF优化)AcWing342道路与航线

AcWing342道路与航线思路:看起来非常裸的spfa,然而精心构造的数据卡了。就用到spfa的SLF优化,我们之前的spfa都是用队列实现的,每个数据都放到队尾。现在我们用双端队列,如果当前点的权值少于我们当前队头点的权值的话,那么我们就将这个节点插入到队头,否则我们插入到队尾。代码:#include<bits/stdc++.h>#define pii pair<...

2020-01-20 18:02:50 370

原创 (dp) 牛客小白月赛21I I love you

牛客小白月赛21I I love you思路:dp。dp[i]=(dp[i]+(s==‘x’)*dp[i-1])%mod。x为当前位置上要求的字母。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long longconst int N=1e6+10;const int mod=2...

2020-01-19 08:33:33 283

原创 (贪心)洛谷P1233木棍加工

洛谷P1233木棍加工思路:排序,l,w按照从大到小排列。然后递归寻找。(据说也可以用dp做)。代码:#include<bits/stdc++.h>const int N=1e4+10;const int mod=1e7+9;const int maxn=0x3f3f3f3f;const int minn=0xc0c0c0c0;const int inf=999999...

2020-01-18 17:04:35 227

原创 (贪心)洛谷P1031均分纸牌

洛谷P1031均分纸牌思路:离散化没怎么学,题库a不动了,写点思维题放松下。求平均数,算差值。差值为0就不用动他,其他的转嫁给下一堆。代码:#include<bits/stdc++.h>const int N=1e4+10;const int mod=1e7+9;const int maxn=0x3f3f3f3f;const int minn=0xc0c0c0c0;...

2020-01-18 16:48:18 206

原创 (贪心+并查集)POJ1456 Supermarket

POJ1456 Supermarket题意&思路:给你n个商品的价值(pi)和保质期(必须在第di天之前卖掉)。一天只能卖一个商品,问可以获得的最大利润。首先是贪心,价值越大的物品越要尽可能的卖出去。就是按找商品的价值排序。然后售卖的时间可以用并查集来维护(大佬真的tql,并查集还可以这么用)。先开始给fa数组赋值-1,当fa[i]==-1的时候表示这一天还没有买过。fa[t]==...

2020-01-18 15:26:49 168

原创 (概率dp)洛谷P2095 [JLOI2013]卡牌游戏

洛谷P2095 [JLOI2013]卡牌游戏思路:dp果然是玄学。一开始想顺推,但是因为会有人出局,所以顺推会变得很复杂。看了大佬的题解,才发现逆推的妙处。用dp[i][j]表示i个人组成的环进行游戏,第j个人胜出的概率,那么dp[1][1]一定是1。我们可以想到dp[i][j]的状态肯定是由上一层的状态得出,就是i个人进行游戏后还剩下i-1个人,而i个人所得的概率可以由i-1的状态推出...

2020-01-18 14:49:41 285 1

原创 (带权并查集+dp)POJ1417 True Liars

POJ1417 True Liars题意&思路:一个写了三天的题。一个岛上存在p1个好人和p2个坏人。Akira可以询问n个问题,每个问题由两个编号x,y和一个字符串a(yes或者no)组成。好人会说实话,坏人会说假话。每次询问表示x如果想让你认为y是好人就会回答yes。问是否能够得到好人的编号。加权并查集+dp。加权并查集并不难想,我们不难发现回答yes的是同类,no的是异类。...

2020-01-17 23:29:43 197

原创 (带权并查集)POJ1182 食物链

POJ1182 食物链思路:因为题目给的相对关系,所以可以用带权并查集做。权值:0表示x和y是同类,1表示x吃y,2表示x被y吃。那么在路径压缩的时候,我们得到w[a->c]=(w[a->b]+w[b->c])%3。在区间合并的时候w[t1]=(-w[x]+w[y]+w-1)%3。在判断关系的时候比较w-1和(w[x]-w[y]+3)%3,+3是为了避免负数,w-1是因为...

2020-01-16 22:50:05 129

原创 (带权并查集)hihoCoder1515分数调查

hihoCoder1515分数调查思路:模板题。权值为子节点比父节点多的分数。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long longconst int N=1e5+10;const int mod=1e7+9;const int maxn=0x3f3f3f3f;con...

2020-01-16 20:51:59 204

原创 (带权并查集)HDU3038How Many Answers Are Wrong

HDU3038How Many Answers Are Wrong题意&思路:给一个区间长度n,和子区间个数m。区间[l,r]的和为v。如果一个子区间和与前面的子区间和冲突,及为错误,问错误的总数。我以前竟然学过带权并查集?第一道带权并查集的题,看着题解写的。好复杂的东西。带权并查集就是结点间有边权值的并查集。每个结点记录的是与根节点的权值,在路径压缩的之前,sum记录的是与其父...

2020-01-16 20:36:59 173

原创 (贪心)CF1136D Nastya Is Buying Lunch

CF1136D Nastya Is Buying Lunch题意&思路:有n个人排队,编号为a[i]的排在第i为,Nastya排在最后一位。给你一些可以交换的编号(x,y),当且仅当x排在y前面并且相邻的时候才可以交换位置。问Nastya最多向前移动多少位。真的好菜,刚开始还看错题了,以为不相邻也能交换,纠结了很长时间。之后知道是贪心,却只有一点模糊的思路,又纠结了几个小时。然后看了...

2020-01-13 21:03:25 221

原创 (状压dp)AcWing1243 糖果

AcWing1243 糖果思路:状压dp。每组糖果用二进制数表示,0表示有,1表示没。预处理一下。dp[j|a[i]]=min(dp[j|a[i]],dp[j]+a[i])。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long longconst int N=1e6+10;con...

2020-01-12 20:14:39 191

原创 (状压dp)洛谷P1879玉米田

洛谷P1879玉米田思路:第一次自己把状压dp写出来,有点激动。dp[i][j]表示在第i层的状态j。在预处理的时候判断下每层的合法情况。设第一层可选的状态都是1。代码:#include<bits/stdc++.h>#define pii pair<int,int>#define ll long longconst int N=1e6+10;const ...

2020-01-12 15:50:30 173

空空如也

空空如也

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

TA关注的人

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