自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CodeForces - 1253D Harmonious Graph (并查集)

分析:将每一个连通块的所有点都指向该连通图的最大点。从1点开始遍历,假设fa[1] = x;那么从2~(x-1)的所有点的根结点都应该指向x(同属于一个连通块)。如果此时有一个点的根结点是y,不是x,那么就需要添加一条边将这两个连通块连起来了。这时候从2开始到max(x,y),根结点一定都是指向max(x,y),所以x的值要选择大的,避免两个连通块有重复的。之后重复进行该种操作即可统计出最后的答案...

2019-11-21 13:02:22 302

原创 CodeForces - 25D Roads not only in Berland (并查集)

分析:利用并查集处理每一条边上两点的关系。假设两个点已直接或间接可互达,在此之外又连有额外的边,那么该条边应该被重建(集合合并问题)。#include<bits/stdc++.h>using namespace std;const int N = 1e3 + 5;typedef pair<int, int> P;int fa[N], Rank[N];int ...

2019-11-19 13:17:06 215

原创 CodeForces - 25C Roads in Berland (Floyd + 插点)

分析:对于每次新建的一条路径,假设该路径对原图的最短路没有影响,则继承上次的答案,否则先更新(u,v)的最短路,再对点对(u,v)分别插点更新全图,再计算结果

2019-11-19 13:05:56 271

原创 HDU 3631 Shortest Path (Floyd + 插点法)

题意:给你n个点m条边(单向边)和q次操作,初始时所有点都是没有标记的,有两种操作: 1. 0 x:将x标记,如果已近标记过了就输出 “ERROR! At point x” 2. 1 u v :询问从u到v的最短路,并且要求都是被标记过得点,否则输出 “ERROR! At path x to y” ,如果到不了就输出 “No such path” ,有就输出最短路径大小分析...

2019-10-11 15:44:04 238

原创 POJ Cow Marathon(树的直径)

/*问题:求树的直径方法:树形DP*/#include<cstdio>#include<algorithm>using namespace std;const int N = 5e4 + 5;struct edge { int to, nex, wi;} es[N << 1];bool vis[N];int head[N], di...

2019-09-30 18:33:19 160

原创 Codeforces Round #580 (Div. 2) (思维+Floyd判最小环)

题意:给你一个长度为n的序列,看成是图上的n个结点,如果结点i,j连通当且仅当ai & aj != 0,问形成的图是否成环,且最小的环的大小是多少?思路:我们考虑最大长度不构成环的n,1 1 2 2 4 4 8 8 ...2^63-1 2^63-1,发现n最大是128(前提是序列中的数都不为0),说明超过128一定存在一个环,且环的大小为3.n<=128时,建图跑Floyd求最小...

2019-09-30 10:36:31 171

原创 Educational Codeforces Round 73 (Rated for Div. 2) C. Perfect Team

题意:一个三元组至少包含一个a,一个b,现给你a,b,c的个数,问最多能组成几个三元组?思路:从贪心的角度看,三元组<a,b,c>是最优的,当a-min(a,b,c)==0 || b-min(a,b,c)==0,则答案是min(a,b)对剩下的a,b,我假设它们能组成的三元组个数为x0,则可以得到三个不等式 1) a-x0>=0 2)b-x0>=0 3)a+b-...

2019-09-27 20:07:39 180

原创 HDU Saving James Bond (几何+最短路)

思路:先建双向边:鳄鱼与鳄鱼之间(若距离<=d),圆心与鳄鱼之间(距离-7.5<=d),汇点(n+1)与鳄鱼之间建边(从鳄鱼的坐标能到边界)跑0~n+1的最短路,因为本题卡精度!!! 所以abs(a-b)<=eps;判相等#include<cstdio>#include<vector>#include<queue>#incl...

2019-09-27 18:22:04 150

原创 HDU 2066 一个人的旅行(最短路)

思路:建立超级源点0,向每个相邻的城市建一条边权为0的边,跑最短路。注意,数据中有存在自环的情况,特判一下#include<cstdio>#include<queue>#include<algorithm>using namespace std;const int N = 1e3 + 5;const int Inf = 1e9;typedef ...

2019-09-27 11:32:56 162

原创 HDU 1548 A strange lift(最短路)

思路:对两个可互相到达的楼层建边,跑最短路#include<cstdio>#include<queue>#include<algorithm>using namespace std;const int N=2e2+5;const int Inf=1e9;typedef pair<int,int> P;vector<P>...

2019-09-27 11:06:50 134

原创 HDU 2874 Connections between cities(LCA + 并查集)

题意:n个点m条边,构成的图无环且不一定是一个连通图,q次询问两点间的最短距离思路:因为给的图其实是一棵树,所以本质上是LCA,套用模板预处理点与点之间的父子关系。将属于同一棵树内的点并到一个点集里,在判断两点的最短路径前先判两点是否在同一点集里。#include<cstdio>#include<algorithm>using namespace std;c...

2019-09-26 14:35:59 211

原创 HDU 4996 GGS-DDU(最小树形图)

思路;首先,我们可以想到可以把每门课程的每个等级都看成一个点,然后我们可以知道对于同一门课程,高等级向低等级走花费为0.因此我们可以直接用每个课程每个等级建图,然后将每门课程的高等级向低等级连一条权值为0的边.对于辅导班,我们可以直接连接对应的课程和等级...那么对于虚根呢..其实我们很容易想到.虚根应该与每门课程等级为0的点相连.权值直接设计为0即可#include<iost...

2019-09-25 14:01:19 243

原创 HDU 2121 Ice_cream’s world II(最小树形图+不定根)

思路:先制造一个虚拟结点:它向所有结点连一条边,权值要大于原图中所有权值的和,以它为根跑最小树形图,如果ans >= 2 * sum,那么说明从虚拟结点连出去两条以上的边,即原图不连通,反之原图必联通,且权值和为ans - sum。根节点就是树形图上虚拟节点的边指向的那个结点#include<iostream>#include<cstdio>#include...

2019-09-25 14:00:09 164

原创 HDU 1213 How Many Tables (并查集)

基础并查集#include<iostream>#include<cstdio>#include<set>using namespace std;const int N=1e3+5;int fa[N],n,k;int find(int x){ return fa[x]==x?x:fa[x]=find(fa[x]);}void Merg...

2019-09-25 13:44:01 201

原创 Educational Codeforces Round 65 (Rated for Div. 2)

A. Telephone Number思路:字符串长度小于11或长度为11时首位不为8或长度>11且第一个8的位置不<=n-11的情况都为No#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 3e5 + 5;int main() { ios::...

2019-09-22 18:54:03 127

原创 ACM-ICPC 2016 Qingdao Preliminary Contest

A. I Count Two Three题意:找出最小的不小于n的可分解为2^a3^b5^c7^d的形式的数思路:考虑到n的范围不大,且2/3/5/7的指数也不大,可以直接预处理出答案,然后二分查找#include<cstdio>#include<algorithm>using namespace std;const long long N = 1e9...

2019-09-22 16:08:40 225

原创 Codeforces Round #553 (Div. 2)

A. Maxim and Biology#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int route[26][26];void solve() { for(int u = 0; u &lt...

2019-09-21 09:50:10 148

原创 Codeforces Round #579 (Div. 3)

A. Circle of Students题意:给你一个长度为n的序列(成环),问该序列是否满足从某一位置开始顺时针或逆时针走是有序递增的思路:找到1的下标,分别判从1的位置开始顺时针走或逆时针走,能否走到n#include<bits/stdc++.h>using namespace std;#define inc(i,x,n) for(register int i=...

2019-09-20 17:43:15 118

原创 Codeforces Round #578 (Div. 2)

A. Hotelier模拟#include<cstdio>#include<cstring>#include<set>#include<algorithm>using namespace std;const int N=1e6+5;char str[N];set<int> s;int main(){ in...

2019-09-20 17:42:47 110

原创 Uva1608 Non-boring sequences (分治)

题面思路:首先一个序列中至少存在一个只出现一次的数,那么这个序列才有可能是不无聊的序列。如果找到一个只出现一次的元素A[P],那么只需检查A[1...p-1]和A[p+1...n]的元素,因为只要是跨越A[P]的连续序列都是不无聊的。那么怎么找A[P]?从左右往中间找!最坏的情况也是A[P]在序列中间,若从左往右找或从右往左找最坏的情况都是在最右或是最左。那么怎么判断一个连续序列中是否存...

2019-06-04 14:48:02 187

原创 Codeforces Round #552 (Div. 3)

A. Restoring Three Numbers题意:给出4个数,它们分别是 a+b,a+c,b+c,a+b+c,求a,b,c的值思路:排序,前三个数两两相加减去第四个数可依次求得a,b,c的值代码:#include<bits/stdc++.h>using namespace std;const int N=200;int main(){ int ...

2019-05-27 22:09:55 173

原创 DP基础练习1

题面:有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?Input输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。Output对于每个测试实例,请输出不同走法的数量Sample Input223Sample Output12...

2019-05-23 21:36:31 404

原创 HDU 4169 Wealthy Family (树形DP)

题面代码:#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>#include<vector>#include<queue>#include<stack>#in...

2019-05-23 12:27:09 188

原创 HDU 1516 The more, The Better (树形DP)

题面题意:有n个城堡形成一棵树,如果要攻克某个节点必须要先攻克其父节点。每个节点有i个宝物,最多能攻克m个城堡。问攻克哪些城堡能获得最多的宝物数量。思路:首先本题有两个限制:1.必须先攻打父节点然后才能攻打子节点2.最多只能攻克m个城堡攻占城堡的顺序是自上而下的,但我们可以从叶子节点自下而上不断更新节点的最优值求子树的最优解,最终得到根的最优解。#include&lt...

2019-05-23 11:13:11 172

原创 HDU 1520 Anniversary party (树形DP)

题面题意:一个派对里有n个人,n个人之间有着一张上下级关系图,派对要求上级和下级不能同时出现,而每个人都有一个rating值,要求选择哪些人到场能使rating值之和最大思路:1.每个人有两种状态-出席或不出席2.上级出席那么其直接对应的下级不能出席,下级出席则其直接对应的上级不能出席代码:#include<iostream>#include<c...

2019-05-22 22:06:22 119

原创 HDU 1054 Strategic Game (树形DP)

题面题意:在一棵树中,每个节点能监管连接自身的一条边,问最小选取几个节点能监管树中所有的边思路:1.一个节点可分为两种状态-选取或不选取2.若当前结点选取了,那么子节点可以选择不选取;若当前结点未选取,那么子节点一定要选取;代码:#include<iostream>#include<cstring>#include<cstdio>...

2019-05-22 21:51:25 140

原创 HDU-6208 The Dominator of Strings(AC自动机)

题面题意:给出n个字符串,问这n个串中是否存在一个字符串满足其他n-1个字符串是它的子串思路:1.满足条件的串一定是n个串中长度最长的2.多个模式串T是否是主串S的子串(多模式串匹配),而AC自动机就是用来处理多模式串的问题代码:#include<stdio.h>#include<string.h>#define MAX 100005int ...

2019-05-08 22:06:07 134

原创 HDU-6216 A Cubic number and A Cubic Number (数学)

题面思路:1.p=x^3-y^32.p=(x-y)(x^2+xy+y^2)3.p是素数,因子只有1和自身,而(x^2+xy+y^2)>14.(x-y)==1 , x=y+15. p=3*y*y+3*y+16.计算i~1e6 之间 A[i]=3*i*i+3*i+17.二分查找代码:#include<iostream>#include&...

2019-05-08 21:55:17 194

原创 Anniversary (DFS)

Nahid Khaleh decides to invite the kids of the "Shahr-e Ghashang" to her wedding anniversary. She wants to prepare a square-shaped chocolate cake with known size. She asks each invited person to dete...

2019-04-18 21:34:09 224

原创 HDU 1885 Key Task

Problem DescriptionThe Czech Technical University is rather old — you already know that it celebrates 300 years of its existence in 2007. Some of the university buildings are old as well. And the na...

2019-04-10 20:26:53 173

原创 PAT L3-008 喊山 (30 分)

喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newsshow-8018.html)...

2019-03-28 21:59:54 315

原创 PAT L2-020 功夫传人 (25 分)

一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”。这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个人只有1位师傅(除了祖师爷没有师傅);每位师傅可以带很...

2019-03-23 20:22:44 208 3

原创 PAT L2-021 点赞狂魔 (25 分)

微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。输入格式:输入在第一行给出一个正整数...

2019-03-23 20:18:31 163

原创 PAT L2-019 悄悄关注 (25 分)

新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。输入格式:输入首先在第一行给出某用户的关注列表,格式如下:人数N 用户1 用户2 …… 用户N其中N是不超过5000的正整数,每个用户i(i=1, ...,...

2019-03-23 20:16:15 253

原创 PAT L2-016 愿天下有情人都是失散多年的兄妹 (25 分)

呵呵。大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、父母、祖父母、曾祖父母、高祖父母)则不可通婚。本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚?输入格式:输入第一行给出一个正整数N(2≤N≤10​4​​),随后N行,每行按以下格式给出一个人的信息:本人ID 性别 父亲ID 母亲ID其中ID是5位数字,每人不同;性别M代表男性、F代表女...

2019-03-22 20:48:19 250

原创 PAT L2-015 互评成绩 (25 分)

学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。输入格式:输入第一行给出3个正整数N(3<N≤10​4​​,学生总数)、k(3≤k≤10,每份作业的评审数)、M(≤20,需要输出的学生数)。随后N行,每行给出一份作业得...

2019-03-22 20:42:38 134

原创 PAT L2-013 红色警报 (25 分)

战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出两个整数N(0<N≤500)和M(≤5000),分别为城市个数(于是默认城市从0到N-1编号)和连接两城市的...

2019-03-22 20:38:31 127

原创 PAT L2-010 排座位 (25 分)

布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(≤100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后M行,每行给出一对宾客之间的关系,格式为:宾客1 宾客2...

2019-03-22 20:27:33 133

原创 PAT L2-009 抢红包 (25 分)

没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(≤10​4​​),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:KN​1​​P​1​​⋯N​K​​P​K​​其中K(0≤K≤20)是发出去的红包个数,N​i​​是抢到红包的人的编号,P​...

2019-03-22 20:23:48 191

原创 PAT L2-008 最长对称子串 (25 分)

对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。输入样例:Is PAT&TAP symmetric?输出样例:11/...

2019-03-22 20:19:37 540

空空如也

空空如也

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

TA关注的人

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