随笔分类 - 题目合集
摘要:A. City Day 用了st表//是不是麻烦了 建表然后O(1)查询这个数前面x个数的最小值和后面y个数的最小值,注意边界和x,y为0的情况。 1 #include<bits/stdc++.h> 2 #include<iostream> 3 #include<stack> 4 #include<
阅读全文
摘要:简单的情况不用前缀和,直接暴力就好,数据范围大的D2,就用前缀和数组存不满足三种情况的数,最后减一下取小就可以。 1 #include<bits/stdc++.h> 2 #define mem(a) memset(a,0,sizeof(a)) 3 #define ll long long 4 #de
阅读全文
摘要:关键即: dp[i][j]=max(dp[i-1][j],dp[i][j-1],dp[i-1][k]+a[i].p*(j-k))//第三种是第i个人刷k+1到jx[i]<=k<=a[i].s-1 a[i].s<=j<=y[i] 这题跟hdu-3401很像,构成单调队列的方式就是把第三种情况dp[i-
阅读全文
摘要:👩⚕️👩🎓💂♀️ //写完入门后,这道一直想补,终于拖到了现在d ( ̄▽ ̄*)b 分块维护每一块的众数(第i块到第j块的众数),所以中间的块预处理就可以得到,旁边的块我们暴力枚举,但这样前面预处理得到的还需要统计它出现次数。这个我们就可以用到二分来找,找中间块最多的那个数,二分找在[x
阅读全文
摘要:👩💼 思路:最小是交点的那个±1小区间里,是真的没想到😭。这题我觉得关键是考虑c,即a+b,因为c的存在,a和b不可能同号,因为步数最少嘛。但我们用a和b,但是在同号时取两者中|最大|,即|a+b| + |最大|的剩余部分,异号就全取。 //被坑惨了,找了一个多小时的bug,竟然错在lld上
阅读全文
摘要:一、分块 核心就是找到分块要维护的东西。想象一列数字中,我们取出其中相同的一组,我们要在给定范围内取不超过k个,如果暴力从左往右判断然后记录个数,很不现实吧。那我们就开个数组记录这个数在此组中的位置+k个后会不会超过这一组的个数,但之后统计的关键不是“从左往右”。如果碰到的数+k后还在区间内,我们不
阅读全文
摘要:🎈 写在纸上了 1 #include<bits/stdc++.h> 2 #define mem(a) memset(a,0,sizeof(a)) 3 #define mem1(a) memset(a,-1,sizeof(a)) 4 #define ll long long 5 #define mp
阅读全文
摘要:追逐游戏啊,🚬 //沧桑脸 下回把dfs,bfs,dijkstra都写一遍~ //DFS和BFS区别 (1)dfs学了这篇:https://blog.csdn.net/mengxiang000000/article/details/72901402 但是。。。我没有理解遇到两人到某点距离一样,就更
阅读全文
摘要:今天又写了一遍,才差不多看懂这道题,不过stl的选择真的好难,靠经验么? 这题的核心就是 sum[r]-sum[l] = pow; 因为r在l的后面 所以要先由r来找l,在放入l,即转化为sum[l]=sum[r]-pow; 1 #include<bits/stdc++.h> 2 #include<
阅读全文
摘要:汤姆波利伯~题目在这里。 一、三分 关键是找到x轴和y轴的表示意义,x轴表示的是最终得票数,y轴是花费 联系题意和要求,题目给我们的就是投给谁和花费,那我们的已知也只有这个,要找的就是最好的一种组合,既能保证赢,花费又最小,而这个组合减或增都不满足这两个要求最优,不是单调的,所以可以想到是一个开口向
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=2002 分块( √ ) LCT() 动态树() 一、分块: 分块重要的是确定我们建立的数组要完成什么使命,这题是问从某点弹出序列需要几次,并要提供修改操作。既然分了块,那我们就要把操作缩小到块的范围,
阅读全文

浙公网安备 33010602011771号