摘要:
题意:给你$m$个长度为$n$的二进制数,求最少选多少个使它们$|$运算后所有位置均为$1$,如果不满足条件,则输出$-1$. 题解:这题$n$的范围很大,所以我们先用$string$读,然后再转化为$bitset$,之后再直接dfs爆搜,对于满足条件的维护一个最小值即可. 代码: #include 阅读全文
posted @ 2020-06-21 15:48
_Kolibri
阅读(190)
评论(0)
推荐(0)
摘要:
题意:有$n$堆物品,每次可以将两堆捆成一堆,新堆长度等于两个之和,每次消耗两个堆长度之和的长度,求最小消耗使所有物品捆成一堆. 题解:贪心的话,每次选两个长度最小的来捆,这样的消耗一定是最小的,但是我们需要一个容器来存这些数,这时候很明显要用到优先队列(小根堆),我们将所有元素入队,每次取前两个捆 阅读全文
posted @ 2020-06-21 15:35
_Kolibri
阅读(161)
评论(0)
推荐(0)
摘要:
题意:对于正整数$n$,每次可以选择使它变为$n-1$或者$n/t$ ($n\ mod\ t=0$且$t$为奇数),当$n=1$时便不可以再取,问先手赢还是后手赢. 题解:首先特判$1$和$2$的情况,然后显然如果$n$是奇数,一定是先手赢. 如果$n$是偶数,那么我们去找它的奇数因子. 如 阅读全文
posted @ 2020-06-21 15:22
_Kolibri
阅读(211)
评论(0)
推荐(0)
摘要:
题意:有一个长度为$2n$的数组,删去两个元素,用剩下的元素每两两相加构造一个新数组,使得新数组所有元素的$gcd\ne 1$.输出相加时两个数在原数组的位置. 题解:我们按照新数组所有元素均为偶数来进行构造,因为旧数组的长度为$2n$,所以无论原数组有多少个奇数和偶数,我们都可以选择删去两个数,使 阅读全文
posted @ 2020-06-21 15:07
_Kolibri
阅读(158)
评论(0)
推荐(0)
摘要:
题意:在$1$~$n$中找两个不相等的数使得他们的$gcd$最大. 题解:水题,如果$n$是偶数,那么一定取$n$和$n/2$,$n$是奇数的话,取$n-1$和$(n-1)/2$. 代码: #include <iostream> #include <cstdio> #include <cstring 阅读全文
posted @ 2020-06-21 14:57
_Kolibri
阅读(168)
评论(0)
推荐(0)

浙公网安备 33010602011771号