D. Jongmah 链接 题意: 一些数字,有两种方式组成一个三元组,[x,x,x],[x,x+1,x+2],每个数字只能用一次,求最多组成多少三元组。 分析: 因为每三个[x,x+1,x+2]是可以拆成[x,x,x],[x+1,x+1,x+1],[x+2,x+2,x+2]的,所以可以认为对于以x开始的[x,x+1,x+2]最多有两个。 于是可以dp[i][x]
哇真难啊,没注意到 可以开 dp[N][3][3]这种性质,也就是三个相同的顺子可以变成三个刻子,所以我们维护顺子的数目就不用超过三了,又因为每张牌i,只会被i-1,i-2,影响,所以额外开两维记录(记录的信息在下面)就够了。 开始也想到了对子和顺子那题,,但是那题记得学长讲的是堆栈做法,,,这个一看就是d
CF-1110 A. Parity 快速幂的思想,考虑最后一位即可 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll b,k; ll a[100010]; int main(){ scanf("%lld%lld",&b,&k); for(int i=0;i<k;i++) scanf("%lld",&