上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 67 下一页
摘要: 找出所有约数,约数$x$所在的第$x$行存在一个$m$需满足条件: $x$不超过$n$ $m/x$不超过$n$。 int n, m; int main() { int T; cin >> T; while(T--) { cin >> n >> m; vector<int> divisor; for( 阅读全文
posted @ 2021-05-23 19:26 Dazzling! 阅读(40) 评论(0) 推荐(0)
摘要: 零比特填充法。 int main() { int T; cin >> T; while(T--) { string s; cin >> s; int cnt = 0; // 记录连续的1的个数 for(int i = 0; i < s.size(); i++) { if(cnt == 5) { cn 阅读全文
posted @ 2021-05-23 18:57 Dazzling! 阅读(49) 评论(0) 推荐(0)
摘要: 只能操作长度不超过$n$的区间。 对$1$和$n$所在的位置进行讨论: 若数组已经有序,则答案为$0$ 若$a[1]=1$,只需选择$[2,n]$进行一次重排即可。同理,若$a[n]=n$,只需选择$[1,n-1]$进行一次重排即可。 若$a[1]=n$且$a[n]=1$,则首先选择$[1,n-1] 阅读全文
posted @ 2021-05-21 20:22 Dazzling! 阅读(34) 评论(0) 推荐(0)
摘要: 首先将数组$a$从小到大排序。 \[ |a_1-x|+|a_2-x|+\cdots+|a_n-x| \ge|a_n-a_1|+|a_{n-1}-a_2|+\cdots +|a_{n/2+1}-a_{n/2}| \] 当$x$位于$a_n$和$a_1$之间时,\(|a_1-x|+|a_n-x| \ge 阅读全文
posted @ 2021-05-19 11:35 Dazzling! 阅读(54) 评论(0) 推荐(0)
摘要: 状态表示: \(f(i,a,b,c,d)\):到达第$i$个格子,所用卡片$1$数量为$a$张,卡片$2$数量为$b$张,卡片$3$数量为$c$张,卡片$4$数量为$d$张时能够获得的分数最大值。 状态转移: \[ f(i,a,b,c,d)=\max \begin{cases} f(i-1,a-1, 阅读全文
posted @ 2021-05-16 16:24 Dazzling! 阅读(152) 评论(0) 推荐(0)
摘要: 先考虑没有娇姐发功怎么做。 考虑每只糖糖最后能不能存活:第$i$只糖糖能存活的条件是他后面没有比他大的另外一组的糖糖,所以我们只需要从后往前扫描维护当前位置往后每一组糖糖的最大值是多少然后和当前糖糖的能力值比较就行。 现在再来考虑娇姐发功的问题。 娇姐会在第$c_i$秒使得前$c_i$个人的能力值+ 阅读全文
posted @ 2021-05-15 16:46 Dazzling! 阅读(30) 评论(0) 推荐(0)
摘要: 思路 通过对样例的模拟,发现答案为相邻两个蓝色石子中间最多的红色石子的数量。 双指针做法: const int N=1e5+10; int a[N],b[N]; int n,m; int main() { int T; cin>>T; while(T--) { cin>>n>>m; for(int 阅读全文
posted @ 2021-05-15 15:22 Dazzling! 阅读(81) 评论(0) 推荐(0)
摘要: $b[i]$表示第$i$个行第一列是否有雷,即$b[i]$的值只能为$0$或$1$。 一旦第$i-1$行第一列的摆放情况确定,因为要满足$8$连通的格子里的数字限制,第$i$行第一列的摆放情况也随之确定。 递推式: \[ b[i] = a[i-1] - b[i-1] - b[i-2] \] $a[i 阅读全文
posted @ 2021-05-15 12:38 Dazzling! 阅读(38) 评论(0) 推荐(0)
摘要: 首先将所有点按纵坐标从小到大排序,纵坐标相同的按横坐标从小到大排序,这样一来,每个点+x方向上最近的点(若存在)在排序后的数组宏一定相邻。 DFS搜索与当前点匹配的点,若当前点已经配对,则搜下一个点;若没有配对,则寻找还没有配对的点与当前点配对。 之后分别以每个点为起点进行DFS判环(每次判环前需要 阅读全文
posted @ 2021-05-12 15:35 Dazzling! 阅读(74) 评论(0) 推荐(0)
摘要: 贪心。 经典问题。 注意点 不要忘记最后一个区间对最长连续挤奶时间区间的更新。 const int N=5010; PII a[N]; int n; int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i].fi>>a[i].se; sort(a,a+n 阅读全文
posted @ 2021-05-02 23:12 Dazzling! 阅读(97) 评论(0) 推荐(0)
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 67 下一页