摘要:
题目 传送门 题解 因为所有数字的选择必须连续,也就是说,同一数字的选择越少,其要求越容易达成,并且题目要求任意两个数字的出现次数 \(c(i),c(j)\) 都必须保证 \(\mid c(i)-c(j)\mid \le 1\),我们不妨二分数字出现的最小次数 \(k\)(有少部分数字出现次数为 \ 阅读全文
摘要:
题目 传送门 题解 有个极为显然的想法:定义 \(f[i][j]\) 为最后一下划分到 \(i\) 之前的位置,前面的划分使得出现方案为 \(j\) 的合法方案数。 但是 \(j\) 应该开多大?我们可以计算一下:设 \(f(x)\) 为 \(x\) 的二进制长度,那么有 \[ \sum_{i=1} 阅读全文
摘要:
题目 传送门 题解 刚开始我以为这是个贪心,然后打了这样一个代码 inline void Solve(){ int pts=1,ans=0; char opt[5];int team; while(m--){ scanf("%s %d",opt,&team); if(opt[0]=='p')ans+ 阅读全文
摘要:
题目 传送门 题解 这个原子序数是真的狗 首先,看一下那可怜的数据范围:$1\le k\le n\le 17$,那么小?考虑直接暴力... 考虑定义暴力函数 dfs(const int now,const int s) 为我们已经处理到目标原子 \(now\),而剩下的元素情况为 \(s\) 的局面 阅读全文
摘要:
题目 传送门 题解 首先我们可以将题目转化:在一个 \(n\times m\) 的矩阵中,设立尽可能少的特殊点使得整个矩阵全部被覆盖,其中每个特殊点可以覆盖的区域为它自己以及上下左右的格子 意识到 \(n,m\) 互相交换,对于答案不影响,那么我们钦定 \(n\) 是较大的那个 由 $1\le m\ 阅读全文