ACM(已完结)
大一到大三的算法记录
Cry_Kill
坚持自己的梦想
展开
-
Codeforces 812 B Sagheer, the Hausmeister
题目链接:http://codeforces.com/contest/812/problem/B题意:题目中的意思就是说有一栋楼有n层每层有m个房间,两边各有一个楼梯,上下楼梯需要的时间是1分钟,从一个房间走到相邻的房间的时间是1分钟,这栋楼里有一些房间的灯是亮着的,你需要把这些灯给关掉,问你最少需要的时间是多少,你每次都是从最下面那层的左边出发,最后不需要回到起点。题解:其实直接dfs所有的状态就原创 2017-06-02 17:53:54 · 419 阅读 · 0 评论 -
Codeforces 743 D Chloe and pleasant prizes
题目地址:http://codeforces.com/contest/743/problem/D 题意:告诉你一个树每个节点的价值,让你求出不相交的两个子树的价值和最大。 思路:树形dp入门。用vector存树的信息,每次遍历的时候不走回头路,dp数组去存这个节点下最大的子树价值和。原创 2017-07-11 16:26:13 · 305 阅读 · 0 评论 -
Codeforces 828 B Black Square
题目地址:http://codeforces.com/contest/828/problem/B 题目意思:给你一个广场,上面有黑色和白色的瓷砖,你可以把白色的瓷砖换成黑色的瓷砖,求最少要多少块黑色瓷砖来换才能构成一个黑色的正方形。 思路:求出最小的正方形能包裹住所有的黑色方块,如果边长大于原本广场的最小的边输出-1,要不然输出这个正方形所需的瓷砖总数-已有黑色瓷砖数。原创 2017-07-13 19:51:51 · 405 阅读 · 0 评论 -
Codeforces 831 B Keyboard Layouts
题目地址:http://codeforces.com/contest/831/problem/B 题意:给你两个全是小写字母的序列,在他的计算机里打a[i]就是显示b[i](大写一样),让你把序列c输入电脑后显示的字符串打印出来。(数字不变) 思路:用map把对应的值存下来,对照输出就好了。原创 2017-07-14 11:02:06 · 416 阅读 · 0 评论 -
【转】树的基本概念以及性质
一个我感觉讲的蛮好的博客:戳这里 html页面下载地址:戳这里转载 2017-08-21 17:19:44 · 213 阅读 · 0 评论 -
2017 计蒜之道 初赛 第六场
这应该是自己写的最好的一次吧,1个小时不到把前3道AC了,(困难那个版本有点思路,但是不清晰就没写了),写这么快我想应该是这次比赛比较容易吧。 第一题:微软手机的信号显示 题目地址:https://www.jisuanke.com/contest/731/39290 思路:就是直接输出就好了,没什么技巧#include <iostream>#include <cstring>#includ原创 2017-06-04 20:29:47 · 474 阅读 · 0 评论 -
POJ 2886 Who Gets the Most Candies?
题目地址 题意:一群小朋友围成一个圈,然后每个小朋友都有一个数,先会给你一个k,代表标号为k的人淘汰,然后淘汰的那个人拥有的数字就是他左边或者右边a[i]个人,然后每个人获得的糖果数就是他第k个淘汰,k的因子个数,让你求出谁获得的糖最多 思路:通过线段树去维护小朋友的淘汰,先通过反素数表找到最大能获得的糖的人k,然后枚举出从第一位同学到k,就可以求出第k位淘汰的是谁了原创 2017-08-04 19:41:23 · 218 阅读 · 0 评论 -
POJ 2528 Mayor's posters(加分割点)
题目地址 题意:给你n个海报,海报的宽度是一样的,告诉你长度为l-r,求最后你能看到多少张广告 思路:蛮基础的延迟更新,但是要注意一点就是离散化的时候要加入分割点,因为如果直接离散化的话,就会出现有的区间就会忽略了,就这个要注意的地方原创 2017-08-04 23:24:05 · 212 阅读 · 0 评论 -
POJ 3225 Help with Intervals(开区间和闭区间)
题目地址 题意:你有5种操作,分别为U(并集操作)、I(交集操作)、D(相减操作)、C(反向相减操作)、S(异或操作),让你求出n次操作之后的集合分别是多少 思路:最初为全0,就代表空集,然后对于5种操作的结果就是:原创 2017-08-05 15:48:52 · 461 阅读 · 0 评论 -
HDU 1436 Horizontally Visible Segments(点放两倍)
题目地址 题意:两两可见的定义是对于第i条线段和第k条线段如果用一条平行线能够经过它们并且在它们之间不经过其他线段,则称这两条线段互为可见,求n条线段有多少个三条线段两两可见 思路:对x坐标进行排序,然后加线之前查询他能看到x坐标比他小的线段有哪些记录下来,然后更新,最后暴力求一遍就好了原创 2017-08-05 17:41:39 · 290 阅读 · 0 评论 -
POJ 2991 Crane(计算几何+线段树)
题目地址 题意:你有一个挖掘机,他的臂由n根小臂组成,最初的时候挖掘机的臂是垂直向上的,然后有n次操作,每次操作告诉你把第a和第a+1根臂之间的角度旋转为b(不是旋转角度为b),每次操作之后把最后那个臂的坐标输出 思路:用线段树去维护每个臂的向量,然后把第a和第a+1个臂之间的角度旋转为b这个操作就是将a+1到n个臂旋转b-rad[a]就好了,最后输出sum[1].x和sum[1].y就是最后那原创 2017-08-06 18:09:05 · 576 阅读 · 0 评论 -
POJ 2482 Stars in Your Window
题目地址 题意:这是我看过最浪漫的题目,其实题意特别简单,就是有一扇窗户长w宽h,然后天上有n个星星,告诉你星星的位置和星星的亮度,让你求出你能透过窗户看到的星星的总亮度最大是多少 思路:我看到这道题的时候想到了cf前段时间一次比赛的题目,感觉蛮像的,当时我还是想用线段树写但是那天TLE,我看到这题一看到数据我就发现肯定那种办法还是TLE的,参考别人的博客才发现这道题可以转化为扫描线去写,每个矩原创 2017-08-06 23:57:10 · 366 阅读 · 0 评论 -
POJ 3041 Asteroids(最小顶点覆盖,匈牙利算法模板)
题目地址 题意:你有一个n*n的棋盘,棋盘上有m个棋子,你有一种技能可以把一行或者一列的棋子全部清掉,问你要把棋盘上所有的棋子清掉最少要使用多少次技能 思路:你按照当(x,y)上有点的时候建一条连接x与y+n的边,这样的话因为是把一行或者一列删除掉,所以就是求最少有多少个点可以连通整个图,这样就转变为最小顶点覆盖的题目了,根据下面的转换就直接用匈牙利算法的模板就好了。原创 2017-08-17 15:28:39 · 301 阅读 · 0 评论 -
POJ 2536 Gopher II(二分图最大匹配)
题目地址 题意:n只地鼠,m个洞,老鹰的到达地面的时间s,地鼠的移动速度v,求多少只地鼠会被老鹰吃了。 思路:直接暴力枚举每个地鼠到哪些洞不会被老鹰吃掉,因为每个洞只能有一只地鼠,所以求出的最大匹配就是不被老鹰吃掉的地鼠个数,然后用n减去就好了。原创 2017-08-17 20:15:36 · 200 阅读 · 0 评论 -
POJ 3613 Cow Relays(矩阵模板+快速幂+floyd)
题目地址 题意:给你一个图,要求你一定要经过K步从s到达t,求最短路为多少 思路:通过矩阵快速幂以及floyd的思想定义出一个矩阵,一个矩阵代表的是经过了n条边从i到达j,另一个矩阵代表的是经过了m条边从i到达j,则两个矩阵相乘代表的是经过了n+m条边从i到达j,这样就能求出来了。 在知乎看到了为什么floyd要把k放在最外层:原创 2017-08-21 20:56:04 · 247 阅读 · 0 评论 -
Codeforces 812 C Sagheer and Nubian Market
题目链接:http://codeforces.com/contest/812/problem/C题意:他给你n个数字,给你一个最多能花的代价,让你求最多能买多少的东西,只是他每个物品代价和要买多少个物品有关系(如买k件物品,则代价为 Axj + xj·k )题解:第一个想法就是二分,二分每次要买的东西个数,每次在按那个规则排序就能写出来了(PS居然是因为精度问题一直在wa,最后才发现)#includ原创 2017-06-02 17:56:45 · 562 阅读 · 0 评论 -
Codeforces 812 A Sagheer and Crossroads
题目链接:http://codeforces.com/contest/812/problem/A题意:其实就是判断行人通过时,该路上有没有汽车通过,用常识去写就好了,输入的其实分别是4条路向左向右向前以及行人的是否可以通行的信号,判断是否会发生事故#include <iostream>#include <cstring>#include <string>#include <vector>#i原创 2017-06-02 17:58:12 · 390 阅读 · 0 评论 -
Codeforces 811 A Vladik and Courtesy
题目地址:http://codeforces.com/contest/811/problem/A 题解:就是直接模拟就好了,减的个数依次递增直到减不了,输出对应的字符串#include <iostream>#include <cstring>#include <string>#include <vector>#include <queue>#include <map>#include原创 2017-06-02 22:29:29 · 324 阅读 · 0 评论 -
Codeforces 811 B Vladik and Complicated Book
题目地址:http://codeforces.com/contest/811/problem/B 题意:Vladik有一本有n页的书,告诉你书的序列(并不是按大小顺序排的),他妈妈帮他整理m次书,每次都把一段序列(l-r)按从小到大的顺序排列,求在这种情况下Vladik能不能找到他要的那一页书(x) 题解:不能每次来排序,那样会超时,每次处理的时候去判断在这个区间内有多少个数比给定那个数的位置上原创 2017-06-02 22:39:06 · 406 阅读 · 0 评论 -
Codeforces 754 D Fedor and coupons
题目地址:http://codeforces.com/contest/754/problem/D 题意:你有n张优惠券,每张优惠券可以优惠一个范围的商品(l-r),你要选k张优惠券,使它优惠的区间最大 题解:我一开始没有什么好的方法,还以为是线段树之类的,可是没有思路去写,然后我看别人blog发现其实就是用一个数据结构维护k个值就好了,先按每张优惠券的l排序,再把前m-1张优惠券的r放入优先队列原创 2017-06-03 12:06:41 · 382 阅读 · 0 评论 -
Codeforces 750 C New Year and Rating
题目地址:http://codeforces.com/contest/750/problem/C 题意:就是按cf的Rating的规则来,每次cf的比赛有两个模块,分别是Div1(1900及以上),Div2(1900以下),题目会告诉你他经历了几场比赛,每次比赛所加(减)的分,以及比赛是哪种类型,让你求出他最后能得到的最高Rating,如果存在矛盾就输出“Impossible”,如果是无限分的话输原创 2017-06-04 13:55:11 · 365 阅读 · 0 评论 -
Codeforces 750 D New Year and Fireworks
题目地址:http://codeforces.com/contest/750/problem/D 题意:这题模拟一个发烟花的路径,先输入n,表示有多少次的爆炸,再输入n个数代表一次爆炸持续飞的距离,每次爆炸都变成向两边的45°飞,求会经过多少个格子,题意看Hint的图应该很容易理解 题解:它n的数据量为30,所以如果直接去用dfs的话就会超时,因为2^30太大了,可是他的格子最多只有300*30原创 2017-06-04 18:26:31 · 291 阅读 · 0 评论 -
Codeforces 813 A The Contest
题目地址:http://codeforces.com/contest/813/problem/A 题意:题目就是说有n道题,分别告诉你每道题你解决需要的时间,然后告诉你在m个时间段内可以提交,让你告诉他,他什么时候可以提交完所有的题目,提交不算时间。 思路:其实你会发现因为提交不要时间所有你先把解决所有题目的总时间算出来,再找这个大于或者包括这个总时间的最早的时间段就好了。#include <i原创 2017-06-06 12:29:26 · 287 阅读 · 0 评论 -
Codeforces 813 B The Golden Age
题目地址:http://codeforces.com/contest/813/problem/B 题意:就是告诉你x,y两个值,让你通过 n = x^a + y^b,求出的n就是不幸运数,让你求出l~r范围内幸运数连续的最长区间是多少。 思路:就是把在l~r范围内的全部的不幸运数求出来,记录下来。求最长的区间长度就是把全部不幸运数排序,再现在在这个数组里相邻的两个不幸运数相减再减一就是区间长度,原创 2017-06-06 17:13:36 · 698 阅读 · 0 评论 -
Codeforces 813 C The Tag Game
题目地址:http://codeforces.com/contest/813/problem/C 题意:一个改版的Tag Game,他就是告诉你一个树状图,然后告诉你点的编号,代表Alice和Bob,每个人可以走到相邻的点或者在原地等,希望Alice尽可能走,Bob希望走较少的步,先是Alice走,求出多少步以后Alice和Bob可以相遇。 思路:从Alice和Bob的点分别出发求最短路,再遍历原创 2017-06-06 22:08:59 · 382 阅读 · 0 评论 -
Codeforces 748 E Santa Claus and Tangerines
题目地址:http://codeforces.com/contest/748/problem/E 题意:告诉你有n个橘子,要分给m个人,然后告诉你n个橘子每个橘子有ai瓣,橘子每次可以对半分,可以把它分到全部都是1为止,求m个人中分的最少的最多是有多少瓣橘子。 思路:看这个翻译应该都会懵逼吧,我最初还以为这题这么简单呀,居然能分到最终都是1瓣,那不就是直接求和就好了,再除以m,然后就光荣的wa了原创 2017-06-07 10:20:09 · 399 阅读 · 0 评论 -
Codeforces 814 A An abandoned sentiment from past
题目地址:http://codeforces.com/contest/814/problem/A 题意:其实就是让你用第二个序列的数去替换第一个序列为0的数,如果最后生成的序列一定是升序序列输出NO,否则输出YES。 思路:其实特别简单,因为题意中说明了两个序列没有重复的数,如果可填充的数有两个及以上,就一定会有大小关系,所以说一定可以让他成为非升序序列,如果只有一个可填充的数的话,把他换进第一原创 2017-06-07 23:34:56 · 260 阅读 · 0 评论 -
Codeforces 748 D Santa Claus and a Palindrome
题目地址:http://codeforces.com/contest/748/problem/D 题意:告诉你一些字符串,和每个字符串的价值,让你求出一个价值最大的回文字符串 思路:其实特别简单,可是我读错了题,看成了最长的回文字符串,相等长度取价值最大的字符串。然后就顺利的wa了一天,今天早上重新读题才发现自己理解错了,好了废话不说了。其实就是把每个字符串分类成回文和非回文然后按价值排序。(详原创 2017-06-08 12:06:53 · 288 阅读 · 0 评论 -
Codeforces 814 B An express train to reveries
题目地址:http://codeforces.com/contest/814/problem/B 题意:就是告诉你两个序列,每个序列都错了一位,让你求出一条原序列 思路:先对比两个序列,判断他是有一个地方不同还是两个地方不同 1、一个地方不同则什么就是这个等下错了,用一个标记数组去存每一个数的个数,再遍历一遍,如果有没有出现的就是把这个数添加进序列就好了。 2、两个地方不同就需要判断一原创 2017-06-08 19:55:09 · 311 阅读 · 0 评论 -
Codeforces 814 C An impassioned circulation of affection
题目地址:http://codeforces.com/contest/814/problem/C 题意:给你一个字符串,以及m次查询,每次查询告诉你一个次数num和字符c,求在这个字符串中最多改变num次字符,求最长连续的字符c有多长。原创 2017-06-08 23:09:55 · 290 阅读 · 0 评论 -
codeforces 814 D An overnight dance in discotheque
题目地址:http://codeforces.com/contest/814/problem/D 题意:就是告诉你有n个圆(跳舞),告诉你圆心和半径,圆两两之间不会有多余一个的交点,所以两圆之间要不是相离要不是内含。有上半场和下半场之分,每个圆只能出现一次,圆不能包含另一个圆,如果一个人跳舞被覆盖奇数次,他的面积就需要被减去,被覆盖偶数次他的面积就会被加上,然后现在问你跳舞合适的最大面积是多少。原创 2017-06-10 16:55:49 · 295 阅读 · 0 评论 -
Codeforces 749 B Parallelogram is Back(自定义set去重)
题目地址:http://codeforces.com/contest/749/problem/B 题意:告诉你三个点,让你求出一个点的集合,让集合中的每个点都可以与已知的三个点构成一个平行四边形。 思路:通过公式得出结果,再用set去重,这题主要我记录的是自定义set去重原创 2017-06-11 09:40:11 · 344 阅读 · 0 评论 -
Codeforces 816B Karen and Coffee
题目地址:http://codeforces.com/contest/816/problem/B 题意:告诉你n个温度区间,要一个温度在n个区间中出现的次数大于等于m的话,就说明这个温度是允许的,最后给你q个请求,每次给你一个范围,让你回答这个范围里面有多少个温度是允许的。原创 2017-06-30 15:46:43 · 485 阅读 · 0 评论 -
Codeforces 816D Karen and Test
题目地址:http://codeforces.com/contest/816/problem/D 题意:按照规则求出最后的结果,就是对于相邻两个数的加和减的操作,如果这个操作是第奇数个操作的话就是加,反之为减。直到最后只剩最后一个数即为结果。原创 2017-07-01 13:58:20 · 602 阅读 · 0 评论 -
Codeforces 742 C Arpa's loud Owf and Mehrdad's evil plan
题目地址:http://codeforces.com/contest/742/problem/C 题意:我看了好多别人的博客的对于题意的理解,结合他们的代码我认为这道题的意思应该是每个数要都能经过t步以后到达一个点,再经过t步到达起点。 思路:看这些数能否构成一个或多个环(包括自环),如果存在不能成环的数就输出-1,否则一定存在一个最小的t。原创 2017-07-11 20:18:47 · 320 阅读 · 0 评论 -
Codeforces 828 A Restaurant Tables
题目地址:http://codeforces.com/contest/828/problem/A 题意:你有一家餐厅,有单人桌和双人桌,给你一串序列,告诉你来的人的个数和顺序,你要按他的条件来安排座位,问你有多少人被拒绝用餐。原创 2017-07-13 19:47:08 · 402 阅读 · 0 评论 -
Codeforces 828 C String Reconstruction
题目地址:http://codeforces.com/contest/828/problem/C 题意:给你一些字符串的提示,让你拼接出一个完整的字典序最小的字符串(PS:是一定会有字符串的,所以重复的可以不用去看,因为一定是对的,我就是一开始没看懂这个TLE了)原创 2017-07-13 20:02:13 · 576 阅读 · 0 评论 -
Codeforces 828 D High Load
题目地址:http://codeforces.com/contest/828/problem/D 题意:给你n个点,只允许有m个点只有一条边,求连接的边的情况,已经两个端点的最小最长距离 思路:因为就只有m个分支,直接连下去就好了,没什么难度,最后最长距离判断下条件就好了。原创 2017-07-13 20:06:20 · 256 阅读 · 0 评论 -
Codeforces 828 E DNA Evolution(树状数组方法)
题目地址:http://codeforces.com/contest/828/problem/E 题意:给你个DNA序列,有两个操作,一个是改变DNA序列里的一个碱基,另一个是查询l~r中有多少是和另一个序列(给出的序列不断重复形成的)碱基相同的,求出相同碱基的数量。 思路:因为操作的次数太多了,所以可以想到用树状数组去存,预处理好,那样查询就特别方便了,原创 2017-07-13 20:19:46 · 321 阅读 · 0 评论 -
Codeforces 831 C Jury Marks
题目地址:http://codeforces.com/contest/831/problem/C 题意:Polycarp看电视节目,n个评委给参赛选手打分,分别为a1~an。Polycarp 没有记住该位选手的初始分(按时间顺序),只知道m个中间分(不是按时间的顺序),让你求出有多少种初始分。原创 2017-07-14 10:52:24 · 386 阅读 · 0 评论