题解:P17193 [KOI 2026 #2] 搭骰子塔
题意
有一些骰子,你要把它们堆成尽可能少的塔,要求每两个上下相邻的骰子的数字要相同。骰子对面之和为
分析
显然,一个塔最多由朝上面为
显然,如果某一组里两种骰子都没有出现,这一组的答案为
实现
#include<bits/stdc++.h>
using namespace std;
const int N = 10;
int c[N];
int main()
{
int n,res = 0;
cin>>n;
for(int i = 1,x; i <= n; i ++) cin>>x,c[x] ++;
for(int i = 1; i <= 3; i ++)
if(c[i] || c[7 - i]) res += max(abs(c[i] - c[7 - i]),1);
cout<<res<<'\n';
return 0;
}