- 博客(18)
- 收藏
- 关注
原创 2018, XI Samara Regional Intercollegiate Programming Contest 解题报告
2018, XI Samara Regional Intercollegiate Programming Contest传送门A. Restoring Numbers题意:给出两个数 aaa 和 bbb 的和 sss 和最大公因数 ggg,要你求出任意一组 aaa 和 bbb 的解。题解:我们可以知道 gcd(a,b)=ggcd(a,b)=ggcd(a,b)=g,则我们假设 a=p∗...
2019-12-09 21:17:36
619
原创 2019, XII Samara Regional Intercollegiate Programming Contest 解题报告
2019, XII Samara Regional Intercollegiate Programming Contest传送门A. Rooms and Passages题意:有 n+1n+1n+1 个房间,nnn 把钥匙,有第 iii 把钥匙你可以从房间 i−1i-1i−1 走到房间 iii。每个房间 iii 都有两种类型中的一种:一、只有拥有钥匙 aia_iai 才能从 i−1...
2019-11-26 04:08:56
658
原创 Hdu2196-Computer (树形dp)(经典题)
传送门:Computer题意:有 n 个点,通过 n-1 条边连成一棵树,每条边有一个权值,求从每个点出发的简单路径的最大长度。思路:树形dp首先以 1 为根建树,这样每个点能走的最大路径有两种情况:往下沿着子节点走或往上沿着父结点走。假设根节点为 rt,我们定义:dp[rt][0] 表示以 rt 为根的子树上的节点到 rt 的最长距离。dp[rt][1] 表示以 rt 为根的...
2018-12-20 10:33:57
505
原创 Hdu1520-Anniversary party (树形dp)(入门题)
传送门:Anniversary party题意:公司内的员工关系表是一棵树,每个员工有一个权值,在举行年会时一个员工与他的直属上司不能同时出现(即直接相邻的节点不能同时选取),求最大权值。思路:树形dp入门题。选取节点 1 为根,对于每个节点 u 和它的子节点 v:如果选取节点 u,则节点 v 必不能被选:dp[u][1] += dp[v][0]如果不选取节点 u,则选择节...
2018-12-20 01:19:37
254
原创 codeforces 1080D Olya and magical square (思维+数学)(模拟)
传送门:codeforces 1080D题意:给你一个 n 和 k ,表示你现在有一个边长为 2^n 的正方形,你需要对其进行恰好 k 次操作,使得:① 左下角和右上角的正方形边长一样,假设为 a;② 存在一条路径,这条路径连通左下角和右上角的正方形,并且这条路径上的所有正方形边长也都为 a。其中,操作指的是:找到目前图形中一个边长不为 1 的正方形,假设边长为 b,把它变成四个边长为 b/2...
2018-11-25 12:13:35
611
原创 codeforces 1017D The Wu(状压+预处理)
传送门:codeforces 1017D题意:给你n m q,表示在这一组数据中所有的01串长度均为n,然后给你一个含有m个元素的multiset,之后有q次询问。每次询问会给你一个01串t和一个给定常数k,让你输出串t和multiset里面多少个元素的“Wu”值不超过k。对于“Wu”值的定义:如果两个01串s和t在位置i上满足s[i]==t[i],那么加上w[i],处理完s和t的所有n位之后...
2018-08-09 10:44:41
590
原创 codeforces 987E Petr and Permutations(结论+逆序对)
传送门题意:Petr和Alex两个人对一个初始为1,2,3,...,n的长度为n的排列有不同的操作次数(一次操作表现为将其中两个数交换位置,比如1,2,3,4变为1,2,4,3称为一次操作),Petr会对其进行3n次操作,而Alex会对其进行7n+1次操作。现在给你初始排列的长度n和结果排列,问你是他们中的谁进行的操作,如果是Petr输出"Petr",否则输出"Um_nik"。思路:利用到排列的性...
2018-05-30 19:24:59
958
原创 Codeforces 985E Pencils and Boxes(尺取法/two pointers)
传送门题意:给定n,k,d,表示给你n支铅笔,每支有一个权值v。现在让你把n支笔放入一些盒子中(盒子数量可以无穷大),每个盒子中至少有k支笔,而且每个盒子中的笔的max(v)-min(v)不超过d。问你能否找到一个合法的放法,可以输出"YES",否则输出"NO"。思路:因为对权值差有要求,所以先进行排序,排序后能放进一个盒子的笔的权值v一定是连续的。之后记录两个值,一个是can[i],表示第i支笔...
2018-05-29 16:27:16
491
原创 Codeforces 981D Bookshelves(贪心+dp)
传送门题意:给你n本书以及每本书的权值,现在让你把n本书放到k个书架上(只有连续的几本书可以放到一个书架上),每个书架的权值是书架上每本书的权值加和,总的"beauty"是每个书架权值按位与的结果,要求输出最大的"beauty"。思路:因为要求总"beauty"是所有书架权值的按位与的结果,所以对于总"beauty"的二进制,位数越高的1的价值越大,所以可以从高位开始枚举这一位是否能取1,如果能取...
2018-05-28 20:54:27
562
原创 权值线段树、主席树学习
初学主席树,主要是反复看了卿学姐的视频(我竟然在B站学算法)和知乎“主席树是如何求区间k大的”,才算懂了点皮毛。传送门:卿学姐的B站视频知乎-“主席树是如何求区间k大的”首先,学习主席树要点的前置技能是权值线段树(卿学姐说的是线段树,个人认为不太确切)。权值线段树之所以会带上“权值”二字,是因为它是记录权值的线段树。因此需要用到离散化操作来处理a[1-n]。记录权值指的是,每...
2018-05-25 02:17:00
9240
12
原创 hdu 4496 - D-City (基础并查集)
传送门:hdu 4496题意:给你n个点和m条边,依次连接这m条边。然后按照输入顺序删除每一条边,问你每次删掉一条边以后的图中的联通块个数。思路:倒序加边,从一条边都不加到加入m-1条边(因为第一个输出的是删掉第一条边后的结果,所以不加入第一条边)。一条边都不加的时候联通块个数为n,即点的个数。每加入一条边判断这两个点是否拥有同一个父节点,如果不是说明他们在两个不同的联通块中,可以将他们合并,并且...
2018-05-20 12:22:15
329
原创 cf div2 #453 ABC(D)
赛中只搞出ABC,C想的还有点久,没时间搞D了(虽然是推了很久都没推出来),蒟蒻的上分之旅。A. Visiting a Friend题意:你的初始位置为0,给你n和m,m表示你的目的地,n表示可乘坐工具的个数。接下来n行,每行一个x y,表示在位置x处有一个工具,你可以坐着它到位置y(你可以中途跳车,比如样例1中,0->2,2->4,在2->4过程中跳车,在位置3坐上3->
2017-12-20 10:18:32
404
1
原创 先刷一波线段树吧
1.hdu 1166 敌兵布阵2.hdu 1754 I Hate It3.hdu 1698 Just a Hook4.hdu 1394 Minimum Inversion Number5.pku 2777 Count Color6.pku 3468 A Simple Problem with Integers7.pku 2
2017-12-15 16:46:24
257
原创 cf div2 #449 C.Nephren gives a riddle
Nephren gives a riddle题意:给你一个初始串f[0]:"What are you doing at the end of the world? Are you busy? Will you save us?"(不包括引号)。为了让这句话被更多人知道定义串f[i]为"What are you doing while sending "fi - 1"? Are you bu
2017-12-05 16:41:42
297
原创 Poj 3279 Fliptile(反转/开关问题)
题意:给定一个N*M的矩形,每个点上的值为0或1,0表示该点为白色棋子,1表示该点为黑色棋子。当改变一个棋子的颜色时,会连同它上下左右四个棋子共同变色。问:最少变换几次能将所有棋子都变为黑色;若有多组最小值相等的解,输出字典序最小的那个。思路:对于这样的变换来说,有两点可以总结:一、反转顺序的交换对结果没有影响;二、对一个点进行两次反转后结果不变。好好的矩阵说着说着要求
2017-11-15 01:17:06
523
原创 cf Educational Codeforces Round 32
ABC题巨水,D题推导公式后可以快速解决。没有打实时场,开了一场Virtual。AB题很轻松,然而手速比较慢。C题其实也很水,可是一直写的很屎,开场11分钟就开了的题,甚至到离结束还有11分钟左右才过,可见码力若的不行。C题wa太多了,期间get到D的公式,快速通过D题后回头看C,头脑似乎清醒了些,找到了C的错误,才得以AC,可是时间已经不够开后面的题了(虽说开了也不一定会做)。
2017-11-11 01:41:00
246
原创 Poj 3320 Jessica's Reading Problem(尺取法)
做这题的时候因为忽视了一个条件而吃了一发RE,下面先把RE代码和AC代码都贴出来,然后再进行分析。RE代码:#include #include #include using namespace std;int n , a[1000005] , b[1000005] ;int main(void){ while ( scanf ("%d",&n ) != E
2017-11-08 09:28:37
246
原创 cf div2 #444 (ABC)(D已补)
ABC三道大水题,自信满满锁了溜出自习室回寝睡觉,第二天起来发现变成两道题了,哭唧唧。回头翻代码吃了一口大翔,少写了两行被自己gank了。然后由于出题人的数据放错了导致D题一开始没人过,E和F零星有几个人,然后就洒富富跑去开F和E,数据改了重判之后D题人数飙升但是没什么时间了(一定是出题人的锅)。好吧怪自己没把题目都看一遍,盲目跟榜会吃翔的,以后记得不管什么比赛都尽可能把所有题目都看一
2017-11-04 10:47:18
1380
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人