
ACM算法/题目
文章平均质量分 91
在ACM实验室时所刷的题,或对某些算法进行的讲解。
棉花糖灬
我就是我,是颜色不一样的烟火。
天空海阔,要做最坚强的泡沫。
我喜欢我,让蔷薇开出一种结果。
孤独的沙漠里,一样盛放的赤裸裸!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
洛谷 P1309 瑞士轮(归并排序)题解
传送门:洛谷P1309瑞士轮 题目大意:有2*N个人,进行R轮比赛,每次比赛先按累计得分多少排序,然后每相邻两人比赛,胜者得1分,输者不得分。问R轮比赛后排名第Q的人的编号是多少。 思路:一开始我是对每轮比赛都用sort函数排序,最后输出排名第Q的人的编号,但是有4组数据超时了。换个思路,因为是比分相邻的两个人比赛,胜者得分,输者不得分,所以N对比赛中的胜者依次排列起来...原创 2019-01-28 15:17:29 · 741 阅读 · 1 评论 -
SDUT 2878 第五届山东省ACM省赛 Circle (我找到了规律~) 15行代码搞定~
传送门:SDUT 2878题目大意:将数轴围成一个圆环,标有点 0~n-1,如果你当前在 x 点,则各有一半的几率到达 x+1 或 x-1 点,问从 0 点到 x 点要走的步数的期望是多少。思路:谈不上思路了,XJB一试竟然对了…… 答案为 (n-x) * x ……正确的思路还是看网上的 DP 代码吧。代码:#include<bits/stdc++.h>int main(){ ...原创 2018-04-25 10:47:35 · 272 阅读 · 0 评论 -
2018年第九届蓝桥杯省赛C++B组部分题解
自己感觉本届蓝桥杯的题目还是不错的,就是坑点比较多,要认真读题啊!!!以下题解都是我后来补得……发现自己错了很多。。。如果有代码或结果不对还请指正,多谢~至于题目可以去2018年蓝桥杯C++、java B组真题下载。第1题:题目大意:2000年的1月1日,是那一年的第1天。那么,2000年的5月4日,是那一年的第几天?思路:最快的思路是用excel直接将两个日期做差得出结果,注意结果要 +1. 当...原创 2018-04-05 11:52:30 · 1033 阅读 · 0 评论 -
codeforces 714C. Sonya and Queries (思维题)
传送门:codeforces 714C题目大意:有 t 个操作,每个操作有以下三种类型:1. + n 往多重集合中加一个数字 n2. - n 从多重集合中去掉一个数字 n3. ? s s 为 01 组成的字符串,0代表为对应位为偶数,1代表对应位为奇数。问多重集合中,满足 s 的数字有多少个?如果数字的位数多于 s 的长度,则多余高位必须为偶数,如果数字的位数少于 s 的长度,则 ...原创 2018-03-21 16:40:14 · 325 阅读 · 0 评论 -
codeforces 716C. Plus and Square Root (思路+大数)
传送门:codeforces 716C题目大意:游戏开始时你在第 1 级,有个数字为 2。当你在第 k 级时,你可以进行以下两种操作:数字+k,或者当数字可开平方时将其开平方。当数字 +k 时,要求 +k 后的数字是当前级 k 的倍数,当数字开平方时,要求开平方后的数字是下一级 (k+1)的倍数,并且到达下一级。问从第 1 级到第 n+1 级,每次进行的 +k 的次数为多少次。答案不要求是最优的。...原创 2018-03-21 16:24:37 · 310 阅读 · 0 评论 -
蓝桥杯 历届试题 幸运数 (堆+DFS)
传送门:蓝桥杯题目大意:求区间 [m,n] 中幸运数的个数。锦囊2:从左到右扫描,用一下堆来处理,堆的每项记录下要删的倍数和当前删到的值,以当前删到的值建小根堆。每次取出一个加上一次倍数再放回去。枚举每一个数,如果这个数被跳过了就枚举下一个,如果没被跳过就找到了一个幸运数,把它的两倍加入堆。2的倍数可以特别处理一下。思路:因为提示用堆来做,我第一反应是用优先队列来做,但是发现优先队列不能很方便的按...原创 2018-03-16 17:41:46 · 3232 阅读 · 0 评论 -
codeforces 940D. Alena And The Heater (罗辑思维)
传送门:codeforces 940D题目大意:数组 b 根据数组 a 和 l,r 的值来生成。有以下规则:规则1:如果 a[i]、a[i-1]、a[i-2]、a[i-3]、a[i-4] 都 >r 并且 b[i-1]=b[i-2]=b[i-3]=b[i-4]=1,则 b[i] = 0规则2:如果 a[i]、a[i-1]、a[i-2]、a[i-3]、a[i-4] 都 <l 并且 b[i-...原创 2018-03-07 10:34:31 · 422 阅读 · 0 评论 -
codeforces 617C Watering Flowers (暴力)
传送门:codeforces 617C题目大意:已知两个圆的圆心坐标和若干点的坐标,问当两个圆能覆盖所有点时两圆半径的平方和 r1^2 + r2^2 最小为多少?思路:一开始还以为是计算几何的题……后来发现点的个数很少(n<=2000),这样就可以用时间复杂度为 O(n^2) 的暴力做法了。具体思路是我们假设圆 1 能到的最远到点为 i 点,求出圆 1 半径,对于其他点能被圆 1 覆盖的则被...原创 2018-03-02 18:24:23 · 418 阅读 · 0 评论 -
codeforces 621C Wet Shark and Flowers (概率、期望)
传送门:codeforces 621C题目大意:有 n 个人围成一圈,每人都有一个区间 [ l , r ],所有的相邻两人随机从自己的区间内取一个数字,如果两个数字的乘积是 p 的倍数,则要每人奖励 1000,问奖金总数的期望是多少?思路:我们只要求出每相邻两人获得的奖金期望,然后求和即可。如果两人中有一人的数字是 p 的倍数,则乘积是 p 的倍数,则会获得奖金,这个概率不好直接求,可以逆向思考,...原创 2018-02-28 11:07:46 · 290 阅读 · 0 评论 -
2018年全国多校算法寒假训练营练习比赛(第四场)题解
传送门:第四场A.石油采集题目大意:用 2*1 的方格覆盖图中的两个相连的‘#’,问在不重复的情况下最多可以覆盖多少个。思路1:对于某个坐标为 (x,y) 的 #,它只能与其上下左右四个 # 相连接。该点与其相邻的四个点的坐标和的奇偶性不同。也就是说坐标和为奇数的 # 只能与坐标和为偶数的 # 相连接。所以我们可以用 DFS 搜索每一片相连的 # 中坐标和为奇数和为偶数的各有多少个,取最小值加到结...原创 2018-02-14 19:42:20 · 305 阅读 · 0 评论 -
codeforces 834B The Festive Evening
传送门:codeforces 834B题目大意:有 A~Z 共26扇门,有 n 个人要依次从指定的门进入,每扇门在该门进入的第一个人之前开启,在该门进入的最后一人进入后关闭,之间一直开着,问有 k 个守卫是否可以保证每一时刻每扇开着的门都有守卫看守。思路:找到每扇门第一个和最后一个人进入的时间,解法类似于坐火车选坐车区间,问火车最少需要准备多少个座位的题。这种题的一种解法是将每扇门的开始时间对应的...原创 2018-02-12 08:34:02 · 315 阅读 · 0 评论 -
2018年全国多校算法寒假训练营练习比赛(第三场)题解
传送门:第三场A.不凡的大夫题目大意: 求n!的在8进制下的位数是多少位。思路:求 n!在8进制下的位数即求 log8(n!),由于 n! 太大没法直接求,可以用斯特林公式来代替。斯特林公式:,利用对数函数的一些性质可以化简上述式子,求解 log8() 也可以用换底公式来做。需要注意的是,当 n=0 时会出错,需要特判。原创 2018-02-05 09:48:58 · 709 阅读 · 0 评论 -
codeforces 911D Inversion Counting (逆序数 + 思维题)
传送门:codeforces 911D题目大意:给出一个含有 n 个数的序列,让你求每次反转区间 [ l , r ] 后整个序列的逆序数是奇是偶。思路:如果按照模拟的思路去做肯定超时。考虑到没让求逆序数的个数而是求逆序数的奇偶,所以有更简单的方法来做。当将区间 [ l , r ] 反转后,只有该区间内的逆序数产生了变化,其他原创 2018-02-01 19:16:44 · 746 阅读 · 0 评论 -
EOJ Monthly 2018.1 C.我决不会TLE
传送门:我决不会TLE题目大意:这个题的意思是有人写了一个求最短路径的递归代码,让你找一组数据使其答案错误或者超时,要求数据中不能含有环。思路:我一度以为自己看错了题……仔细读了遍代码,发现思路是正确的,所以我们只能去找一组数据使其超时。有就是让其尽可能多的进行递归,所以最好是存在多组最短路,最短路径越多越好。代码中构造的是类似下图所示的有向图:原创 2018-01-28 12:13:02 · 266 阅读 · 0 评论 -
codeforces 913C Party Lemonade (贪心 + DFS)
传送门:codeforces 913C题目大意:有 n 种柠檬汁,第 i 种每瓶的容量为 2^(i-1) 升,价格为 Ci,问至少买 L 升柠檬汁最少花多少钱?思路:一看题,第一感觉是 DP,但是由于购买数可以超过 L 升,并且 L 太大了,所以不能用 DP解决。我们采取贪心的策略:优先买单价更低的。这样会出现一个问题,剩余量如果不够一瓶,我们是买一瓶单价最低的原创 2018-01-22 19:26:54 · 665 阅读 · 0 评论 -
寒武纪第一届ACM金牌训练营网络测试赛 C题 math
传送门:Math题目大意:对于一个数对 (a,b),如果满足 a%b=a/b,则称这个数对为“好的数对”。 如果 a输入样例:583654985131151080100输出样例:3711311556161126810172227思路:这个题算是个找规原创 2018-01-15 12:50:07 · 1443 阅读 · 0 评论 -
codeforces 893D - Credit Card (贪心)
又是一个自己想了好久做了好久的题……原创 2017-12-02 11:44:28 · 560 阅读 · 0 评论 -
51nod 1650 穿越无人区 (找规律)
找规律的题,画图可以得到。原创 2017-11-24 16:26:11 · 439 阅读 · 0 评论 -
codeforces 891B Gluttony (构造+思维)
感觉自己脑子坏掉了……原创 2017-11-19 16:41:26 · 403 阅读 · 0 评论 -
51nod 1435 数位阶乘 思路题
思路题。原创 2017-11-12 11:52:46 · 327 阅读 · 0 评论 -
bzoj 3289 Mato的文件管理 (莫队算法+区间逆序数)
莫队算法大法好!原创 2017-11-08 20:27:49 · 375 阅读 · 0 评论 -
HDU 1257 最少拦截系统 (贪心)
贪心可解.原创 2017-11-04 19:08:50 · 312 阅读 · 0 评论 -
ZOJ 3985 String of CCPC 2017秦皇岛CCPC(子串个数)
考虑问题要考虑全面……原创 2017-11-02 18:31:56 · 446 阅读 · 0 评论 -
51nod 1287 加农炮 (暴力可过,此题有毒)
暴力可过,并且还比什么二分和线段树快……数据太水了。原创 2017-10-24 18:52:54 · 368 阅读 · 0 评论 -
51nod 1105 第K大的数 (二分套二分 好题)
用二分套二分的方法解决两个数组组合乘积的第K大值问题。原创 2017-10-24 15:42:10 · 394 阅读 · 0 评论 -
51nod 1639 绑鞋带 (找规律题)
找规律的题,慢慢思考就可以了。原创 2017-10-21 17:19:42 · 349 阅读 · 0 评论 -
codeforces The Eternal Immortality 题解
codeforces日常水题。原创 2017-10-07 09:16:47 · 385 阅读 · 0 评论 -
51nod 1276 岛屿的数量 思维题,很棒的题目
传送门:51nod 1276题目大意:由于是中文题就不再描述了。Input示例5 4213230132Output示例1202思路:第一思路肯定是暴力的方法,每次询问都去查询被淹没的岛屿和不相连的岛屿数,这样的时间复杂度是O(n)*O(q),会超时。网上的思路一般都是离线处理,也就是说针对每个询问不立刻给出答案,而是等询问全部给出后一起给出答案。由于水会先淹没高度低的岛屿,...原创 2017-10-05 11:02:58 · 615 阅读 · 0 评论 -
Codeforces Make a Permutation! (贪心+思路)详解
传送门:Make a Permutation题目大意:给出一个N,并给出N个数(可能重复),然后要求用1~N内未使用的数替换其中重复的数,形成一个排列,使这个排列的字典序最小,求需要替换的个数和字典序最小的排列。ExamplesInput43 2 2 3Output21 2 4 3 Input64 5 6 3 2 1Output04 5 6 3 2 1 Input106 8 4 ...原创 2017-09-27 16:20:52 · 963 阅读 · 0 评论 -
Train Seats Reservation 2017ACM南宁网络赛
传送门:Train Seats Reservation题目大意:有编号为从1~100的火车站,现在有人要买票,告诉你n组信息,包括起点和终点火车站的编号以及需要多少个座位,问最少需要准备多少个座位。比如一个人从1~5,另一人从5~10,只需要一个座位就够了。样例输入21 10 820 50 2032 30 520 80 2040 90 400样例输出2060*思路:因为车站很少,...原创 2017-09-25 16:18:17 · 369 阅读 · 0 评论 -
51 nod 1596搬货物 (二进制进位或优先队列)
传送门:51 nod 1596题目大意:现在有n个货物,第i个货物的重量是 2^wi 。每次搬的时候要求货物重量的总和是一个2的幂。问最少要搬几次能把所有的货物搬完。样例解释:1,1,2作为一组。3,3作为一组。Input示例样例输入151 1 2 3 3Output示例样例输出12注意,输入时只给出了2的指数,1,1,2,3,3对应的数是2,2,4,8,8,也就是前三个一组和为8,后两个一...原创 2017-09-19 18:01:20 · 439 阅读 · 0 评论 -
HDU 6195 cable cable cable (找规律) 2017ACM沈阳赛区网络赛
传送门:HDU 6195Sample Input3 220 15 Sample Output490题目大意:有M个显示屏,K个信号源,每个信号源可传送不同颜色,一个信号源同一时间只能传送一种颜色。让从M个显示屏中任选出K个,满足这K个显示屏可以显示不同的K中颜色,问有最少需要多少电缆。思路:只考虑一个信号源,也就是一种颜色,如果从M个显示屏中任选出K个必然会出现这种颜色,则最少需要连接M-K+...原创 2017-09-10 18:23:23 · 355 阅读 · 0 评论 -
SDUT 3566 第七届山东省ACM省赛 Triple Nim (Nim博弈 + 二进制)
传送门:SDUT 3566题目大意:让你把 n 个石子分为 3 堆并进行 Nim 博弈,问使得先手必败的方案数有多少?思路:对于有 n 堆石子的 Nim 博弈,要先手必败则 n 堆石子个数异或值为 0. 也就是说 n 堆石子个数的二进制表示中每一位的 1 的个数之和必定是偶数。1. 当 n 为奇数时,一定会分成 2 个偶数堆和一个奇数堆,异或值肯定不为 0。2. 当 n 为偶数时,二进制中高位的 ...原创 2018-04-28 09:30:57 · 336 阅读 · 0 评论 -
51nod 1185 威佐夫游戏 V2 (用乘法模拟解决大数精度问题)
传送门:51nod 1185Input示例33 53 41 9Output示例BAA题目大意:中文题不解释。需要注意的是题目给的数据比较大 1<= N <=10^18,直接用威佐夫博弈做会产生精度问题,什么是精度问题呢?比如一个大数乘以黄金分割比例0.618…的小数点后9位和小数点后27位得到的结果有可能是不同的,当然乘以小数点后面的数越多结果越精确。思路:一般的威佐夫博弈...原创 2017-09-03 11:00:32 · 523 阅读 · 0 评论 -
SDUT 3903 第八届山东省ACM省赛 CF (贪心 + 01背包)
传送门:SDUT 3903题目大意:有 n 道题,每道题初始分数为 a,每晚一分钟提交题目得分减少 d,如果在 t 分钟提交,则得分为 a-d*t. 现在你知道解决每道题所需的时间 c,问你在时间 t 内最多可以得多少分。思路:因为每个题目存在每分钟减分和解题时间两个变量,且题目之间会相互影响,无法通过简单的贪心解决。我们可以先固定一个变量,看另一个。当每个题的解题时间相等时,先做出每分钟减分最大...原创 2018-04-27 19:46:59 · 412 阅读 · 0 评论 -
POJ 2342 | HDU 1520 Anniversary party 树形DP(入门题)
传送门:POJ 2342题目大意:有若干人参加一个聚会,如果两个人之间有直接的上下属关系,则只能去一个。每个人都有个高兴值,问高兴值之和最大是多少?思路:之前一直觉得树形DP比较难,现在发现树本身就是递归定义的,并且有子结构,所以在树上使用动态规划是很好的。这道题可以转化为“父节点和子节点不能同时选择,求节点和的最大值”的问题,我们设: dp[i][0] 表示不选择第 i 个节点时的最大值,dp[...原创 2018-04-05 11:04:40 · 258 阅读 · 0 评论 -
FZU 2214 Knapsack problem (超大01背包)
传送门:FZU 2214题目大意:有 n 种物品,每种物品有重量 w[i] 和价值 v[i],从中选出几件 物品,求重量不超过 B 时的最大价值。注意,物品的重量很大(w[i]<10e9)。思路:一看是 01背包,但是是物品重量超大的 01背包。仍然可以按照 01背包的思路来做,只不过 dp[i] 的意思变成了当价值为 i 时物品的最小重量。然后再找一个满足重量 <=B 的价值的最大值...原创 2018-01-31 17:56:36 · 344 阅读 · 0 评论 -
蓝桥杯 K好数 算法训练 (动态规划DP)
DPPPPPPPPPP……原创 2017-12-05 17:25:18 · 700 阅读 · 0 评论 -
51nod 1052 最大m子段和 DP
最大m子段和转载 2017-11-05 16:38:53 · 700 阅读 · 0 评论 -
51nod 1202 子序列个数 (DP) 图解
彻底明白一个题。原创 2017-11-05 14:37:26 · 342 阅读 · 0 评论