数据结构与算法
ACM败犬
这个作者很懒,什么都没留下…
展开
-
HDU4725建图题(第一次写博客)!!!
HDU4725:题目This is a very easy problem, your task is just calculate el camino mas corto en un grafico, and just solo hay que cambiar un poco el algoritmo. If you do not understand a word of this parag...原创 2018-10-28 12:33:38 · 371 阅读 · 1 评论 -
gym 101669 A : Concerts (dp)
题目大意:有一个人想按顺序参加K个乐队的演唱会,然后得知最近n天每天有一场演唱会,但由于有的乐队演唱会门票价较高,他参加完这乐队的演唱会之后就必须休息a天之后再参加后面的演唱会。现给出它想参加的K个乐队的演唱会的顺序,以及最近n天的演唱会(乐队用大写字母’A’ - ‘Z’ 表示),问他有多少种方案参加完这K场演唱会?问题可以转化为在一个字符串中求有多少种不同的子串K,不要求连续,但有的字母要求间...原创 2019-05-30 21:29:46 · 265 阅读 · 0 评论 -
Codeforces Round #558 (Div. 2) C:Power Transmission(直线映射)
题目大意:平面图上有n个点,现在任意两个点间连一条直线,问相交的直线有多少对?分析:注意是直线,直线只要不平行就是相交的,于是想到总答案 扣去 平行线的贡献,要求总答案就要求线的条数,因为直线可能重叠。由y = k * x + b可知,只要确定k和b,就可以唯一确定一条直线,对每一个k开一个桶,把不重复的b放到桶内,就可以计算得到不重叠的总线数量和平行的线数量,答案就很好求了。但k 和b均可能是...原创 2019-05-30 22:28:02 · 101 阅读 · 0 评论 -
Codeforces Round #559 (Div. 2) : E - Permutation recovery (思维,dfs)
题目大一:有一个n个元素的排列,但这个排列只给出每一个元素的next[i], next[i]表示的是 第一个下标大于i且值大于i的元素的下标,如果后面不存在比它大的数,则next[i] = n + 1,现在这个序列丢失了一部分,丢失的值的next[i] 定义为 -1 ,问你能不能复原这个序列,使得它满足现在还保留的的next[i],并且合法。分析:明显是一道构造算法,常规思路:假设没有-1的情况...原创 2019-05-31 09:25:27 · 187 阅读 · 0 评论 -
Codeforces Round #562 (Div. 2) : C. Increasing by Modulo (二分答案 + 贪心check)
题目大意:初始时有一个长度为n的序列,现在你每次可以选其中任意个数字使他们的值x 变成 (x + 1) % m,现在要你执行多次这个操作,使得这个序列变成非降序的,问最少几次可以实现?分析:执行任意多次是肯定实现的,因为你可以把所有元素变成0。如果执行的次数越多,越可能实现,答案具有单调性,可以二分答案。如何check呢,这里要思考一下,对于当前二分答案x,一般来说要采用最优最贪心的策略使得能在...原创 2019-05-31 16:26:00 · 229 阅读 · 1 评论 -
Codeforces Round #561 (Div. 2):C - A Tale of Two Lands(two pointers)
题目大意:有一个序列a,任取其中两个数字x,y,它们的绝对值分别为xi,yi,则可以构成两个区间,第一个区间是[min(xi,yi),max(xi,yi)],第二个区间是[min(abs(x - y),abs(x + y)),max(abs(x - y),abs(x + y))],现在要你统计满足第二个区间完全覆盖第一个区间的 无需对 x,y数。分析:x,y是任意整数,但负数处理方式和正数完全一...原创 2019-05-31 18:51:58 · 219 阅读 · 0 评论 -
Codeforces Round #561 (Div. 2) E. The LCMs Must be Large (数学 + 构造 + 集合)
题目大意:有n个石头,每个石头上有一个数值,但现在不知道每个石头的数值是多少。玩家A和玩家B在玩一个游戏:每天A会拿n个石头中的s个,B会拿剩下的全部的石头,如果A拿的石头的权值的lcm大于b的lcm,则A赢。已知m天,每天A拿的石头,有没有可能存在A每天都赢的情况?若有输出possible,否则输出impossible分析:先考虑impossible的情况,设第i天 A拿的石头的集合是 Si,...原创 2019-05-31 19:20:27 · 138 阅读 · 0 评论 -
Codeforces Round #561 (Div. 2) : D. Cute Sequences (数学 + 构造)
题目大意:输入一个m,定义一个序列,其中 Xn = Xn - 1 + Xn - 2 + … + X1 + R, 其中 1 <= R <= m。输入a,b,m ,让你构造出以a为第一项,b为最后一项,满足上述要求的序列。1 <= a <= b <= 1e14, 1 <= m <= 1e14。分析:项数不会超超过50项,假设 a = 1, b = 1e14...原创 2019-06-01 09:58:37 · 189 阅读 · 0 评论 -
牛客小白月赛15:J 外挂
题目链接:https://ac.nowcoder.com/acm/contest/917/J题解链接:https://ac.nowcoder.com/discuss/198506?type=101&order=0&pos=11&page=1答案式子转化为:主要是这个多项和的平方的式子:由这个式子可以得到:用线段树搞一下#include<bits/st...原创 2019-06-16 11:57:18 · 331 阅读 · 0 评论 -
ZOJ:Element Swapping(数学推导)
题目大意:有一个数组,被一个人交换了两个值,而原主人又忘了数组的样子,但是原主人记得两个值:以及现在数组,问你有几种交换的可能?(可能交换了哪两个数字?)设现在的数组的 Xi = i * ai + j * aj + “…” ,Yi = i * ai ^ 2 + j * aj ^ 2 + “…”原数组的 X = i * aj + j * ai + “…”, Y = i * aj ^ 2 ...原创 2019-04-28 12:23:56 · 183 阅读 · 0 评论 -
1144 DIV3:G - Two Merged Sequences(贪心 or dp +思维)
1144 DIV3:G - Two Merged Sequences(贪心 or dp +思维)积累思维。题目大意:给一个序列,让你从中在不破坏原顺序的情况挑出一些数来,使得这个序列分成两份,第一份是严格递增,第二份严格递减。若有解 第一行输出YES第二行,若一个元素你将他放在递增序列内,则输出1,否则输出0。若无解,输出NO思路历程:一个序列要按原顺序分成一份递增,另一份递减,不难想...原创 2019-04-17 20:18:33 · 151 阅读 · 0 评论 -
CF1130 D1 D2:Toy Train
Toy Train题目大意:有一辆玩具车和一个环形轨道,轨道有n个站点,玩具车沿着轨道前进,车子从第i站到第i+1站需要花费1s,第n站的下一站是第一站。给出m个搬运任务:把糖果从ai搬运到bi。每次经过一个站点,可以从这个站点搬运一个糖果,但只能搬运一个。车的容量有无限个,且每次可以卸下任意个糖果,装糖果和卸糖果的时间不记。现在问从各个点为起点出发,完成这m个任务的最小时间为多少。一开始题目...原创 2019-03-01 12:34:37 · 264 阅读 · 0 评论 -
新智认知杯:CSL的训练计划(拓扑排序)
众所周知,CSL 是一个负责的集训队队长。为了让集训队的学弟们训练更加饱和,他根据每个人的能力,提出了 m 个题数要求。假如 CSL 认为 yi 比 xi 强,那么如果 xi 做了 a 题,那 CSL 会要求 yi 需要做至少 a+ri×k,其中 ri 是已知的常数。CSL 现在一共有 s 道题目可以分给大家,因为 CSL 马上就要考OS了,所以他不想再出其他题了,请问正整数 k 最大是多少。从...原创 2019-04-01 19:33:10 · 272 阅读 · 0 评论 -
洛谷P3157:动态逆序对(树状数组套主席树)
题目大意:对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。做法很简单:在加入序列的时候就可以先算出总的逆序对,然后每删一个就扣掉这个数的贡献。因为要删除数字求贡献,线段树是搞不了的,必须要用主席树,而且要用套带修改的主席树。删除贡献:只需要计算这个...原创 2019-04-21 23:24:50 · 207 阅读 · 0 评论 -
1151_DIV2:C. Problem for Nazar(数学)
题目大意:有奇数和偶数两个无穷大的集合,奇数集合是{1,3,5,7…},偶数集合是{2,4,6,8…},先从奇数取1个,然后从偶数取2个,再在奇数取4个…,每次取都取前面的数量的两倍,在两个集合交替取,然后将取出来的数构成一个新的无穷大的集合 {1,2,4,3,5,7,9,6,8,10,12…}。问在新的集合中,第 l 到 第r个的数字的和是多少?(对1e9 + 7取模)做法:其实是一道数学模...原创 2019-04-26 10:58:31 · 137 阅读 · 0 评论 -
codeforce:1151_DIV2(round 553) 解题报告(A->D)
A:题意:将串的字符增1或减1变换使得“ACTG"是原串的子串。问最小的变换次数(‘A’ 减 1得到’Z‘)解法:直接暴力,枚举每一个字符作为起点的连续四个字符变成ACTG要几步,然后取最小值就行。B:题意:给一个m,n的矩阵,问能不能每行都选一个元素,使得最后的异或和大于0,输出选数的方案。解法:构造(标签贴了个DP,被干扰了,往DP方向想了半天觉得实在是没解去看了题解。。。)先构造...原创 2019-04-26 11:09:42 · 390 阅读 · 0 评论 -
codeforce round 554 div2 解题报告 (A -> D)
A. Neko Finds Grapes题目大意:两个序列a,b。选出ai,bj进行匹配,要求ai + bj 是奇数,每个数字只能匹配一次,被匹配一次,求最大的匹配对数,解法:扫描两个序列即可,答案是唯一的,记下扫描a序列的奇数的个数和偶数个数,扫描b的时候直接得出答案。B. Neko Performs Cat Furrier Transform题目大意:给一个数字 x,有两种操作,A操作...原创 2019-04-26 20:07:29 · 130 阅读 · 0 评论 -
HDU 5213:Lucky (莫队 + 容斥原理)
题目描述:初始有一个序列 a 和一个正数 K ,每次询问 : 分别从区间 [l,r] ,[u,v] 中各选一个数字,其值等于K的方案有多少?题解:感谢大佬提供的思路https://www.cnblogs.com/HDUjackyan/p/8996172.html因为求的是区间内的答案,可以用莫队,通过莫队算法,可以很容易求出一个区间内的答案,但这题同时有两个区间,直接做不好做,需要用容斥...原创 2019-06-30 10:11:45 · 119 阅读 · 0 评论