cf1110D. Jongmah

cf1110D. Jongmah

如果能够发现一点转化的话就简单很多
比如说最后的答案里出现了
三个(a,a+1,a+2),我们可以将它看作是(a,a,a),(a+1,a+1,a+1),(a+2,a+2,a+2)
也就是每种三元组(除了(a,a,a))最多只会出现两次
那么每种数最多有6个是个其它数组成三元组。
直接dp即可

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#define fo(i,a,b) for (int (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (int (i)=(b);(i)>=(a);(i)--)
#define mk(x,y) make_pair((x),(y))
using namespace std;
typedef double db;
typedef long long ll;
const int N=1e6+5;
int c[N],r[N];
int f[N][7][7],n,m,x,ans,tot;
bool bz[N][7][7];
void cmax(int &x,int y){
	x=max(x,y);
}
int main()
{
//	freopen("data.in","r",stdin);	
	scanf("%d %d",&n,&m);
	fo(i,1,n) scanf("%d",&x), c[x]++;
	fo(i,1,m) {
		if (c[i]>=6) {
			tot+=(c[i]-6)/3;
			r[i]=(c[i]-6)%3;
			c[i]=6;
		}
	}
	
//	fo(i,1,m) printf("%d %d\n",r[i],c[i]);
	int z=0;
	bz[0][0][0]=1;
	fo(i,1,m) {
		fo(j,0,6) fo(k,0,6) { //
			if (!bz[i-1][j][k]) continue;
			fo(l,0,c[i]) {
				int d=min(l,min(j,k));
				
				if (i>=3) {
					z=(k-d+r[i-2])/3;
				}
				else z=0;
				cmax(f[i][c[i]-d][j-d], f[i-1][j][k]+d+z);
				bz[i][c[i]-d][j-d]=1;
			}
		}
	}
	
	z=0;
	fo(i,0,6) fo(j,0,6) {
		if (bz[m][i][j]) {
			z=(i+r[m])/3+(j+r[m-1])/3;
			ans=max(ans, f[m][i][j]+z);
		}
	}
	
	printf("%d",ans+tot);
	
	return 0;
}

 
posted @ 2023-10-06 11:37  gan_coder  阅读(9)  评论(0编辑  收藏  举报
  1. 1 青春コンプレックス 結束バンド
  2. 2 ギターと孤独と蒼い惑星 結束バンド
  3. 3 星座になれたら 結束バンド
  4. 4 恋のうた (feat. 由崎司) 鬼頭明里
  5. 5 月と星空 カノエラナ
  6. 6 Cagayake!GIRLS[5人Ver.] (TV size Ver.) 桜高軽音部
  7. 7 不可思議のカルテ 不可思議のカルテ
  8. 8 優しさの理由 ChouCho
星座になれたら - 結束バンド
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 樋口愛

作曲 : 内藤英雅

もうすぐ時計は6時

时钟快要走到六点

もうそこに一番星

夜空已然出现了第一颗星

影を踏んで 夜に紛れたくなる帰り道

想踩着影子 混入那黑夜的归途

どんなに探してみても

无论我如何寻找

一つしかない星

仍只有一颗星星

何億光年 離れたところからあんなに輝く

从相距几亿光年的地方 散发出那样的光芒

いいな 君は みんなから愛されて

いいな 君は みんなから愛されて

いいな 君は みんなから愛されて

真好啊 你被大家所爱着

「いいや 僕は ずっと一人きりさ」

「并不是啊 我一直都孤身一人啊」

君と集まって星座になれたら

君と集まって星座になれたら

君と集まって星座になれたら

若能与你相聚化作星座

星降る夜 一瞬の願い事

在繁星降下的夜晚 将一瞬的愿望

きらめいて ゆらめいて 震えてるシグナル

对那闪烁着的 于空中摇曳颤抖的信号许下

君と集まって星座になれたら

若能与你相聚化作星座

空見上げて 指を差されるような

想化作他人仰望星空 所指向的那个星座

つないだ線 解かないで

请不要将那 连结你我的线解开

僕がどんなに眩しくても

无论我有多么耀眼

もうすぐ時計は8時

もうすぐ時計は8時

もうすぐ時計は8時

时钟快要走到八点

夜空に満天の星

夜空已有漫天繁星

何億光年 離れたところにはもうないかもしれない

可能和我们已然不是相距几亿光年了

月が綺麗で 泣きそうになるのは

月が綺麗で 泣きそうになるのは

月が綺麗で 泣きそうになるのは

月色真美 令我泫然欲泣

いつの日にか 別れが来るから

因为总有一天 将迎来别离

君と集まって星座になれたら

君と集まって星座になれたら

君と集まって星座になれたら

若能与你相聚化作星座

彗星みたい 流れるひとりごと

好似彗星一般的自言自语

消えていく 残像は 真夜中のプリズム

那消逝的残像 就好像深夜棱镜

君と集まって星座になれたら

若能与你相聚化作星座

切なる願い 誰かに届いたら

我衷心希望 能传达给某人

変われるかな 夜の淵を

是否能改变呢 即便是这

なぞるような こんな僕でも

好似夜之深渊的我

遥か彼方 僕らは出会ってしまった

遥か彼方 僕らは出会ってしまった

遥か彼方 僕らは出会ってしまった

我们于那遥远的彼方相遇

カルマだから 何度も出会ってしまうよ

因为这是我们的命运 所以我们将多次相遇

雲の隙間で

在那云彩的间隙中相遇

君と集まって星座になれたら

君と集まって星座になれたら

君と集まって星座になれたら

若能与你相聚化作星座

夜広げて 描こう絵空事

展开黑夜描绘天空

暗闇を 照らすような 満月じゃなくても

即便我们并非那照亮黑暗的满月

だから集まって星座になりたい

所以我想与你相聚化作星座

色とりどりの光 放つような

散发出流光溢彩的光芒

つないだ線 解かないよ

我绝不会将那 连结你我的线解开

君がどんなに眩しくても无论你将有多么耀眼