随笔分类 -  CodeForces每日打卡

摘要:题意: 给一个序列$a$,对于每一位$a[i]$,要求满足$a[i]<=a[i-1]$或者$a[i]<=a[i+1]$,如果$a[i]=-1$,则表示该位未知,问最多有多少种序列可以满足条件。 思路: $dp[i][j][k]$表示第$i$位填充$j$的时候与前一位的关系是$k$。 $k=0$表示$ 阅读全文
posted @ 2020-04-17 12:49 Big-Kelly 阅读(110) 评论(0) 推荐(0) 编辑
摘要:题意: 给定 $n,m$,给定 $m$ 个无序对 $(a,b)$ 代表位置 $a$ 上的数字和位置 $b$ 上的数字进行比较。且这 $m$ 个无序对无重复。 让你寻找两个序列: 第一个序列由 $1 \sim n$ 组成,元素互不相同且唯一。 第二个序列,要满足和第一个序列对于 $m$ 个比较的结果相 阅读全文
posted @ 2020-04-14 22:09 Big-Kelly 阅读(149) 评论(0) 推荐(0) 编辑
摘要:题意: 有$n$件商品,每天可以卖一件,每件商品的售价是$p[i]$元,在$a$的倍数天可以获得$x$%的利润,在$b$的倍数天可以获得$y$%的利润,利润可叠加。 如果需要获得$k$的利润,问最少需要卖多少天。 思路: 二分答案。对于售价高的商品分配给前$mid$天中利润高的时间。 代码: 1 / 阅读全文
posted @ 2020-04-14 20:48 Big-Kelly 阅读(140) 评论(0) 推荐(0) 编辑
摘要:题意: 给出一个序列$a[n]$和数字$x$,你可以选择任意一个区间把区间中的每个数乘上$x$。 问区间和的最大值是多少。 思路: $dp[i][0]$表示第i位在更新区间的前面,$dp[i][1]$表示在更新区间中,$dp[i][2]$表示在更新区间的后面。转移为: $dp[i][0]=max(0 阅读全文
posted @ 2020-04-13 20:15 Big-Kelly 阅读(140) 评论(0) 推荐(0) 编辑
摘要:题意: 有$n$个员工,$s$元钱,现在要给每个员工发工资。每个员工的工资的范围$(l_i,r_i)$,求所有员工的工资中位数的最大值。 思路: 二分答案,$check$的时候判断工资可以大于等于$mid$的员工个数,用最小代价购买之后判断总价钱会不会超出范围。 代码: 1 //#include<b 阅读全文
posted @ 2020-04-13 19:19 Big-Kelly 阅读(129) 评论(0) 推荐(0) 编辑
摘要:题意: 给出一个二维坐标系,求一个最大集合,使得集合中每两个点之间的距离不为整数。 思路: 先确定集合大小,因为点不能同行或者同列,所以集合大小最大为$min(n,m)+1$。 然后考虑对角线就好了,因为$(0,0)$不能选,所以考虑从$(0,min(n,m))$到$(min(n,m),0)$的点即 阅读全文
posted @ 2020-04-13 11:37 Big-Kelly 阅读(99) 评论(0) 推荐(0) 编辑
摘要:题意: 有两种操作: ① $1$ $l$ $r$ 表示区间$(l,r)$中不递减。 ② $0$ $l$ $r$ 表示区间$(l,r)$中存在递减。 要求构造这个序列。 思路: 对于$1,l,r$中的每一个数等于前一个数,其余的数$a[i]=a[i-1]-1$。 对于$0,l,r$判断$a[l]$和$ 阅读全文
posted @ 2020-04-13 11:01 Big-Kelly 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题意: 给出一棵树,选一个节点作为根,使得所有子树的和最大,输出最大值。 思路: 换根$DP$。 代码: 1 //#include<bits/stdc++.h> 2 #include <set> 3 #include <map> 4 #include <stack> 5 #include <cmat 阅读全文
posted @ 2020-04-12 21:22 Big-Kelly 阅读(145) 评论(0) 推荐(0) 编辑
摘要:题意: 给一个浮点数序列$a$,其和为$0$。求一个序列$b$,满足$b[i]=ceil(a[i])$或者$b[i]=floor(a[i])$。 思路: 全部数字向下取整,赋值给$b$,统计$b$的和,若和不为$0$,则使原本不为整数的$a[i]$对应的$b[i]+1$,直到和为$0$。 代码: 1 阅读全文
posted @ 2020-04-12 17:50 Big-Kelly 阅读(74) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示