05 2016 档案
摘要:排序。随便加点优化就能过。
阅读全文
摘要:简单题
阅读全文
摘要:简单DFS
阅读全文
摘要:简单题。
阅读全文
摘要:简单题。
阅读全文
摘要:简单题。
阅读全文
摘要:数位DP。dp[i][j]表示i位,最高位为j的情况下总共有多少1.
阅读全文
摘要:先对序列排序,然后枚举较小值,二分较大值。
阅读全文
摘要:简单题。
阅读全文
摘要:最长公共子序列变形。
阅读全文
摘要:处理一下前缀和。
阅读全文
摘要:双指针。
阅读全文
摘要:简单题。构造出二叉搜索树,然后check一下。
阅读全文
摘要:简单题。
阅读全文
摘要:暴力。
阅读全文
摘要:map会超时,二分吧...
阅读全文
摘要:注意前导零的消去。
阅读全文
摘要:简单题。
阅读全文
摘要:简单题。
阅读全文
摘要:dfs序+线段树。 用线段树维护从根节点到每一个节点的距离。 修改操作就是x子树对应区间加上一个值。 查询操作就是查询x子树对应区间的最大值。
阅读全文
摘要:状态压缩DP。 dp[i][j]表示前cnt个位置放了i状态的那些数字,cnt位置放的是j这个数字的最大价值。其中cnt为i二进制中1的个数。
阅读全文
摘要:矩阵快速幂 a[i]=a[i-1]*10+x; 问a[m]%k是否等于c
阅读全文
摘要:简单DFS。
阅读全文
摘要:贪心。注意x=0处没有加油站的情况。
阅读全文
摘要:简单题,不过数据中好像存在有环的链表......
阅读全文
摘要:简单题。
阅读全文
摘要:先处理出最短路上的边。变成一个DAG,然后在DAG上进行DFS。
阅读全文
摘要:scanf读入居然会超时...用了一下输入挂才AC...
阅读全文
摘要:时间卡的比较死,用string会超时。
阅读全文
摘要:简单题。
阅读全文
摘要:情况比较多的模拟题。 交了50发的样子才AC......AC之后我的天空星星都亮了。
阅读全文
摘要:简单题。
阅读全文
摘要:手动模拟加法高精度。 注意:如果输入数字的就是回文,这个时候输出0步。
阅读全文
摘要:手动模拟一下高精度加法。
阅读全文
摘要:简单模拟题。 写的时候注意一些小优化,小心TLE。
阅读全文
摘要:先并查集判断连通性,然后暴力每个点作为根节点判即可。
阅读全文
摘要:递归建树,然后BFS一下
阅读全文
摘要:简单题。
阅读全文
摘要:先找出可能在最短路上的边,图变成了一个DAG,然后在新图上DFS求答案就可以了。
阅读全文
摘要:简单模拟。
阅读全文
摘要:简单模拟题。
阅读全文
摘要:简单题。
阅读全文
摘要:简单模拟题。
阅读全文
摘要:并查集判断连通性。
阅读全文
摘要:简单排序题。 注意:分数相同的人排名相同。
阅读全文
摘要:简单题。
阅读全文
摘要:撸完这题,感觉被掏空。 由于进制可能大的飞起。。所以需要开longlong存,答案可以二分得到。 进制很大,导致转换成10进制的时候可能爆long long,在二分的时候,如果溢出了,那么上界=mid-1
阅读全文
摘要:简单模拟。
阅读全文
摘要:简单模拟。 注意a[i]==a[i-1]的情况。
阅读全文
摘要:简单DP。 注意:If all the K numbers are negative, then its maximum sum is defined to be 0, and you are supposed to output the first and the last numbers of
阅读全文
摘要:简单题。
阅读全文
摘要:简单题。
阅读全文
摘要:简单DFS。
阅读全文
摘要:为0的不要输出。
阅读全文
摘要:最短路+dfs 先找出可能在最短路上的边,这些边会构成一个DAG,然后在这个DAG上dfs一次就可以得到两个答案了。 也可以对DAG进行拓扑排序,然后DP求解。
阅读全文
摘要:简单模拟题,耐心写就能过。
阅读全文
摘要:字典树。 插入的时候update一下节点出现的次数。 delete的时候,先把前缀之后的全删了。然后看前缀最后一个节点出现了几次,然后前缀上每个节点的次数都减去这个次数。 前缀从上到下再检查一遍,如果出现了次数为0的节点,也删去。
阅读全文
摘要:排个序,map直接搞。
阅读全文
摘要:规律题,斐波那契数列,数据有毒,0的时候输出换行。会爆longlong,写个大数模板或者Java搞。
阅读全文
摘要:保存前缀乘,询问的时候输出c[ri]/c[li-1]即可,因为是除法,所以计算一下c[li-1]的逆元。
阅读全文
摘要:网络流。 原点到偶数连边,容量为2, 奇数到汇点连边,容量为2, 偶数到与之能凑成素数的奇数连边,容量为1 如果奇数个数不等于偶数个数,输出不可能 如果原点到偶数的边不满流,输出不可能 剩下的情况有解:因为一个偶数点选了两个奇数点,一个奇数点被两个偶数点选择,一定能构造出环。
阅读全文
摘要:贪心观察+DP决策。 首先需要观察到一个结论:分割后的每一段肯定是单调增或者单调减的。 然后可以根据dp来决策如何分割价值最多。 dp[i][0]表示放完第i个,最后一段是递减的情况下的最大价值 dp[i][1]表示放完第i个,最后一段是递增的情况下的最大价值
阅读全文
摘要:矩阵快速幂。 设ai表示涂完i块之后,红绿均为偶数的方案数 设bi表示涂完i块之后,红为偶数的方案数 设ci表示涂完i块之后,绿为偶数的方案数 设di表示涂完i块之后,都不是偶数的方案数 ai+1=ai+ai+bi+ci bi+1=ai+2*bi+di ci+1=ai+2*ci+di di+1=bi
阅读全文
摘要:写出前几个找规律,然后直接输出。
阅读全文
摘要:给出n个点,求任意两点间距离的平方和。 暴力显然超时,可以把公式写出来,化简一下,发现预处理一下后缀和就可以o(n)出解了。
阅读全文
摘要:这题可以o(1)推出公式,也可以二分答案+验证。
阅读全文
摘要:构造题。 答案可以o(n)构造出来。首先要发现规律。只有01交替的串才可能变化,变化规律如下: 1开头,长度为偶数(0结尾):变(len-2)/2次 变完后 前半1 后半01开头,长度为奇数(1结尾):变(len-1)/2次 变完后 全为10开头,长度为偶数(1结尾):变(len-2)/2次 变完后
阅读全文
摘要:先把没用的边去掉,求出包含m个点的最小树。然后求出最小树的直径就可以得到答案了。
阅读全文
摘要:状压DP。 dp[i][j]表示前i头牛选完,状态j中为1的篮子选完的方案数。
阅读全文
摘要:公倍数之间的情况都是一样的,有循环节。 注意min(a,b)>t的情况和最后一段的处理。C++写可能爆longlong,直接Java搞吧......
阅读全文
摘要:规律题,多画几个就能找到规律了。
阅读全文
摘要:计算出每条线段在x1处的y坐标和x2处的y坐标。 就下来只要根据每条线段左右两处的y坐标就可以判断是否有交点。
阅读全文
摘要:转换成某区间上被k整除的数字有几个。 处理出每一段有几种,然后乘一下就是答案。
阅读全文
摘要:先对n个点分类,然后按题意要求构造,构造的时候判断这个点的右上方之前是否有点,判断可以用线段树来操作。
阅读全文
摘要:简单题,一个一个操作,最后就是答案。
阅读全文
摘要:区间DP预处理。 dp[i][j][k]表示大小为i*j的巧克力块,切出k块的最小代价。
阅读全文
摘要:这题对精度要求很高。用atan2吧。。。
阅读全文
摘要:先推导出公式x*(x+1)(3*y-x+1)=6*n,然后枚举求解。
阅读全文
摘要:水题。每种情况取最小值即可。
阅读全文
摘要:简单贪心。 按分值排序,一个一个取,不能取的对答案就作出了贡献。
阅读全文
摘要:DP。 题意明显描述不清! 题意从一个点出发,走到某个点只算一种路线......而我把他当成多种来算了.....敲完样例都过不了,然后开始枚举题意了...发现是只当一种算的。
阅读全文
摘要:记录一下第i个放入之后可能分割的情况,然后可以推出放入第i+1个的分割情况。
阅读全文
摘要:DP。 槽点满满的题。 1.没有告知人数的范围,导致一开始就想到的dp不敢写。 2.存在人数为0的月份,坑了我好久。 dp[i][j]表示第i个月的工程完工时,有j个人的情况下的最小费用。
阅读全文
摘要:这题也是一眼标算..... 先搞一次dfs,把树转换成序列,对每个节点看子树的中位数,也就是看某段区间的中位数,这样就可以主席树求区间第k大值解决。 注意:询问的次数有1000000次,每次去询问会TLE的。注意到询问的种类只有100000种,所以之前询问过的可以0(1)得到,或者直接处理出每一种询
阅读全文
摘要:Manacher+二维费用多重背包 二进制优化 这题是一眼标算....先计算出每个长度的回文串有几种,然后用二维费用的多重背包判断是否有解。 多重背包做的时候需要二进制优化。
阅读全文
摘要:这题可以打表+二分,也可以直接构造答案输出。 打表+二分不多说了,暴力dfs一下就可以。 构造法: 如果输入的数字位数是奇数,那么输出比他多一位的最小值。例如输入12345,输出444777 剩下的情况都是位数是偶数的: 如果输入的数字比这个位数下能组成的最大值还大,那么输出多两位的最小值。例如,输
阅读全文
摘要:1 4 9 16 25 36...... 找一下规律发现,这些数字的差值肯定是奇数或者是4的倍数。 所以,奇数或者是4的倍数输出True(不包括1和4)
阅读全文