
ACM-ICPC
ArkBagpipe
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[NWPU] 01-22 Coding Marathon
A.[BFS]Pushing Boxes, SWERC 1997, Uva589 题意:在一个给定的迷宫中,输入一个人和一个箱子的初始位置以及终点的位置,问能否使人将箱子推到终点,若能则输出人的全部路径。题解:迷宫中不仅需要考虑箱子能否行进到终点,还需考虑人能否走到推箱子的位置。因此首先需要对箱子BFS,在箱子走每一步的时候都对人进行第二个BFS判断能否走到推箱子的位置。存储路径的时候选用stri原创 2018-01-23 21:44:13 · 315 阅读 · 0 评论 -
Nordic Collegiate Programming Contest 2015
题目链接A. Adjoin the Networks给出若干棵树,将它们连成一整棵树,求新树直径的最小值。对于一棵直径为d的树,它对新树直径的贡献最多为(d+1)>>1。于是求出所有子树的直径并对贡献排序。注意连接的时候是在两棵树的某点之间连边,而不是把两个点直接合成一个。如果只有一棵子树,新树的直径就是它的直径。如果最大的两个贡献和第三大的不等,为了保证直径最...原创 2018-07-27 10:02:00 · 271 阅读 · 0 评论 -
HDU 6321 Dynamic Graph Matching & 6331 Walking Plan (DP)
hdu6321 对一个图进行加边或删边操作(n<=10),在每次操作后求图的匹配数为k的方案数,其中k=1,2,...n/2。由于点的数目很少,考虑状压dp,dp[k][i]表示第k次操作后在i状态下点集中最大匹配的方案数,显然对于x个点的状态匹配数最多是x/2个。考虑加边u-v的操作,如果对于一个状态pre,状态中没有u和v两个点,那么就可以从pre状态转移到now状态,其中now...原创 2018-08-02 11:13:35 · 291 阅读 · 0 评论 -
HDU 6326 Monster Hunter (贪心)
hdu6326 有一些怪物构成了树形结构,在打第i只怪的时候,会先扣ai点血量,再扣bi点血量。要求在打一只怪之前必须先打它父节点位置上的怪,问要使这个过程中的血量不会降低到0以下,初始的时候最少要有多少点血。考虑打怪的先后顺序,对于i,j两只怪物,如果先打i,这个过程中的最低血量就是A=min(-ai,-ai+bi-aj),反之如果先打j就是B=min(-aj,-aj+bj-ai)。显然如果...原创 2018-08-02 15:02:39 · 1170 阅读 · 0 评论 -
2018 CCPC 网络赛 补题
1001Buy and Resell 某种东西在不同的时间有不同的价格,允许在任意时刻买入,并在之后的任意时刻卖出,求所能获得的最大的收益。考虑如果是在第k天卖出的话,要使收益最大必然是在前面k-1天中空闲的时间里价格最低的一天买入的。如果某次买入的价格和前面某次交易的卖出价格相同的话,那么就将这两次交易合并成一次,因为题目有在收益最大的条件下交易次数最少的要求。把每一天拆成两个点, ...原创 2018-08-25 23:59:50 · 515 阅读 · 0 评论 -
2018 ICPC北京网络赛 C. Cheat (模拟)
题目链接恶心的大模拟……4个人打牌轮流出牌(当前轮次应出的牌按照A-K顺序循环),同时声明所出的牌,且这个声明可能为假,出牌后其他人可以选择质疑他的声明。质疑时,若当前声明为真,质疑者拿走桌面上所有牌,否则出牌者拿走桌面上所有牌。第一个出完手中所有牌的人赢。出牌的规则:玩家1:如果能放,放一张;否则放一张字典序最小的。玩家2:如果能放,全部放下;否则放一张字典序最小的。玩家...原创 2018-09-23 22:57:30 · 389 阅读 · 1 评论 -
2015 ICPC沈阳现场赛 F. Frogs (欧拉函数)
题目链接m个石头围成一圈,一群青蛙从0开始跳,第i个青蛙每步跳ai距离,求所有能被跳到的石头的编号之和。容易推出石头x被第i只青蛙跳到的充要条件是,显然这与下面的命题是等价的:石头x被跳到的充要条件是存在一个i,使得。gcd(x, m)显然是m的因数,那么我们就可以枚举m的因数。对于m的一个因数k,如果存在一个i使得k能被ai整除,则此时它产生的贡献就是:实际上上面也就是小...原创 2018-09-24 23:40:58 · 737 阅读 · 0 评论 -
国庆七天乐Day1 - 2015ICPC长春站 【8/13】
题目链接A - Too Rich有面值为1.5.10.20.50.100.200.500.1000.2000的钞票若干张,要求用尽可能多数目的钞票凑出p元。考虑先求出给出的所有金额之和sum,那么问题就等价于用尽可能少的钞票凑出sum-p元。如果每一种面值都能整除较小的那个面值,那么只要直接贪心即可。但此题由于50和500的存在不能直接贪心,例如:p = 600,手中有3张200和1张...原创 2018-10-02 10:13:35 · 330 阅读 · 0 评论 -
国庆七天乐Day2 - NAIPC 2016 【7/11】
题目链接B - Alternative Bracket Notation给出了一种表示括号匹配的方法,要求对于给定的括号序列求出长度最小的表达。通过观察这种方法可以发现,它的基本实现过程仍然是不断地把左括号扔进栈里,然后每次遇到右括号的时候取出来。一对括号在表达式中占的长度分为三部分,左右端点的数字长度以及2个字符的特殊字符。用la[i]和lb[i]表示第i个位置上的括号,它左端点...原创 2018-10-03 10:21:13 · 523 阅读 · 0 评论 -
2017-2018 ACM-ICPC, Asia Daejeon Regional Contest 【11/12】
题目链接A - Broadcast Stations给出一棵树,允许在某些点上添加权值,此时可以覆盖距这个点不超过这个权值的所有点。求要覆盖所有的点需要最少加的权值。做的时候不会……韩语的题解机翻过来理解了好长时间OOOrz读了题多半就是树形dp了。首先选取某个点作为根,然后如果在里面某些位置加权值,显然会向上和向下覆盖的。用dp[i][j]表示在以节点i为根的子树中加权值,最...原创 2018-10-14 14:36:43 · 969 阅读 · 2 评论 -
2017 CCPC 秦皇岛站现场赛 【7/13】
题目链接A - Balloon Robot如果机器人从x开始某队需要等待的时间是t,那么如果从x+1开始,需要等待的时间就是。由此我们可以先处理出机器人从1开始的等待时间,然后排序之后依次扫过去取结果的最小值,理论的复杂度为。但是发现,有很多点是一定不会成为最优解的。可以证明只有在p个队伍中出现过的点才有可能会成为最优解,这样总的复杂度就只有。#include <bits/...原创 2018-11-01 23:16:34 · 318 阅读 · 0 评论 -
SEERC2018 - Gym101964 【10/11】
题目链接A - Numbers不会。B - Broken Watch考虑固定1号针,枚举2号针,计算3号针放置的方案数。显然,3号针应在前面两个针的反向延长线围成的扇形区域内,这样可以放置的方案数就是种。此外当n为偶数且前两个针反向时,显然3号针可以放在剩余的任意位置上,即偶数的答案需要加上。枚举1号针的位置,答案要乘上。然后考虑针的顺序问题,三个长度都相同的时候除以,...原创 2018-11-13 23:18:01 · 1001 阅读 · 0 评论 -
Gym102012 - 2018徐州 - G - Rikka with Intersections of Paths (树上差分 + 组合数)
题目链接给出一棵树,然后在树上标记条路径,问有多少种方法在这条路径中选出条,使得这条路径至少有一个公共点。枚举每个作为路径交的点,假设经过某点的路径数为,其中有条路径的LCA为这个点,那么此处的计数就是。这相当于减去了经过这个点的父节点的路径在此处计数中的贡献。维护经过某点的路径数用树上差分,对于和之间的路径,。Time :1216ms#include <cst...原创 2018-12-02 13:06:26 · 1516 阅读 · 1 评论 -
German Collegiate Programming Contest 2018
题目链接B. Battle Royale从一个点绕过一个圆形区域到达另一个点,求最短的距离。这个距离分为三段,两个点到圆周的切线和一段圆弧。L1和L2在直角三角形中可以直接求出来,根据余弦定理可以求出大角和两边的较小的角,相减得到圆弧对应的圆心角,求出L3。#include<cstdio>#include<cstring>#include<c...原创 2018-07-21 11:32:20 · 581 阅读 · 0 评论 -
Benelux Algorithm Programming Contest 2014 Final
题目链接B. Button Bushing拿BFS直接干。#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<queue>#include<map>#include<vector>#include&原创 2018-07-14 17:27:30 · 254 阅读 · 0 评论 -
2018 Multi-University Training Contest 1
hdu6298 Maximum Multiple给出一个数n,求n的三个可重复的因数a、b、c,使得a+b+c=n且a*b*c的值最大。这题省赛选拔做过。。最多只有三组解,n/3.n/3.n/3,n/2.n/4.n/4,n/2.n/3.n/6。#include<cstdio>#include<cstring>#include<string>#...原创 2018-07-25 17:46:55 · 179 阅读 · 0 评论 -
2017-2018 ACM-ICPC, NEERC, Northern Subregional Contest
A. Auxiliary Project 题意:在LED灯中点亮0-9中的每个数字都需要相应数目的灯管,现在给定灯管数目,将点亮的数字相加,问这个总和最大是多少。 题解:这个就是完全背包。#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<cstdlib>#inc原创 2018-06-02 23:54:20 · 855 阅读 · 0 评论 -
[BFS]Abbott’s Revenge, World Finals 2000, Uva816
题意:有一个最多包含9*9个节点的迷宫。输入起点、离开起点时的朝向和终点,求一条从起点到终点的最短路。 这个迷宫的特殊之处在于:进入一个交叉点的方向不同,允许从这个交叉点出去的方向也不同。例如1 2 WLF NR ER表示对于点(1,2),当从W方向(即朝左)进入这个点时,只能向左拐或直行,从N方向和E方向进入这个点时只能向右拐。、题解:本题与一般的迷宫问题的不同之处在于需要输出路径以及限制了行走原创 2018-01-17 20:32:57 · 282 阅读 · 0 评论 -
[DFS]Ancient Messages, World Finals 2011, Uva1103
题意:识别六种象形文字。输入的图像为一个n*m的字符矩阵,每一个字符都为4个相邻像素的16进制表示(例如10011100对应9c)。转化为二进制后1代表黑点,0代表白点。输入的图像中有且仅有给定的六种文字,且一定和给定的文字拓扑等价(可以随意拉伸但不能拉断),并且不同的符号不会互相接触或包含。要求按照字典序输出所有的符号。woc我感觉这个脑洞我是开不出来的23333题解:所有的符号仅能保证拓扑等价,原创 2018-01-16 17:42:24 · 366 阅读 · 0 评论 -
[数论]Irrelevant Elements, NEERC 2004, Uva1635
[唯一分解定理在组合数学中的简单应用] 题意:给定n个数a1,a2…an,依次求出相邻两个数之和,将得到一个新数列。重复这个操作,最终将得到一个数。问这个数除以m的余数与原数列中的哪个数无关。题解:最后的求和显然是a1,a2…an的一个线性组合。设ai的系数为f(i),那么当且仅当f(i)是m的倍数时,最终结果除以m的余数与ai无关。 此时这个问题变成:找出最终的线性组合中哪些项的系数是m的倍数原创 2017-12-27 22:25:06 · 238 阅读 · 0 评论 -
[思维]Password, Daejon2010, Uva1262
[经典的解码问题] 题意:给出两个6x5的矩阵,找出满足如下条件的密码:密码的每个字母必须在两个矩阵的对应列都出现。要求输出字典序第k小的密码。题解:借这个题学习了一波解码。首先把两个矩阵扫一遍,找出可能出现在答案中的字母。 将每一列上的字母都按字典序排序并去重,那么每一列上的字母数目之积就是总的密码数。如果某一列的合法字母数为0或者总的密码数比k要小,答案就不存在。然后从第一列开始依次输出k所原创 2017-12-27 23:11:19 · 239 阅读 · 0 评论 -
[树状数组]Ping Pong, Beijing 2008, Uva1428
题意:在一条街上依次住着n个乒乓球爱好者,每个人都有一个不同的能力值ai。每场比赛有两个选手和一个裁判,规定裁判必须住在两个选手中间且能力值同样在两位选手中间。问最多能组织多少场比赛。题解:考虑第i个人当裁判的情况。假设在a1到ai-1中有ci个比ai小,那么就有i-1-ci个比ai大;假设在ai+1到an中有di个比ai小,那么就有n-i-di个比ai大。此时i当裁判就一共有ci(n-i-di)+原创 2018-01-18 20:23:18 · 422 阅读 · 0 评论 -
2017-2018 ACM/ICPC, Swiss Subregional Contest
A. Chess题意:有一个数列,第i项是2^(i-1)。现在将每一项对m取模得到一个新数列,给出升序排序之后的新数列,求满足条件的最小的m。题解:假设问题的解m是奇数,我们找出最大的奇数设为x,这时整个数列一定是这样的:a1,a1*2,a1*4……a2,a2*2,a2*4……x,x*2,x*4……这个x一定是由它前面的那个偶数乘2模m得到的,而且考虑到x是最大的奇数并且x的后面不一定有其他的偶数...原创 2018-04-08 23:18:55 · 1221 阅读 · 0 评论 -
2017-2018 ACM/ICPC, Asia Beijing Regional Contest
E. Cats and Fish题意:有m条鱼和n只猫,每只猫需要一定的时间吃掉一条鱼。两只猫同时要吃鱼的时候优先让速度快的吃。问第x分钟结束的时候还剩下多少条完整的鱼和不完整的鱼。题解;把猫吃鱼的时间排个序然后按照题意模拟即可。#include<cstdio>#include<cstring>#include<cmath>#include<cstd...原创 2018-04-15 22:27:33 · 746 阅读 · 0 评论 -
2017-2018 ACM/ICPC, Asia Tsukuba Regional Contest
A.Secret of Chololate Poles题意:白黑两种巧克力要相间放置在容器中,白的只能每次放1,黑的可以每次放1或者k。要求第一个和最后一个必须是黑的。问在总数不超过n的情况下有多少种放置方法。题解:DP,dp[i][j]表示高度为i,最上面颜色为j的方案数。0代表黑色1代表白色。状态转移方程dp[i+1][0]+=dp[i][1];dp[i+1][1]+=dp[i][0];dp[...原创 2018-04-06 22:29:05 · 1457 阅读 · 0 评论 -
2016-2017 ACM-ICPC Pacific Northwest Regional Contest (Div.1)
A. Alphabet题意:给出一个字符串,问最少添加多少个字母可以出现子串a-z。题解:最长上升子序列。答案就是26减去LIS的长度。#include<bits/stdc++.h>#define maxn 200050#define INF 0x3f3f3f3f#define eps 1e-8using namespace std;typedef long long ll;...原创 2018-05-02 17:23:04 · 1330 阅读 · 0 评论 -
2017-2018 ACM-ICPC, Nordic Collegiate Programming Contest
题目链接点击打开链接B. Best Relay Team直接模拟,按照后三棒成绩排序然后枚举第一棒的人选。#include<bits/stdc++.h>#define maxn 1050#define INF 0x3f3f3f3f#define eps 1e-8using namespace std;typedef long long ll;int n;struct n...原创 2018-06-02 23:53:14 · 469 阅读 · 1 评论 -
Benelux Algorithm Programming Contest 2014 Preliminary
题目链接A. Choosing the Ice Creamn个蛋糕k面的色子,要扔色子决定吃哪个,要求扔的次数最少并且每块蛋糕等可能性被选中,求最少的次数。实际上是,每次扔的时候,都需要解决一个子问题。这个子问题不一定是从k个中选一个,k如果是2的倍数,也可能是从2个中选一个或者从k/2个中选一个。以此类推,这个问题就是将n分解成最小数目个因数的乘积,使得每个因数也都是k的因数。可以把n的因数找出...原创 2018-07-08 23:09:43 · 315 阅读 · 0 评论 -
German Collegiate Programming Contest 2015
题目链接B. Bounty Hunter II求有向图中的最小路径覆盖。最小路径覆盖等于顶点数减去最大匹配数,直接用匈牙利算法即可。#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define eps 1e-8#define maxn...原创 2018-07-16 17:17:56 · 435 阅读 · 0 评论 -
2019 ICPC World Finals (A.D)
题目链接A - Azulejos瓷砖有价格和高度两个属性,求两排瓷砖的一个排列,使得每一排瓷砖的价格从左到右非递减,每个位置上后排的高度严格大于前排的高度。很容易想到基本思路就是贪心,对于前排的瓷砖,要和后排中高度高于它且高度最小的瓷砖匹配。关键就是要确定匹配的顺序,使得匹配后前后两排的价格都是非递减的。这里先将瓷砖分别按照价格升序排序,每次维护出价格相同的区间,优先给元素少的一边...原创 2019-04-06 10:17:59 · 965 阅读 · 0 评论