摘要:
题意:有一个长度为$n$的序列,可以操作$3$次,每次选取一段区间,然后区间的元素加减区间长度的倍数,$3$次操作后使得序列所有元素为$0$,问具体操作情况. 题解:假如我们能选择一整段区间$[1,n]$,使其所有元素都是$n$的倍数就好了,但是有的元素不是$n$的倍数,所以不能这样搞,但是我们可以 阅读全文
posted @ 2020-09-12 20:52
_Kolibri
阅读(124)
评论(0)
推荐(0)
摘要:
题意:有一个长度为$n$的序列,你每次可以对序列重新排序,然后花费$1$使某个元素加减$1$,多次操作后使得新序列满足$a_=c^i$,$c$是某个正整数,求最小花费. 题解:先排序,我们可以直接枚举$c$,然后模拟维护一个最小值就好了. 代码: int n; int a[N]; int main( 阅读全文
posted @ 2020-09-12 20:36
_Kolibri
阅读(231)
评论(0)
推荐(0)
摘要:
题意:有一个长度为$n$的隐藏序列,你最多可以询问$2n$次,每次可以询问$i$和$j$位置上$p[i]\ mod\ p[j]\(的结果,询问的格式是\)?\ x\ y$,如果已经确定序列了,先输出$!$,然后输出序列. 题解:首先要知道一个结论,\(p[i]\ mod \ p[j]=cnt1\), 阅读全文
posted @ 2020-09-12 20:30
_Kolibri
阅读(134)
评论(0)
推荐(0)
摘要:
题意:有一个长度为$n$的序列,你需要对其重新排序,构造一个新数组$c$,$c_=gcd(a_{1},...,a)$并且使得$c$的字典序最小. 题解:直接跑$n$次,每次找一个目前最大的$gcd$出来,并标记位置模拟一下就好了. 代码: int t; int n; int a[N],b[N]; i 阅读全文
posted @ 2020-09-12 20:16
_Kolibri
阅读(234)
评论(0)
推荐(0)
摘要:
题意:有一个长度为偶数只含$0$和$1$的序列,你可以移除最多$\frac{2}$个位置的元素,使得操作后奇数位置的元素和等于偶数位置的元素和,求新序列. 题解:统计$0$和$1$的个数,如果$0$的个数大于$\frac{2}$,那么直接输出$n/2$个$0$,否则输出所有$1$(个数必须为偶). 阅读全文
posted @ 2020-09-12 20:10
_Kolibri
阅读(194)
评论(0)
推荐(0)
摘要:
题意:给你一个由$0,1,?\(组成的字符串,你可以将\)?$任意改成$0$或$1$,问你操作后能否使得该字符串的任意长度为$k$的区间中的$0$和$1的个数相等. 题解:我们首先看前$k$个字符,那么对于区间$[2,k+1]$,如果要满足条件,$s_{k+1}=s_{1}$一定要成立,由此我们可以 阅读全文
posted @ 2020-09-12 18:18
_Kolibri
阅读(159)
评论(0)
推荐(0)
摘要:
题意:有一个长度为$n$并且所有元素和为$0$的序列,你可以使$a_-1$并且$a_+1$,如果$i<j$,那么这步操作就是免费的,否则需要花费一次操作,问最少操作多少次使得所有元素为$0$. 题解:首先优先考虑不用花费的情况,如果$a_>0$,\(a_{j}<0\),且$i<j$,那么我们可以免费 阅读全文
posted @ 2020-09-12 18:10
_Kolibri
阅读(154)
评论(0)
推荐(0)
摘要:
题意:有$n$枚硬币,每枚硬币抛完后向上的概率为$p[i]$,现在求抛完后向上的硬币个数大于向下的概率. 题解:我们用二维的$dp[i][j]$来表示状态,$i$表示当前抛的是第$i$个硬币,$j$表示的是前$i$个硬币中向上的个数,那么状态可以表示为,如果$j=0$,那么$dp[i][j]=dp[ 阅读全文
posted @ 2020-09-12 18:01
_Kolibri
阅读(347)
评论(0)
推荐(0)

浙公网安备 33010602011771号