发一个题解
2026-06-21 22:14:59
发布于:广东
9阅读
0回复
0点赞
又又又又掉分了/(ㄒoㄒ)/~~
随一个题解
结论:
最少亮灯数:尽量让 0-0 和 1-1 配对,剩下 0-1 配对。
结论:最少亮灯数 = cnt1 % 2(因为 1 的个数决定了最少能配成几对 0-1)
最多亮灯数:尽量让 0-1 配对,最多能配成 min(cnt0, cnt1) 对。
纯享版
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int cnt0=0,cnt1=0;
for(int i=1;i<=2*n;i++){
int x;
cin>>x;
if(x==0){
cnt0++;
}
else{
cnt1++;
}
}
cout<<(cnt1%2)<<" "<<(min(cnt0,cnt1))<<endl;
}
return 0;
}
注释版
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t; // 读入测试用例数
while(t--){
int n;
cin>>n; // 读入灯的数量(开关总数为2n)
int cnt0=0,cnt1=0; // 统计开关中0和1的个数
for(int i=1;i<=2*n;i++){
int x;
cin>>x;
if(x==0) cnt0++;
else cnt1++;
}
// 最少亮灯数 = 1的个数 % 2
// 最多亮灯数 = min(0的个数, 1的个数)
cout<<(cnt1%2)<<" "<<(min(cnt0,cnt1))<<endl;
}
return 0;
}//纯人类痕迹,不喜勿喷
求赞,谢谢!!!
这里空空如也








有帮助,赞一个