摘要: 题目链接 题目思路 这个题目就是等价于正着建一次边,反着建一次边,然后看第$i$个点在这两种情况中能到达的点都小于$\frac{n}{2}$ 则为$1$,否则则为$1$ 拓扑排序上$dp$是对于链的一些情况来考虑 这里需要floyd传递闭包来写这个 代码 #include<bits/stdc++.h 阅读全文
posted @ 2021-12-01 23:21 hunxuewangzi 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 这个题目好像一个假题啊,本以为是什么高深算法,其实很简单 打表发现$a$为奇数答案就是$1$ $a$为偶数进行分类讨论 当$x\leq p$进行暴力$check$ \(p\le x\) 发现$ax%2p=0$ 那么只需要找有多少个$p\le x;xa%2p=0$ 其实就是找$2p 阅读全文
posted @ 2021-12-01 22:01 hunxuewangzi 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 这个$dp$比较巧妙 设$dp[i][j]$表示在第$i$次操作后,还有$j$个数不一样的答案 那么最后输出$dp[k][0]$ 转移方程即每次枚举选了s个与最终态不同的灯,m-s个与最终态相同的灯操作 那么$dp$方程即为 $ dp[i+1][j-s+m-s]=dp[i+1][ 阅读全文
posted @ 2021-12-01 20:53 hunxuewangzi 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 因为今天被lower_bound坑了,找了一年bug,发现他的一个性质 a[1]=3; a[2]=5; a[3]=100; int x=*lower_bound(a+1,a+1+2,6); a[3]=0; cout<<x<<endl; x=*lower_bound(a+1,a+1+2,6); cou 阅读全文
posted @ 2021-12-01 00:26 hunxuewangzi 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 网上我还没看到正解,感觉大家好像都是$n^2logn$甚至是更加高的复杂度,所以我决定水一篇题解 题意就是给你$n$条线段,要从每条线段选一个点放入一个集合中,求集合的最大$size$ 我们设选点是从左往右 假设我们现在选的点$pos$为$now$,那么显然下次选的点就是所有没有 阅读全文
posted @ 2021-12-01 00:21 hunxuewangzi 阅读(74) 评论(0) 推荐(0) 编辑