返回顶部

随笔分类 -  Codeforces

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页
摘要:题意:有$r$X$r$的网格图,有$n$位名人,会在$t_i$时出现在$(x_i,y_i)$,如果过了$t_i$名人就会消失,从某一点走到另外一点需要花费的时间是它们之间的曼哈顿距离的值,你刚开始在$(1,1)$点,问你最多能给多少名人拍照. 题解:因为某个点是从另外一个点走过来的,所以我们不难想到 阅读全文
posted @ 2020-11-06 01:20 _Kolibri 阅读(91) 评论(0) 推荐(0)
摘要:题意:求$n!$的每个因子的因子数. 题解:我们可以对$n!$进行质因数分解,这里可以直接用推论快速求出:https://5ab-juruo.blog.luogu.org/solution-p2043, 所以我们可以得到$n!=p^_1p^_2...p^_n$,然后根据约数定理,它的任意一个因子可以 阅读全文
posted @ 2020-11-05 22:25 _Kolibri 阅读(193) 评论(0) 推荐(0)
摘要:题意:你和朋友进行了$n$个回合的棋艺切磋,没有平局,每次要么输要么赢,每次赢可以得一分,假如前一局也赢了,那么可以得两分,结果已成定局,但是你确可以作弊,最多修改$k$个回合的结果,问你作弊后最多可以得多少分. 题解:假如有$WLW$,我们让中间的$L$变成$W$,那么就能得到$5$分,贪心,然后 阅读全文
posted @ 2020-11-04 21:21 _Kolibri 阅读(105) 评论(0) 推荐(0)
摘要:题意:有一个长度为$2n$数组,从中选分别选$n$个元素出来组成两个序列$p$和$q$,($p$和$q$中只要有任意一个元素在$a$的原位置不同,就算一个新的情况),选完后对$p$非降序排序,对$q$非升序排序,然后求它们每个元素对应位置的差的绝对值之和$re s=\sum^_1 |x_i-y_i| 阅读全文
posted @ 2020-11-04 01:19 _Kolibri 阅读(91) 评论(0) 推荐(0)
摘要:题意:有两个数$p$和$q$,找到一个最大的数$x$,使得$p\ mod\ x=0$并且$x\ mod\ q\ne 0$. 题解:首先,如果$p\ mod\ q\ne0$,那么我们可以让$x=p$就行了,否则,就意味着,$p$可以被$q$整除,也就是说$p$的质因子包含了$q$的所有质因子,我们可以 阅读全文
posted @ 2020-11-04 00:55 _Kolibri 阅读(123) 评论(0) 推荐(0)
摘要:题意:有一个长度为$n$的序列,可以任意取$k(1\le k\le n)$,对序列前$k$项或者后$k$减$1$,可以进行任意次操作,问是否可以使所有元素都变成$0$. 题解:贪心,我们优先考虑从左边减,如果当前项比后一项大$a_i>a_{i+1}$,那么我们一定可以从左边减,使得这个区间变为$0$ 阅读全文
posted @ 2020-11-04 00:09 _Kolibri 阅读(69) 评论(0) 推荐(0)
摘要:题意:你要买$n$份午饭,你可以选择自己去买,或者叫外卖,每份午饭$i$自己去买需要消耗时间$b_i$,叫外卖需要$a_i$,外卖可以同时送,自己只能买完一份后回家再去买下一份,问最少花多少时间能使午餐到家. 题解:我们可以用结构体记录每份午餐的外卖所需时间和自己拿的时间,然后贪心,对于某一份午餐, 阅读全文
posted @ 2020-11-03 23:42 _Kolibri 阅读(146) 评论(0) 推荐(0)
摘要:题意:给你一个$01$串,需要将所有的$1$给炸掉,每次炸都可以将一整个$1$的联通块炸掉,每炸一次消耗$a$,可以将$0$转化为$1$,消耗$b$,问将所有$1$都炸掉的最小花费. 题解:贪心,如果$1$存在,那么我们至少要炸一次,然后可以枚举统计两个连通块之间的$0$的个数,判断是将这些$0$变 阅读全文
posted @ 2020-11-03 22:12 _Kolibri 阅读(149) 评论(0) 推荐(0)
摘要:题意:给你一个正整数$n$,在$[1,4n]$中找出$n$个数,使得这$n$个数中的任意两个数不互质且不能两两整除. 题解:这题我是找的规律,从$4n$开始,往前取$n$个偶数就好了. 代码: int t; int n; int cnt; int main() { ios::sync_with_st 阅读全文
posted @ 2020-11-03 21:19 _Kolibri 阅读(99) 评论(0) 推荐(0)
摘要:题意:给你一个长度为奇数$n$的序列.你可以对任意元素加上$k$次$1$,求操作后的中位数最大. 题解:先对序列进行排序,然后对中位数相加,如果中位数和后面的元素相等,就对后面所有和当前中位数相等的元素++,然后再对中位数++,不断往复这个过程就好了,具体看代码. 代码: int n; ll k; 阅读全文
posted @ 2020-11-02 12:49 _Kolibri 阅读(127) 评论(0) 推荐(0)
摘要:题意:给你一个$n$x$m$的矩阵,可以对矩阵的所有元素进行$\pm d$,问能否使得所有元素相等. 题解:我们可以直接记录一个$nm$的数组存入所有数,所以$(a_1+xd)=(a_2+yd)=...=(a_{nm}+zd)$,我们但看任意一个等式可得:\(a_{x}+nd=a_{y}+md\), 阅读全文
posted @ 2020-11-02 12:41 _Kolibri 阅读(84) 评论(0) 推荐(0)
摘要:题意:给你一颗树(边是无向的),从根节点向下走,统计走到每个子节点的概率,求所有叶子节点的深度乘上概率的和. 题解:每层子节点的概率等于上一层节点的概率乘$1$除以这层的子节点数,所以我们用$dfs$或者$bfs$都可以写,其实就是个搜索裸题,注意给的边是无向的就好了. 代码: 1.dfs: int 阅读全文
posted @ 2020-11-02 10:57 _Kolibri 阅读(63) 评论(0) 推荐(0)
摘要:题意:给你一个长度为$n$的升序序列,将这个序列分成$k$段,每一段的值为最大值和最小值的差,求$k$段值的最小和. 题解:其实每一段的最大值和最小值的差,其实就是这段元素的差分和,因为是升序,我们可以先求出差分数组,然后再对差分数组排序,因为我们可以分成$k$段,所以会有$k-1$个断开的'缝隙' 阅读全文
posted @ 2020-11-02 10:49 _Kolibri 阅读(65) 评论(0) 推荐(0)
摘要:题意:给你$n$个点,求这$n$个点中,曼哈顿距离和欧几里得距离相等的点对数. 题解: 不难发现,当两个点的曼哈顿距离等于欧几里得距离的时候它们的横坐标或者纵坐标至少有一个相同,可以在纸上画一画,当两点不满足上文所说的情况时,他们的曼哈顿距离一定大于直线距离,因为三角形的两边必定大于第三边,然后我们 阅读全文
posted @ 2020-11-02 01:34 _Kolibri 阅读(88) 评论(0) 推荐(0)
摘要:题意:有一个从根节点$BFS$得来的序列(每次$bfs$子节点的时候保证是升序放入队列的),现在让你还原树(没必要和之前相同),问能构造出的最小的树的深度. 题解:不看根节点,我们从第二个位置开始,如果某一段元素升序,那么就让他们变为上一层某个结点的儿子,否则,如果上一层还有另外的父节点的话,就作为 阅读全文
posted @ 2020-10-28 23:31 _Kolibri 阅读(135) 评论(0) 推荐(0)
摘要:题意:有$n$个菜在烤箱中,每个时刻只能将一个菜从烤箱中拿出来,第$i$个时刻拿出来的贡献是$|i-a[i]|$,你可以在任意时刻把菜拿出来,问将所有菜拿出的最小贡献是多少? 题解: 先对所有菜从小到大排序,因为$a_i$单调,我们可以枚举时刻$[1,2*n]$来进行DP,先更新第一道菜的状态,然后 阅读全文
posted @ 2020-10-28 20:51 _Kolibri 阅读(123) 评论(0) 推荐(0)
摘要:题意:有一个$2$X$n$的矩阵,你想从$(1,1)\(走到\)(2,n)$,每次可以向上下左右四个方向走,但在某些时间段某个点会被堵住,如果已经被堵住,那么即恢复正常,每次对某个点操作,操作后询问是否能走到终点. 题解:只有当第一层和第二层被堵的点连通时才会到不了终点,比如$(x,y)\(和\){ 阅读全文
posted @ 2020-10-27 19:14 _Kolibri 阅读(76) 评论(0) 推荐(0)
摘要:题意:有长度$n$的序列,让你构造序列,使得二分查找能在$pos$位置找到值$x$.问最多能构造出多少种排列? 题解:题目给出的$pos$是固定的,所以我们可以根据图中所给的代码来进行二分,确定有多少数小于$x$和大于$x$,然后根据排列组合即可算出答案. 代码: int n,x,pos; ll f 阅读全文
posted @ 2020-10-26 21:17 _Kolibri 阅读(141) 评论(0) 推荐(0)
摘要:题意:给你两个长度相同的数组,每次从两个数组中选数(也可以不选),但是不可以在同一个数组中连续选两次,问能选的最大值是多少? 题解:dp,$dp[i][0]$表示第$i$个位置不选,$dp[i][1]$表示第$i$个位置选第一个数组的数,同理$dp[i][2]$就是第二个,不选的话,$dp[i][0 阅读全文
posted @ 2020-10-24 20:10 _Kolibri 阅读(96) 评论(0) 推荐(0)
摘要:题意:给你一个正整数$x$,找两个正整数$a$,\(b\),使得$lcm(a,b)=x$,并且$max(a,b)$最小. 题解:我们知道,\(lcm(a,b)=a*b/gcd(a,b)\),所以如果$a$和$b$不互质,那么$ab$必然可以约去一个$gcd(a,b)$,也就表示$max(a,b)$的 阅读全文
posted @ 2020-10-23 19:45 _Kolibri 阅读(112) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页