摘要: 1.没有上司的舞会 某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请 阅读全文
posted @ 2019-07-19 21:20 Snow_in_winer 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入输出格式 输入格式: 第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树)。 接下来M行 阅读全文
posted @ 2019-07-19 15:32 Snow_in_winer 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目描述 如题,一开始有N个小根堆,每个堆包含且仅包含一个数。接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数在用一个堆内,则无视此操作) 操作2: 2 x 输出第x个数所在的堆最小数,并将其删除(若第x个数已经被删除, 阅读全文
posted @ 2019-07-19 14:56 Snow_in_winer 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 双指针就是有两个指针𝑎和𝑏。这个方法目的一般是为了统计这样的二元组的一些信息(比如数量、极值等) • 这样的二元组可能描述了一些其他东西,比如说一个闭合区间 • 如果分析题目性质可以发现,一个指针向一个方向动,另一个指针也只会单向移动,也就是所谓的“单调性”,那就可以用这个方法,移动指针的时间复 阅读全文
posted @ 2019-07-19 09:35 Snow_in_winer 阅读(454) 评论(0) 推荐(1) 编辑
摘要: 题目描述 有一个 1 ∗ n 的矩阵,有 n 个正整数。 现在给你一个可以盖住连续的 k 的数的木板。 一开始木板盖住了矩阵的第 1 ∼ k 个数,每次将木板向右移动一个单位,直到右端与第 n 个数重合。 每次移动前输出被覆盖住的最大的数是多少。 输入输出格式 输入格式: 第一行两个数,n,k,表示 阅读全文
posted @ 2019-07-19 09:29 Snow_in_winer 阅读(182) 评论(0) 推荐(0) 编辑
摘要: A.Equivalent+Prefixes 思路: 二分答案,然后运用单调栈求出右边第一个比它小的数,若对于每一个二分答案左边的每一个数右边第一个比它小的数位置必须相同。 1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 const int 阅读全文
posted @ 2019-07-18 19:24 Snow_in_winer 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题目描述 某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算 阅读全文
posted @ 2019-07-18 10:23 Snow_in_winer 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题目描述 wjyyy在玩跑跑卡丁车的时候,获得了一个飞碟解除器,这样他就可以免受飞碟的减速干扰了。飞碟解除器每秒末都会攻击一次飞碟,但每次只有p/q的概率成功攻击飞碟。当飞碟被成功攻击时,减速状态解除。如果攻击失败,飞碟会使wjyyy的平均速度变为前一秒的1/k倍。wjyyy一开始以v m/s的速度 阅读全文
posted @ 2019-07-17 22:01 Snow_in_winer 阅读(172) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std; const int maxn=100010; const int inf=0x3f3f3f3f; typedef pair PI; struct MCFC { struct edge { int to, next, cap, flow, cost; } e[maxn]; int head[m... 阅读全文
posted @ 2019-07-17 20:20 Snow_in_winer 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 1 priority_queue,vector >,greater >q; 2 int prime() { 3 ans = 0; 4 q.push(make_pair(0, 1)); 5 while (q.size()) { 6 int c = q.top().first, x = e[q.top().second].t; 7 ... 阅读全文
posted @ 2019-07-17 20:19 Snow_in_winer 阅读(173) 评论(0) 推荐(0) 编辑