随笔分类 -  cf

摘要:Lisa 这个序列只需要考虑最大值和次大值的数量 如果最大值数量大于1,那么所有排列都可以,输出全排列 如果最大值为1且不等于次大值加1,那么不可能存在 如果最大值为1且等于次大值加1,那么只要最大值后面有至少一个次大值就可行 然后就是组合数学算一算 #include<iostream> #incl 阅读全文
posted @ 2021-09-09 23:04 Simex 阅读(125) 评论(0) 推荐(0)
摘要:Archie 一道比较显然的构造题 呸 显然1和0的数量都需要是偶数,不然必挂 显然开头和结尾必须相互匹配,不然也挂 然后用1把这里分成一小块一小块,每一块,如果有偶数个零,显然可行 奇数个零的块必然成双存在,同上处理 01分开构造 #include<iostream> #include<cstri 阅读全文
posted @ 2021-07-12 14:13 Simex 阅读(70) 评论(0) 推荐(0)
摘要:这里应该写什么 很显然,先把所有学生排序并且分组 然后,把两个组合并 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define int long long using namespace std 阅读全文
posted @ 2021-07-08 21:24 Simex 阅读(38) 评论(0) 推荐(0)
摘要:FOGGY 记忆化搜索 改变每一个叶子节点,它的影响是线性的往根节点走 也就是说,如果一个父节点在这条路径上改变了,并且这种改变会影响到根节点那么应该标记, 同理,没有影响的改变 也就是说,标记某个节点的改变的影响 那么怎么具体搞呢 对于每一种操作,单独分析 \(O(n^2)\) #include< 阅读全文
posted @ 2021-07-07 21:45 Simex 阅读(41) 评论(0) 推荐(0)
摘要:Aimee 显然可以证得,如果把所有可以交换的点之间连边,那么他们构成了联通块,对于每一个联通块,你可以让他们成为你想要的任何顺序 那就是找联通块,块内依次排序即可 #include<iostream> #include<cstring> #include<cstdio> #include<queu 阅读全文
posted @ 2021-05-30 23:06 Simex 阅读(2687) 评论(0) 推荐(0)
摘要:Aimee 只要不能写成$2N N \subseteq N*$就肯定有 #include<iostream> #include<cstdio> #include<cmath> #define int long long using namespace std; int n,m; int prime[ 阅读全文
posted @ 2021-02-24 11:22 Simex 阅读(55) 评论(0) 推荐(0)
摘要:Aimee 鉴于本人代码一开始写得非常不美观 所以说一堆特判 边界是$a+b-2<=$且$K!=0$时不存在 然后一堆特殊情况 #include<iostream> #include<cstdio> #include<cstring> int a,b,k,z; using namespace std 阅读全文
posted @ 2021-02-24 09:14 Simex 阅读(65) 评论(0) 推荐(0)